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."
5, pool_shape=2, activation_func="tanh", 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."