def __init__(self):
     self.layers = [
         layers.FC(28 * 28, 2048),
         layers.ReLu(),
         layers.FC(2048, 10)
     ]
     self.outputs = []
Beispiel #2
0
 def __init__(self,
              dimhid=100,
              dimout=10,
              weight_init_std=0.01,
              imgsize=28):
     strid = 1
     pad = 0
     fitsize = 3
     cout = 30
     cin = 1
     self.layers = OrderedDict()
     self.layers['conv'] = layers.conv(cin,
                                       cout,
                                       fitsize,
                                       strid=strid,
                                       pading=pad)
     self.layers['relu1'] = layers.Relu()
     self.layers['Pool1'] = layers.Pooling(pool_h=2, pool_w=2, stride=2)
     con_out_size = (imgsize - fitsize + 2 * pad) / strid + 1
     dimin = int(cout * (con_out_size / 2) * (con_out_size / 2))
     self.layers['fc1'] = layers.FC(dimin, dimhid)
     self.layers['relu2'] = layers.Relu()
     self.layers['fc2'] = layers.FC(dimhid, dimout)
     self.softmax = layers.SoftmaxWithLoss()
weight_decay = config['weight_decay']
net = []
regularizers = []
inputs = np.random.randn(config['batch_size'], 1, 28, 28)
net += [layers.Convolution(inputs, 16, 5, "conv1")]
regularizers += [
    layers.L2Regularizer(net[-1].weights, weight_decay, 'conv1_l2reg')
]
net += [layers.MaxPooling(net[-1], "pool1")]
net += [layers.ReLU(net[-1], "relu1")]
net += [layers.Convolution(net[-1], 32, 5, "conv2")]
regularizers += [
    layers.L2Regularizer(net[-1].weights, weight_decay, 'conv2_l2reg')
]
net += [layers.MaxPooling(net[-1], "pool2")]
net += [layers.ReLU(net[-1], "relu2")]
## 7x7
net += [layers.Flatten(net[-1], "flatten3")]
net += [layers.FC(net[-1], 512, "fc3")]
regularizers += [
    layers.L2Regularizer(net[-1].weights, weight_decay, 'fc3_l2reg')
]
net += [layers.ReLU(net[-1], "relu3")]
net += [layers.FC(net[-1], 10, "logits")]

data_loss = layers.SoftmaxCrossEntropyWithLogits()
loss = layers.RegularizedLoss(data_loss, regularizers)

nn.train(train_x, train_y, valid_x, valid_y, net, loss, config)
nn.evaluate("Test", test_x, test_y, net, loss, config)
Beispiel #4
0
grad_out = np.random.randn(5, 4, 4, 4)
pool = layers.MaxPooling(x, "pool", 2, 2)
print("Check grad wrt input")
check_grad_inputs(pool, x, grad_out)

print("\nReLU")
x = np.random.randn(4, 3, 5, 5)
grad_out = np.random.randn(4, 3, 5, 5)
relu = layers.ReLU(x, "relu")
print("Check grad wrt input")
check_grad_inputs(relu, x, grad_out)

print("\nFC")
x = np.random.randn(20, 40)
grad_out = np.random.randn(20, 30)
fc = layers.FC(x, 30, "fc")
print("Check grad wrt input")
check_grad_inputs(fc, x, grad_out)
print("Check grad wrt params")
check_grad_params(fc, x, fc.weights, fc.bias, grad_out)

print("\nSoftmaxCrossEntropyWithLogits")
x = np.random.randn(50, 20)
y = np.zeros([50, 20])
y[:, 0] = 1
loss = layers.SoftmaxCrossEntropyWithLogits()
grad_x_num = eval_numerical_gradient(lambda x: loss.forward(x, y), x, 1)
out = loss.forward(x, y)
grad_x = loss.backward_inputs(x, y)
print("Relative error = ", rel_error(grad_x_num, grad_x))
print("Error norm = ", np.linalg.norm(grad_x_num - grad_x))
Beispiel #5
0
 def __init__(self, dimin, dimhid, dimout, weight_init_std=0.01):
     self.layers = OrderedDict()
     self.layers['fc1'] = layers.FC(dimin, dimhid)
     self.layers['relu'] = layers.Relu()
     self.layers['fc2'] = layers.FC(dimhid, dimout)
     self.softmax = layers.SoftmaxWithLoss()
Beispiel #6
0
    output = data_group["output"]
    for input_data in data_group["input"]:
        x_data = []
        for input_value in input_data:
            x_data.append(input_value[0])
            x_data.append(input_value[1])

        train_x.append(x_data)
        train_y.append(output)

train_x = np.array(train_x)
train_y = np.array(train_y)

net = []
inputs = np.random.randn(config['batch_size'], len(train_x))
net += [layers.FC(inputs, 50, "fc1")]
net += [layers.Sigmoid(net[-1], "sg1")]
net += [layers.FC(net[-1], 10, "fc2")]
net += [layers.Sigmoid(net[-1], "sg2")]
net += [layers.FC(net[-1], 5, "fc3")]

loss = layers.MeanSquareError()

nn.train(train_x, train_y, net, loss, config)

while True:
    pointsFilename = input("Enter file name:")
    with open(pointsFilename) as f:
        points = json.load(f)
        points = np.array(points).reshape(1, 100)
    nn.evaluate(net, np.array(points))