Commit 2a2c8223 authored by tverrbjelke's avatar tverrbjelke

es ist 8 uhr 5

parent 2ee9143f
import numpy as np
class Rectangle:
def __init__(self, x, y, width, height):
......@@ -35,28 +34,24 @@ class Rectangle:
return self.matrix
rect1=Rectangle(0,0,width=3, height=5)
rect1=Rectangle(0,0,width=3, height=5)
recatangle=Rectangle(0,0,width=3, height=5)
recatangle=Rectangle(0,0,width=3, height=5)
rectangles={}
rectangles[0]= Rectangle(0,0,2,2)
rectangles[1]= Rectangle(3,3,2,2)
rectangles[2]= Rectangle(5,5,2,2)
rectangles[3]= Rectangle(7,7,2,2)
rect_data=[]
for i in range(1,10001):
index=i%4
rect_data.append((rectangles[index].add_noise(),index))
with open('data.txt', 'w'):
for datapoint in range(len(rect_data)):
def gen_data():
rectangles={0:Rectangle(0,0,2,2),
1:Rectangle(3,3,2,2),
2:Rectangle(5,5,2,2),
3:Rectangle(7,7,2,2),}
rect_data=[]
labels=[]
for i in range(0,10):
label=i%4
rect=np.array(rectangles[label].add_noise())
rect_reshaped= np.reshape(rect,[1,100])
rect_data.append(rect_reshaped)
labels.append(label)
return rect_data, labels
rect_data, labels=gen_data()
import numpy as np
from data_gen import gen_data
class Model:
n_input = 100 # number is
n_output=4
n_h1=50
def __init__(self, nodes=[n_input,n_h1, n_output]):
self.nodes=nodes
self.num_layer=len(self.nodes)
self.weights=[]
for i in range(0,self.num_layer-1):
temp_weights=np.random.random((self.nodes[i], self.nodes[i+1]))
self.weights.append(temp_weights)
def activation(self, x, derivative=False):
'''Activation function (sigmoid by default)
@param x: input data
@param derivative: boolean if we need a derivative of the sigmoid'''
if not derivative:
return 1/(1+np.exp(-x))
else:
return self.activation(x, False)*(1-self.activation(x, False))
def forward_step(self, x):
z_array=[] # dot product solution, before activation
a_array=[]
a_array.append(x) # the inner states
outputs=[]
#Forward propagation
for i in range(0, self.num_layer-1):
z=np.dot(self.weights[i].T,a_array[i])
z_array.append(z)
a=self.activation(z_array[i], False)
a_array.append(a)
outputs.append(a_array[-1])
return outputs
def train_all(self, X, Y):
'''
@param x: all 10000 reshaped matrices
@param y: all 10000 labels
'''
for i in np.arange(0,len(X)):
x=np.reshape(X[i], [100,1])
y=Y[i]
self.train_one(x)
def train_one(self, x):
out=self.forward_step(x)
print(out)
sd
X, Y=gen_data()
model=Model()
model.train_all(X,Y)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment