# grab the MNIST dataset mnist = MNIST() # create the softmax classifier s = SoftmaxLayer(input_size=28 * 28, output_size=10, out_as_probs=False) # make an optimizer to train it (AdaDelta is a good default) optimizer = AdaDelta(model=s, dataset=mnist, n_epoch=20) # perform training! optimizer.train() # test it on some images! test_data = mnist.getDataByIndices(indices=range(25), subset=TEST) # use the predict function! preds = s.predict(test_data) print '-------' print preds print mnist.getLabelsByIndices(indices=range(25), subset=TEST) print print del mnist del s del optimizer log.info("Creating softmax with categorical cross-entropy!") # grab the MNIST dataset mnist = MNIST(one_hot=True) # create the softmax classifier s = SoftmaxLayer(input_size=28*28, output_size=10, cost='categorical_crossentropy', out_as_probs=True) # make an optimizer to train it (AdaDelta is a good default) optimizer = AdaDelta(model=s, dataset=mnist, n_epoch=20) # perform training!
# although this is recommended over print statements everywhere import logging import opendeep.log.logger as logger logger.config_root_logger() log = logging.getLogger(__name__) log.info("Creating MLP!") # grab the MNIST dataset mnist = MNIST() # create the basic layer layer1 = BasicLayer(input_size=28*28, output_size=1000, activation='relu') # create the softmax classifier layer2 = SoftmaxLayer(inputs_hook=(1000, layer1.get_outputs()), output_size=10, out_as_probs=False) # create the mlp from the two layers mlp = Prototype(layers=[layer1, layer2]) # make an optimizer to train it (AdaDelta is a good default) optimizer = AdaDelta(model=mlp, dataset=mnist, n_epoch=20) # perform training! optimizer.train() # test it on some images! test_data = mnist.getDataByIndices(indices=range(25), subset=TEST) # use the predict function! preds = mlp.predict(test_data) print '-------' print preds print mnist.getLabelsByIndices(indices=range(25), subset=TEST).astype('int32') print print del mnist del mlp del optimizer