Example #1
0
                            activation_func="tanh",
                            input_noise=0.3)
cnn.compileOutputFunctions(
    target="regression")  #compiles the cnn.get_error function as well
cnn.setOptimizerParams(SGD={'LR': 5e-1, 'momentum': 0.9}, weight_decay=0)

print "training..."
for i in range(40000):
    d, l = data.getbatch(batch_size)
    loss, loss_instance, time_per_step = cnn.trainingStep(d, d, mode="SGD")

    if i % 100 == 0:
        print "update:", i, "; Training error:", loss

cnn.layers[3].input_noise.set_value(0.0)
loss, _, test_predictions = cnn.get_error(data.valid_d.reshape((10000, 784)),
                                          data.valid_d.reshape((10000, 784)))
print "Final error:", loss
print "Done."

plt.figure(figsize=(14, 6))
plt.subplot(121)
images = embedMatricesInGray(data.valid_d[:200].reshape((200, 28, 28)), 1)
plt.imshow(images, interpolation='none', cmap='gray')
plt.title('Data')

plt.subplot(122)
recon = embedMatricesInGray(test_predictions[:200].reshape((200, 28, 28)), 1)
plt.imshow(recon, interpolation='none', cmap='gray')
plt.title('Reconstruction')

d_v = data.valid_d
Example #2
0
                 force_no_dropout=True)
cnn.addPerceptronLayer(200, activation_func="tanh")
cnn.addPerceptronLayer(150, activation_func="tanh")
cnn.addPerceptronLayer(
    10, activation_func="tanh", force_no_dropout=True
)  # need 10 outputs as there are 10 classes in the data set
cnn.compileOutputFunctions()
cnn.setOptimizerParams(SGD={'LR': 1e-2, 'momentum': 0.9}, weight_decay=0)

print "training..."
for i in range(10000):
    d, l = data.getbatch(batch_size)
    loss, loss_instance, time_per_step = cnn.trainingStep(d, l, mode="SGD")

    if i % 100 == 0:
        r = cnn.getDropoutRates()
        cnn.setDropoutRates([
            0.0,
        ] * len(r))
        valid_loss, valid_error, valid_predictions = cnn.get_error(
            data.valid_d, data.valid_l)
        print "update:", i, "; Validation loss:", valid_loss, "Validation error:", valid_error * 100., "%"
        cnn.setDropoutRates(r)

cnn.setDropoutRates([
    0.0,
] * len(r))
loss, error, test_predictions = cnn.get_error(data.test_d, data.test_l)
print "Test loss:", loss, "Test error:", error * 100., "%"
print "Done."
# Create CNN #
batch_size = 100
cnn = MixedConvNN((28, 28), input_depth=1)
cnn.addConvLayer(10,
                 5,
                 pool_shape=2,
                 activation_func="abs")  # (nof, filtersize)
cnn.addConvLayer(8, 5, pool_shape=2, activation_func="abs")
cnn.addPerceptronLayer(100, activation_func="abs")
cnn.addPerceptronLayer(80, activation_func="abs")
cnn.addPerceptronLayer(
    10,
    activation_func="abs"
)  # need 10 outputs as there are 10 classes in the data set
cnn.compileOutputFunctions()
cnn.setOptimizerParams(SGD={'LR': 1e-2, 'momentum': 0.9}, weight_decay=0)

print "training..."
for i in range(5000):
    d, l = data.getbatch(batch_size)
    loss, loss_instance, time_per_step = cnn.trainingStep(d, l, mode="SGD")

    if i % 100 == 0:
        valid_loss, valid_error, valid_predictions = cnn.get_error(data.valid_d, data.valid_l)
        print "update:", i, "; Validation loss:", valid_loss, "Validation error:", valid_error * 100., "%"

loss, error, test_predictions = cnn.get_error(data.test_d, data.test_l)
print "Test loss:", loss, "Test error:", error * 100., "%"
print "Done."
cnn.addTiedAutoencoderChain(n_layers=None,
                            activation_func="tanh",
                            input_noise=0.3)
cnn.compileOutputFunctions(target="regression")  #compiles the cnn.get_error function as well
cnn.setOptimizerParams(SGD={'LR': 5e-1, 'momentum': 0.9}, weight_decay=0)

print "training..."
for i in range(40000):
    d, l = data.getbatch(batch_size)
    loss, loss_instance, time_per_step = cnn.trainingStep(d, d, mode="SGD")

    if i % 100 == 0:
        print "update:", i, "; Training error:", loss

cnn.layers[3].input_noise.set_value(0.0)
loss, _, test_predictions = cnn.get_error(data.valid_d.reshape((10000, 784)), data.valid_d.reshape((10000, 784)))
print "Final error:", loss
print "Done."

plt.figure(figsize=(14, 6))
plt.subplot(121)
images = embedMatricesInGray(data.valid_d[:200].reshape((200, 28, 28)), 1)
plt.imshow(images, interpolation='none', cmap='gray')
plt.title('Data')

plt.subplot(122)
recon = embedMatricesInGray(test_predictions[:200].reshape((200, 28, 28)), 1)
plt.imshow(recon, interpolation='none', cmap='gray')
plt.title('Reconstruction')

d_v = data.valid_d