network3.ipynb based on network3.py

Libraries

Standard Library


In [1]:
import cPickle 
import gzip

Third-party libraries


In [2]:
import numpy as np
import theano
import theano.tensor as T
from theano.tensor.nnet import conv
from theano.tensor.nnet import softmax
from theano.tensor import shared_randomstreams
from theano.tensor.signal import downsample


/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/signal/downsample.py:6: UserWarning: downsample module has been moved to the theano.tensor.signal.pool module.
  "downsample module has been moved to the theano.tensor.signal.pool module.")

Activation functions for neurons


In [3]:
def linear(z): return z
def ReLU(z): return T.maximum(0.0, z)
from theano.tensor.nnet import sigmoid
from theano.tensor import tanh

Constants


In [4]:
GPU = False
if GPU:
    print "Trying to run under a GPU.  If this is not desired, then modify "+\
        "network3.py\nto set the GPU flag to False."
    try: theano.config.device = 'gpu'
    except: pass # it's already set
    theano.config.floatX = 'float32'
else:
    print "Running with a CPU.  If this is not desired, then the modify "+\
        "network3.py to set\nthe GPU flag to True."


Running with a CPU.  If this is not desired, then the modify network3.py to set
the GPU flag to True.

Load the MNIST data


In [5]:
def load_data_shared(filename="../../neural-networks-and-deep-learning/data/mnist.pkl.gz"):
    f = gzip.open(filename, 'rb')
    training_data, validation_data, test_data = cPickle.load(f)
    f.close()
    def shared(data):
        """Place the data into shared variables.  This allows Theano to copy
        the data to the GPU, if one is available.

        """
        shared_x = theano.shared(
            np.asarray(data[0], dtype=theano.config.floatX), borrow=True)
        shared_y = theano.shared(
            np.asarray(data[1], dtype=theano.config.floatX), borrow=True)
        return shared_x, T.cast(shared_y, "int32")
    return [shared(training_data), shared(validation_data), shared(test_data)]

Main class used to construct and train networks


In [6]:
class Network(object):

    def __init__(self, layers, mini_batch_size):
        """Takes a list of `layers`, describing the network architecture, and
        a value for the `mini_batch_size` to be used during training
        by stochastic gradient descent.

        """
        self.layers = layers
        self.mini_batch_size = mini_batch_size
        self.params = [param for layer in self.layers for param in layer.params]
        self.x = T.matrix("x")
        self.y = T.ivector("y")
        init_layer = self.layers[0]
        init_layer.set_inpt(self.x, self.x, self.mini_batch_size)
        for j in xrange(1, len(self.layers)):
            prev_layer, layer  = self.layers[j-1], self.layers[j]
            layer.set_inpt(
                prev_layer.output, prev_layer.output_dropout, self.mini_batch_size)
        self.output = self.layers[-1].output
        self.output_dropout = self.layers[-1].output_dropout

    def SGD(self, training_data, epochs, mini_batch_size, eta,
            validation_data, test_data, lmbda=0.0):
        """Train the network using mini-batch stochastic gradient descent."""
        training_x, training_y = training_data
        validation_x, validation_y = validation_data
        test_x, test_y = test_data

        # compute number of minibatches for training, validation and testing
        num_training_batches = size(training_data)/mini_batch_size
        num_validation_batches = size(validation_data)/mini_batch_size
        num_test_batches = size(test_data)/mini_batch_size

        # define the (regularized) cost function, symbolic gradients, and updates
        l2_norm_squared = sum([(layer.w**2).sum() for layer in self.layers])
        cost = self.layers[-1].cost(self)+\
               0.5*lmbda*l2_norm_squared/num_training_batches
        grads = T.grad(cost, self.params)
        updates = [(param, param-eta*grad)
                   for param, grad in zip(self.params, grads)]

        # define functions to train a mini-batch, and to compute the
        # accuracy in validation and test mini-batches.
        i = T.lscalar() # mini-batch index
        train_mb = theano.function(
            [i], cost, updates=updates,
            givens={
                self.x:
                training_x[i*self.mini_batch_size: (i+1)*self.mini_batch_size],
                self.y:
                training_y[i*self.mini_batch_size: (i+1)*self.mini_batch_size]
            })
        validate_mb_accuracy = theano.function(
            [i], self.layers[-1].accuracy(self.y),
            givens={
                self.x:
                validation_x[i*self.mini_batch_size: (i+1)*self.mini_batch_size],
                self.y:
                validation_y[i*self.mini_batch_size: (i+1)*self.mini_batch_size]
            })
        test_mb_accuracy = theano.function(
            [i], self.layers[-1].accuracy(self.y),
            givens={
                self.x:
                test_x[i*self.mini_batch_size: (i+1)*self.mini_batch_size],
                self.y:
                test_y[i*self.mini_batch_size: (i+1)*self.mini_batch_size]
            })
        self.test_mb_predictions = theano.function(
            [i], self.layers[-1].y_out,
            givens={
                self.x:
                test_x[i*self.mini_batch_size: (i+1)*self.mini_batch_size]
            })
        # Do the actual training
        best_validation_accuracy = 0.0
        for epoch in xrange(epochs):
            for minibatch_index in xrange(num_training_batches):
                iteration = num_training_batches*epoch+minibatch_index
                if iteration % 1000 == 0:
                    print("Training mini-batch number {0}".format(iteration))
                cost_ij = train_mb(minibatch_index)
                if (iteration+1) % num_training_batches == 0:
                    validation_accuracy = np.mean(
                        [validate_mb_accuracy(j) for j in xrange(num_validation_batches)])
                    print("Epoch {0}: validation accuracy {1:.2%}".format(
                        epoch, validation_accuracy))
                    if validation_accuracy >= best_validation_accuracy:
                        print("This is the best validation accuracy to date.")
                        best_validation_accuracy = validation_accuracy
                        best_iteration = iteration
                        if test_data:
                            test_accuracy = np.mean(
                                [test_mb_accuracy(j) for j in xrange(num_test_batches)])
                            print('The corresponding test accuracy is {0:.2%}'.format(
                                test_accuracy))
        print("Finished training network.")
        print("Best validation accuracy of {0:.2%} obtained at iteration {1}".format(
            best_validation_accuracy, best_iteration))
        print("Corresponding test accuracy of {0:.2%}".format(test_accuracy))

Define layer types


In [7]:
class ConvPoolLayer(object):
    """Used to create a combination of a convolutional and a max-pooling
    layer.  A more sophisticated implementation would separate the
    two, but for our purposes we'll always use them together, and it
    simplifies the code, so it makes sense to combine them.

    """

    def __init__(self, filter_shape, image_shape, poolsize=(2, 2),
                 activation_fn=sigmoid):
        """`filter_shape` is a tuple of length 4, whose entries are the number
        of filters, the number of input feature maps, the filter height, and the
        filter width.

        `image_shape` is a tuple of length 4, whose entries are the
        mini-batch size, the number of input feature maps, the image
        height, and the image width.

        `poolsize` is a tuple of length 2, whose entries are the y and
        x pooling sizes.

        """
        self.filter_shape = filter_shape
        self.image_shape = image_shape
        self.poolsize = poolsize
        self.activation_fn=activation_fn
        # initialize weights and biases
        n_out = (filter_shape[0]*np.prod(filter_shape[2:])/np.prod(poolsize))
        self.w = theano.shared(
            np.asarray(
                np.random.normal(loc=0, scale=np.sqrt(1.0/n_out), size=filter_shape),
                dtype=theano.config.floatX),
            borrow=True)
        self.b = theano.shared(
            np.asarray(
                np.random.normal(loc=0, scale=1.0, size=(filter_shape[0],)),
                dtype=theano.config.floatX),
            borrow=True)
        self.params = [self.w, self.b]

    def set_inpt(self, inpt, inpt_dropout, mini_batch_size):
        self.inpt = inpt.reshape(self.image_shape)
        conv_out = conv.conv2d(
            input=self.inpt, filters=self.w, filter_shape=self.filter_shape,
            image_shape=self.image_shape)
        pooled_out = downsample.max_pool_2d(
            input=conv_out, ds=self.poolsize, ignore_border=True)
        self.output = self.activation_fn(
            pooled_out + self.b.dimshuffle('x', 0, 'x', 'x'))
        self.output_dropout = self.output # no dropout in the convolutional layers

In [8]:
class FullyConnectedLayer(object):

    def __init__(self, n_in, n_out, activation_fn=sigmoid, p_dropout=0.0):
        self.n_in = n_in
        self.n_out = n_out
        self.activation_fn = activation_fn
        self.p_dropout = p_dropout
        # Initialize weights and biases
        self.w = theano.shared(
            np.asarray(
                np.random.normal(
                    loc=0.0, scale=np.sqrt(1.0/n_out), size=(n_in, n_out)),
                dtype=theano.config.floatX),
            name='w', borrow=True)
        self.b = theano.shared(
            np.asarray(np.random.normal(loc=0.0, scale=1.0, size=(n_out,)),
                       dtype=theano.config.floatX),
            name='b', borrow=True)
        self.params = [self.w, self.b]

    def set_inpt(self, inpt, inpt_dropout, mini_batch_size):
        self.inpt = inpt.reshape((mini_batch_size, self.n_in))
        self.output = self.activation_fn(
            (1-self.p_dropout)*T.dot(self.inpt, self.w) + self.b)
        self.y_out = T.argmax(self.output, axis=1)
        self.inpt_dropout = dropout_layer(
            inpt_dropout.reshape((mini_batch_size, self.n_in)), self.p_dropout)
        self.output_dropout = self.activation_fn(
            T.dot(self.inpt_dropout, self.w) + self.b)

    def accuracy(self, y):
        "Return the accuracy for the mini-batch."
        return T.mean(T.eq(y, self.y_out))

In [9]:
class SoftmaxLayer(object):

    def __init__(self, n_in, n_out, p_dropout=0.0):
        self.n_in = n_in
        self.n_out = n_out
        self.p_dropout = p_dropout
        # Initialize weights and biases
        self.w = theano.shared(
            np.zeros((n_in, n_out), dtype=theano.config.floatX),
            name='w', borrow=True)
        self.b = theano.shared(
            np.zeros((n_out,), dtype=theano.config.floatX),
            name='b', borrow=True)
        self.params = [self.w, self.b]

    def set_inpt(self, inpt, inpt_dropout, mini_batch_size):
        self.inpt = inpt.reshape((mini_batch_size, self.n_in))
        self.output = softmax((1-self.p_dropout)*T.dot(self.inpt, self.w) + self.b)
        self.y_out = T.argmax(self.output, axis=1)
        self.inpt_dropout = dropout_layer(
            inpt_dropout.reshape((mini_batch_size, self.n_in)), self.p_dropout)
        self.output_dropout = softmax(T.dot(self.inpt_dropout, self.w) + self.b)

    def cost(self, net):
        "Return the log-likelihood cost."
        return -T.mean(T.log(self.output_dropout)[T.arange(net.y.shape[0]), net.y])

    def accuracy(self, y):
        "Return the accuracy for the mini-batch."
        return T.mean(T.eq(y, self.y_out))

Miscellanea


In [10]:
def size(data):
    "Return the size of the dataset `data`."
    return data[0].get_value(borrow=True).shape[0]

def dropout_layer(layer, p_dropout):
    srng = shared_randomstreams.RandomStreams(
        np.random.RandomState(0).randint(999999))
    mask = srng.binomial(n=1, p=1-p_dropout, size=layer.shape)
    return layer*T.cast(mask, theano.config.floatX)

Load Data


In [11]:
training_data, validation_data, test_data = load_data_shared()

Run shallow architecture (single hidden layer) as baseline


In [12]:
mini_batch_size = 10

In [13]:
net = Network([
        FullyConnectedLayer(n_in=784, n_out=100),
        SoftmaxLayer(n_in=100, n_out=10)
    ], mini_batch_size)

In [14]:
net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)


ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul,no_inplace}.0, w)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op Dot22(Elemwise{mul,no_inplace}.0, w) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul,no_inplace}.0, w)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op Dot22(Elemwise{mul,no_inplace}.0, w) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(DimShuffle{1,0}.0, SoftmaxGrad.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (DimShuffle{1,0}.0) of Op Dot22(DimShuffle{1,0}.0, SoftmaxGrad.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(SoftmaxGrad.0, w.T)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (SoftmaxGrad.0) of Op Dot22(SoftmaxGrad.0, w.T) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(DimShuffle{1,0}.0, Elemwise{mul}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (DimShuffle{1,0}.0) of Op Dot22(DimShuffle{1,0}.0, Elemwise{mul}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{second,no_inplace}(dot.0, dot.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{second,no_inplace}(dot.0, dot.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_advanced_indexing_crossentropy_onehot_grad
ERROR (theano.gof.opt): node: SoftmaxGrad(Elemwise{true_div}.0, Softmax.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 1907, in local_advanced_indexing_crossentropy_onehot_grad
    out_grad = -incr
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 39, in __neg__
    return theano.tensor.basic.neg(self)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{second}.0) of Op Elemwise{neg,no_inplace}(Elemwise{second}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_specialize
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(TensorConstant{-1.0}, mean)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5427, in local_mul_specialize
    rval = -new_inputs[0]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 39, in __neg__
    return theano.tensor.basic.neg(self)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (mean) of Op Elemwise{neg,no_inplace}(mean) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_advanced_indexing_crossentropy_onehot
ERROR (theano.gof.opt): node: AdvancedSubtensor(Elemwise{log,no_inplace}.0, ARange{dtype='int64'}.0, Elemwise{Cast{int32}}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 1692, in local_advanced_indexing_crossentropy_onehot
    b_var = tensor.zeros_like(x_var[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 532, in __getitem__
    lambda entry: isinstance(entry, Variable)))
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{add,no_inplace}.0) of Op Subtensor{int64}(Elemwise{add,no_inplace}.0, Constant{0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_logsoftmax
ERROR (theano.gof.opt): node: Elemwise{log,no_inplace}(Softmax.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 756, in local_logsoftmax
    ret = new_op(inVars)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{add,no_inplace}.0) of Op LogSoftmax(Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): SeqOptimizer apply <theano.tensor.opt.FusionOptimizer object at 0x7f4ee231a9d0>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6658, in apply
    new_outputs = self.optimizer(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6727, in local_add_mul_fusion
    output_node = node.op(*(l + inp.owner.inputs))
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{sub}.0) of Op Elemwise{mul}(Elemwise{sub}.0, Reshape{2}.0, sigmoid.0) missing default value

ERROR (theano.gof.opt): SeqOptimizer apply <theano.tensor.opt.FusionOptimizer object at 0x7f4ee231aa90>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6658, in apply
    new_outputs = self.optimizer(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6502, in local_fuse
    return_list=True)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<float64>) of Op mul(<float64>, <float64>) missing default value

ERROR (theano.gof.opt): SeqOptimizer apply <theano.compile.mode.AddDestroyHandler object at 0x7f4f0d7aba10>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/compile/mode.py", line 134, in apply
    fgraph.replace_validate(o, _output_guard(o),
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op OutputGuard(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0}(Elemwise{mul,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op InplaceDimShuffle{1,0}(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0}(Elemwise{mul,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op InplaceDimShuffle{1,0}(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{x}(Elemwise{Cast{float64}}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{Cast{float64}}.0) of Op InplaceDimShuffle{x}(Elemwise{Cast{float64}}.0) missing default value

Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 92.41%
This is the best validation accuracy to date.
The corresponding test accuracy is 91.67%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 94.67%
This is the best validation accuracy to date.
The corresponding test accuracy is 94.01%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 95.79%
This is the best validation accuracy to date.
The corresponding test accuracy is 95.09%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 96.28%
This is the best validation accuracy to date.
The corresponding test accuracy is 95.69%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 96.67%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.17%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 96.87%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.51%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 96.95%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.75%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 97.10%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.05%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 97.30%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.22%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 97.40%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.31%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 97.47%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.38%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 97.51%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.41%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 97.50%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 97.52%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.48%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 97.59%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.57%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 97.59%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.62%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 97.56%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 97.58%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 97.64%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.68%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 97.62%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 97.64%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.70%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 97.64%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.72%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 97.66%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.74%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 97.69%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.76%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 97.69%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.77%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 97.69%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 97.67%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 97.69%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 97.71%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.81%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 97.70%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 97.71%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 97.71%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 97.72%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 97.72%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.82%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 97.72%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.79%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 97.72%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.78%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 97.74%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.81%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 97.74%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.81%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 97.75%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 97.77%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 97.78%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.79%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 97.77%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 97.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.82%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 97.79%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 97.78%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 97.79%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 97.80%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.82%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.81%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 97.79%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.81%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 97.80%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 97.80%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 97.80%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 97.79%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 97.80%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.84%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.82%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.85%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 97.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.85%
Finished training network.
Best validation accuracy of 97.81% obtained at iteration 299999
Corresponding test accuracy of 97.85%

In [15]:
# add a convolutional layer: 
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
                     filter_shape=(20, 1, 5, 5),
                     poolsize=(2, 2)),
        FullyConnectedLayer(n_in=20*12*12, n_out=100),
        SoftmaxLayer(n_in=100, n_out=10)], 
              mini_batch_size)

In [16]:
net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 93.56%
This is the best validation accuracy to date.
The corresponding test accuracy is 92.74%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 96.03%
This is the best validation accuracy to date.
The corresponding test accuracy is 95.51%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 96.96%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.57%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 97.41%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.10%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 97.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.47%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 97.99%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.73%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 98.00%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.83%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 98.14%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.88%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 98.25%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.07%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 98.40%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.24%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 98.52%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.31%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 98.58%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.43%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 98.61%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.51%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 98.66%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.58%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 98.66%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.67%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 98.68%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.69%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 98.69%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.76%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 98.68%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 98.71%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.74%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 98.71%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.74%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 98.73%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.74%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 98.74%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.78%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 98.75%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.78%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 98.73%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 98.75%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.81%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 98.78%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.80%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 98.76%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 98.75%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 98.74%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 98.75%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 98.75%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 98.75%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 98.76%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 98.76%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 98.76%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 98.75%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 98.75%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 98.75%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 98.76%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 98.75%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 98.75%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 98.76%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 98.76%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 98.77%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 98.77%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 98.77%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 98.78%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.90%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 98.79%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.90%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 98.79%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.90%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 98.78%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 98.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.92%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 98.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.93%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 98.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.95%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 98.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.95%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 98.81%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.95%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 98.80%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 98.80%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 98.82%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.95%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 98.82%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.93%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 98.82%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.92%
Finished training network.
Best validation accuracy of 98.82% obtained at iteration 299999
Corresponding test accuracy of 98.92%

In [17]:
# remove fully connected layer: 
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
                     filter_shape=(20, 1, 5, 5), 
                     poolsize=(2, 2)),
        # FullyConnectedLayer(n_in=20*12*12, n_out=100),
        SoftmaxLayer(n_in=20*12*12, n_out=10)], 
              mini_batch_size)

In [18]:
net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 94.05%
This is the best validation accuracy to date.
The corresponding test accuracy is 93.53%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 96.88%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.58%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 97.62%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.52%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 98.00%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.80%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 98.16%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.99%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 98.22%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.10%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 98.30%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.19%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 98.37%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.20%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 98.43%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.26%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 98.46%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.33%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 98.44%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 98.50%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.34%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 98.54%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.34%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 98.55%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.36%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 98.54%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 98.57%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.39%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 98.55%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 98.57%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.43%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 98.60%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.42%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 98.61%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.43%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 98.61%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.43%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 98.61%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.47%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 98.60%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 98.60%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 98.59%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 98.58%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 98.59%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 98.58%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 98.59%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 98.58%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 98.58%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 98.57%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 98.57%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 98.57%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 98.55%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 98.53%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 98.50%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 98.50%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 98.53%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 98.54%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 98.53%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 98.53%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 98.54%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 98.54%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 98.55%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 98.52%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 98.53%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 98.51%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 98.51%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 98.51%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 98.52%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 98.51%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 98.52%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 98.52%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 98.53%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 98.52%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 98.53%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 98.53%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 98.51%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 98.51%
Finished training network.
Best validation accuracy of 98.61% obtained at iteration 109999
Corresponding test accuracy of 98.47%

In [19]:
# add a second convolutional layer: 
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
                     filter_shape=(20, 1, 5, 5),
                     poolsize=(2, 2)),
        ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
                     filter_shape=(40, 20, 5, 5),
                     poolsize=(2, 2)),
        FullyConnectedLayer(n_in=40*4*4, n_out=100),
        SoftmaxLayer(n_in=100, n_out=10)
    ], mini_batch_size)

In [20]:
net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 92.67%
This is the best validation accuracy to date.
The corresponding test accuracy is 92.43%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 96.80%
This is the best validation accuracy to date.
The corresponding test accuracy is 96.53%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 97.63%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.43%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 97.89%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.74%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 98.00%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.92%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 98.15%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.14%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 98.21%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.31%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 98.27%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.44%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 98.32%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.56%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 98.39%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.58%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 98.48%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.66%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 98.55%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.70%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 98.59%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.77%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 98.65%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.80%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 98.65%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.81%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 98.70%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.86%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 98.75%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.87%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 98.77%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.88%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 98.82%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.86%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 98.84%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.88%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 98.85%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.91%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 98.84%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 98.85%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.93%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 98.86%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.95%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 98.85%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 98.86%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.98%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 98.85%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 98.84%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 98.84%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 98.85%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 98.87%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.04%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 98.87%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.03%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 98.88%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.03%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 98.89%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.05%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 98.91%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.06%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 98.92%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.06%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 98.93%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.07%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 98.94%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.06%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 98.94%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.06%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 98.95%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.05%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 98.94%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 98.92%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 98.93%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 98.93%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 98.93%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 98.95%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.08%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 98.96%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.08%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 98.95%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 98.96%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.08%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 98.95%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 98.97%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.07%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.07%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 98.97%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 98.97%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.08%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.08%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.09%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.10%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.10%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 98.98%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.11%
Finished training network.
Best validation accuracy of 98.98% obtained at iteration 299999
Corresponding test accuracy of 99.11%

In [21]:
# switch from sigmoid to tanh neurons: 
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
                     filter_shape=(20, 1, 5, 5),
                     poolsize=(2, 2),
                     activation_fn=tanh),
        ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
                     filter_shape=(40, 20, 5, 5),
                     poolsize=(2, 2),
                     activation_fn=tanh),
        FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=tanh),
        SoftmaxLayer(n_in=100, n_out=10)
    ], mini_batch_size)

In [22]:
net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 97.16%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.19%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 98.10%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.03%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 98.28%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.35%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 98.32%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.14%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 98.40%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.40%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 98.68%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.55%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 98.79%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.67%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 98.77%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 98.78%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 98.92%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.97%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 98.84%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 98.88%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 98.89%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 98.87%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 98.84%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 98.85%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 98.85%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 98.84%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 98.86%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 98.86%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 98.85%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 98.85%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 98.86%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 98.86%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 98.86%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 98.85%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 98.85%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 98.85%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 98.85%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 98.85%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 98.85%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 98.87%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 98.87%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 98.88%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 98.88%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 98.88%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 98.88%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 98.89%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 98.89%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 98.89%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 98.89%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 98.89%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 98.90%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 98.89%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 98.89%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 98.89%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 98.89%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 98.89%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 98.89%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 98.88%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 98.88%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 98.88%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 98.88%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 98.88%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 98.88%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 98.88%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 98.89%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 98.89%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 98.90%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 98.90%
Finished training network.
Best validation accuracy of 98.92% obtained at iteration 49999
Corresponding test accuracy of 98.97%

In [23]:
# switch to ReLU neurons: 
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28), 
                      filter_shape=(20, 1, 5, 5), 
                      poolsize=(2, 2), 
                      activation_fn=ReLU),
        ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12), 
                      filter_shape=(40, 20, 5, 5), 
                      poolsize=(2, 2), 
                      activation_fn=ReLU),
        FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU),
        SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)

In [24]:
# note the eta is an order of magnitude smaller, and lambda has been added as a parameter: 
net.SGD(training_data, 60, mini_batch_size, 0.03, 
            validation_data, test_data, lmbda=0.1)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Epoch 0: validation accuracy 97.54%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.26%
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Epoch 1: validation accuracy 98.05%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.00%
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Epoch 2: validation accuracy 98.29%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.27%
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Epoch 3: validation accuracy 98.57%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.57%
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 4: validation accuracy 98.68%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.61%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Epoch 5: validation accuracy 98.82%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.77%
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Epoch 6: validation accuracy 98.75%
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Epoch 7: validation accuracy 98.71%
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Epoch 8: validation accuracy 98.77%
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 9: validation accuracy 98.90%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.76%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Epoch 10: validation accuracy 98.74%
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Epoch 11: validation accuracy 98.74%
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Epoch 12: validation accuracy 98.94%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.93%
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Epoch 13: validation accuracy 98.93%
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 14: validation accuracy 98.75%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Epoch 15: validation accuracy 98.77%
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Epoch 16: validation accuracy 98.95%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.98%
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Epoch 17: validation accuracy 98.91%
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Epoch 18: validation accuracy 98.66%
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 19: validation accuracy 98.80%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Epoch 20: validation accuracy 98.82%
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Epoch 21: validation accuracy 98.84%
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Epoch 22: validation accuracy 98.81%
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Epoch 23: validation accuracy 99.01%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.00%
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 24: validation accuracy 98.87%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Epoch 25: validation accuracy 99.04%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.99%
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Epoch 26: validation accuracy 98.79%
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Epoch 27: validation accuracy 99.02%
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Epoch 28: validation accuracy 99.11%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.09%
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 29: validation accuracy 99.20%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.09%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Epoch 30: validation accuracy 99.20%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.11%
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Epoch 31: validation accuracy 99.19%
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Epoch 32: validation accuracy 99.19%
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Epoch 33: validation accuracy 99.19%
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 34: validation accuracy 99.17%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Epoch 35: validation accuracy 99.18%
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Epoch 36: validation accuracy 99.18%
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Epoch 37: validation accuracy 99.18%
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Epoch 38: validation accuracy 99.17%
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 39: validation accuracy 99.17%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Epoch 40: validation accuracy 99.18%
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Epoch 41: validation accuracy 99.17%
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Epoch 42: validation accuracy 99.18%
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Epoch 43: validation accuracy 99.16%
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 44: validation accuracy 99.17%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Epoch 45: validation accuracy 99.15%
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Epoch 46: validation accuracy 99.15%
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Epoch 47: validation accuracy 99.15%
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Epoch 48: validation accuracy 99.16%
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 49: validation accuracy 99.17%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Epoch 50: validation accuracy 99.17%
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Epoch 51: validation accuracy 99.17%
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Epoch 52: validation accuracy 99.17%
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Epoch 53: validation accuracy 99.17%
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 54: validation accuracy 99.18%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Epoch 55: validation accuracy 99.18%
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Epoch 56: validation accuracy 99.18%
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Epoch 57: validation accuracy 99.18%
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Epoch 58: validation accuracy 99.18%
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 59: validation accuracy 99.18%
Finished training network.
Best validation accuracy of 99.20% obtained at iteration 154999
Corresponding test accuracy of 99.11%

In [13]:
expanded_training_data, _, _ = load_data_shared("../../neural-networks-and-deep-learning/data/mnist_expanded.pkl.gz")

In [26]:
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28), 
                      filter_shape=(20, 1, 5, 5), 
                      poolsize=(2, 2), 
                      activation_fn=ReLU),
        ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12), 
                      filter_shape=(40, 20, 5, 5), 
                      poolsize=(2, 2), 
                      activation_fn=ReLU),
        FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU),
        SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)

In [27]:
net.SGD(expanded_training_data, 60, mini_batch_size, 0.03, 
            validation_data, test_data, lmbda=0.1)


Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 0: validation accuracy 96.92%
This is the best validation accuracy to date.
The corresponding test accuracy is 97.05%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 1: validation accuracy 98.79%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.87%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 2: validation accuracy 98.99%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.88%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 3: validation accuracy 99.11%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.93%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 4: validation accuracy 99.07%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 5: validation accuracy 99.12%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.98%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 6: validation accuracy 99.16%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.94%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 7: validation accuracy 99.16%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.06%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 8: validation accuracy 99.27%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.19%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 9: validation accuracy 99.31%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.17%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 10: validation accuracy 99.26%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 11: validation accuracy 99.34%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.24%
Training mini-batch number 300000
Training mini-batch number 301000
Training mini-batch number 302000
Training mini-batch number 303000
Training mini-batch number 304000
Training mini-batch number 305000
Training mini-batch number 306000
Training mini-batch number 307000
Training mini-batch number 308000
Training mini-batch number 309000
Training mini-batch number 310000
Training mini-batch number 311000
Training mini-batch number 312000
Training mini-batch number 313000
Training mini-batch number 314000
Training mini-batch number 315000
Training mini-batch number 316000
Training mini-batch number 317000
Training mini-batch number 318000
Training mini-batch number 319000
Training mini-batch number 320000
Training mini-batch number 321000
Training mini-batch number 322000
Training mini-batch number 323000
Training mini-batch number 324000
Epoch 12: validation accuracy 99.17%
Training mini-batch number 325000
Training mini-batch number 326000
Training mini-batch number 327000
Training mini-batch number 328000
Training mini-batch number 329000
Training mini-batch number 330000
Training mini-batch number 331000
Training mini-batch number 332000
Training mini-batch number 333000
Training mini-batch number 334000
Training mini-batch number 335000
Training mini-batch number 336000
Training mini-batch number 337000
Training mini-batch number 338000
Training mini-batch number 339000
Training mini-batch number 340000
Training mini-batch number 341000
Training mini-batch number 342000
Training mini-batch number 343000
Training mini-batch number 344000
Training mini-batch number 345000
Training mini-batch number 346000
Training mini-batch number 347000
Training mini-batch number 348000
Training mini-batch number 349000
Epoch 13: validation accuracy 99.23%
Training mini-batch number 350000
Training mini-batch number 351000
Training mini-batch number 352000
Training mini-batch number 353000
Training mini-batch number 354000
Training mini-batch number 355000
Training mini-batch number 356000
Training mini-batch number 357000
Training mini-batch number 358000
Training mini-batch number 359000
Training mini-batch number 360000
Training mini-batch number 361000
Training mini-batch number 362000
Training mini-batch number 363000
Training mini-batch number 364000
Training mini-batch number 365000
Training mini-batch number 366000
Training mini-batch number 367000
Training mini-batch number 368000
Training mini-batch number 369000
Training mini-batch number 370000
Training mini-batch number 371000
Training mini-batch number 372000
Training mini-batch number 373000
Training mini-batch number 374000
Epoch 14: validation accuracy 99.15%
Training mini-batch number 375000
Training mini-batch number 376000
Training mini-batch number 377000
Training mini-batch number 378000
Training mini-batch number 379000
Training mini-batch number 380000
Training mini-batch number 381000
Training mini-batch number 382000
Training mini-batch number 383000
Training mini-batch number 384000
Training mini-batch number 385000
Training mini-batch number 386000
Training mini-batch number 387000
Training mini-batch number 388000
Training mini-batch number 389000
Training mini-batch number 390000
Training mini-batch number 391000
Training mini-batch number 392000
Training mini-batch number 393000
Training mini-batch number 394000
Training mini-batch number 395000
Training mini-batch number 396000
Training mini-batch number 397000
Training mini-batch number 398000
Training mini-batch number 399000
Epoch 15: validation accuracy 99.26%
Training mini-batch number 400000
Training mini-batch number 401000
Training mini-batch number 402000
Training mini-batch number 403000
Training mini-batch number 404000
Training mini-batch number 405000
Training mini-batch number 406000
Training mini-batch number 407000
Training mini-batch number 408000
Training mini-batch number 409000
Training mini-batch number 410000
Training mini-batch number 411000
Training mini-batch number 412000
Training mini-batch number 413000
Training mini-batch number 414000
Training mini-batch number 415000
Training mini-batch number 416000
Training mini-batch number 417000
Training mini-batch number 418000
Training mini-batch number 419000
Training mini-batch number 420000
Training mini-batch number 421000
Training mini-batch number 422000
Training mini-batch number 423000
Training mini-batch number 424000
Epoch 16: validation accuracy 99.35%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.28%
Training mini-batch number 425000
Training mini-batch number 426000
Training mini-batch number 427000
Training mini-batch number 428000
Training mini-batch number 429000
Training mini-batch number 430000
Training mini-batch number 431000
Training mini-batch number 432000
Training mini-batch number 433000
Training mini-batch number 434000
Training mini-batch number 435000
Training mini-batch number 436000
Training mini-batch number 437000
Training mini-batch number 438000
Training mini-batch number 439000
Training mini-batch number 440000
Training mini-batch number 441000
Training mini-batch number 442000
Training mini-batch number 443000
Training mini-batch number 444000
Training mini-batch number 445000
Training mini-batch number 446000
Training mini-batch number 447000
Training mini-batch number 448000
Training mini-batch number 449000
Epoch 17: validation accuracy 99.30%
Training mini-batch number 450000
Training mini-batch number 451000
Training mini-batch number 452000
Training mini-batch number 453000
Training mini-batch number 454000
Training mini-batch number 455000
Training mini-batch number 456000
Training mini-batch number 457000
Training mini-batch number 458000
Training mini-batch number 459000
Training mini-batch number 460000
Training mini-batch number 461000
Training mini-batch number 462000
Training mini-batch number 463000
Training mini-batch number 464000
Training mini-batch number 465000
Training mini-batch number 466000
Training mini-batch number 467000
Training mini-batch number 468000
Training mini-batch number 469000
Training mini-batch number 470000
Training mini-batch number 471000
Training mini-batch number 472000
Training mini-batch number 473000
Training mini-batch number 474000
Epoch 18: validation accuracy 99.31%
Training mini-batch number 475000
Training mini-batch number 476000
Training mini-batch number 477000
Training mini-batch number 478000
Training mini-batch number 479000
Training mini-batch number 480000
Training mini-batch number 481000
Training mini-batch number 482000
Training mini-batch number 483000
Training mini-batch number 484000
Training mini-batch number 485000
Training mini-batch number 486000
Training mini-batch number 487000
Training mini-batch number 488000
Training mini-batch number 489000
Training mini-batch number 490000
Training mini-batch number 491000
Training mini-batch number 492000
Training mini-batch number 493000
Training mini-batch number 494000
Training mini-batch number 495000
Training mini-batch number 496000
Training mini-batch number 497000
Training mini-batch number 498000
Training mini-batch number 499000
Epoch 19: validation accuracy 99.40%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.33%
Training mini-batch number 500000
Training mini-batch number 501000
Training mini-batch number 502000
Training mini-batch number 503000
Training mini-batch number 504000
Training mini-batch number 505000
Training mini-batch number 506000
Training mini-batch number 507000
Training mini-batch number 508000
Training mini-batch number 509000
Training mini-batch number 510000
Training mini-batch number 511000
Training mini-batch number 512000
Training mini-batch number 513000
Training mini-batch number 514000
Training mini-batch number 515000
Training mini-batch number 516000
Training mini-batch number 517000
Training mini-batch number 518000
Training mini-batch number 519000
Training mini-batch number 520000
Training mini-batch number 521000
Training mini-batch number 522000
Training mini-batch number 523000
Training mini-batch number 524000
Epoch 20: validation accuracy 99.33%
Training mini-batch number 525000
Training mini-batch number 526000
Training mini-batch number 527000
Training mini-batch number 528000
Training mini-batch number 529000
Training mini-batch number 530000
Training mini-batch number 531000
Training mini-batch number 532000
Training mini-batch number 533000
Training mini-batch number 534000
Training mini-batch number 535000
Training mini-batch number 536000
Training mini-batch number 537000
Training mini-batch number 538000
Training mini-batch number 539000
Training mini-batch number 540000
Training mini-batch number 541000
Training mini-batch number 542000
Training mini-batch number 543000
Training mini-batch number 544000
Training mini-batch number 545000
Training mini-batch number 546000
Training mini-batch number 547000
Training mini-batch number 548000
Training mini-batch number 549000
Epoch 21: validation accuracy 99.27%
Training mini-batch number 550000
Training mini-batch number 551000
Training mini-batch number 552000
Training mini-batch number 553000
Training mini-batch number 554000
Training mini-batch number 555000
Training mini-batch number 556000
Training mini-batch number 557000
Training mini-batch number 558000
Training mini-batch number 559000
Training mini-batch number 560000
Training mini-batch number 561000
Training mini-batch number 562000
Training mini-batch number 563000
Training mini-batch number 564000
Training mini-batch number 565000
Training mini-batch number 566000
Training mini-batch number 567000
Training mini-batch number 568000
Training mini-batch number 569000
Training mini-batch number 570000
Training mini-batch number 571000
Training mini-batch number 572000
Training mini-batch number 573000
Training mini-batch number 574000
Epoch 22: validation accuracy 99.40%
Training mini-batch number 575000
Training mini-batch number 576000
Training mini-batch number 577000
Training mini-batch number 578000
Training mini-batch number 579000
Training mini-batch number 580000
Training mini-batch number 581000
Training mini-batch number 582000
Training mini-batch number 583000
Training mini-batch number 584000
Training mini-batch number 585000
Training mini-batch number 586000
Training mini-batch number 587000
Training mini-batch number 588000
Training mini-batch number 589000
Training mini-batch number 590000
Training mini-batch number 591000
Training mini-batch number 592000
Training mini-batch number 593000
Training mini-batch number 594000
Training mini-batch number 595000
Training mini-batch number 596000
Training mini-batch number 597000
Training mini-batch number 598000
Training mini-batch number 599000
Epoch 23: validation accuracy 99.37%
Training mini-batch number 600000
Training mini-batch number 601000
Training mini-batch number 602000
Training mini-batch number 603000
Training mini-batch number 604000
Training mini-batch number 605000
Training mini-batch number 606000
Training mini-batch number 607000
Training mini-batch number 608000
Training mini-batch number 609000
Training mini-batch number 610000
Training mini-batch number 611000
Training mini-batch number 612000
Training mini-batch number 613000
Training mini-batch number 614000
Training mini-batch number 615000
Training mini-batch number 616000
Training mini-batch number 617000
Training mini-batch number 618000
Training mini-batch number 619000
Training mini-batch number 620000
Training mini-batch number 621000
Training mini-batch number 622000
Training mini-batch number 623000
Training mini-batch number 624000
Epoch 24: validation accuracy 99.38%
Training mini-batch number 625000
Training mini-batch number 626000
Training mini-batch number 627000
Training mini-batch number 628000
Training mini-batch number 629000
Training mini-batch number 630000
Training mini-batch number 631000
Training mini-batch number 632000
Training mini-batch number 633000
Training mini-batch number 634000
Training mini-batch number 635000
Training mini-batch number 636000
Training mini-batch number 637000
Training mini-batch number 638000
Training mini-batch number 639000
Training mini-batch number 640000
Training mini-batch number 641000
Training mini-batch number 642000
Training mini-batch number 643000
Training mini-batch number 644000
Training mini-batch number 645000
Training mini-batch number 646000
Training mini-batch number 647000
Training mini-batch number 648000
Training mini-batch number 649000
Epoch 25: validation accuracy 99.27%
Training mini-batch number 650000
Training mini-batch number 651000
Training mini-batch number 652000
Training mini-batch number 653000
Training mini-batch number 654000
Training mini-batch number 655000
Training mini-batch number 656000
Training mini-batch number 657000
Training mini-batch number 658000
Training mini-batch number 659000
Training mini-batch number 660000
Training mini-batch number 661000
Training mini-batch number 662000
Training mini-batch number 663000
Training mini-batch number 664000
Training mini-batch number 665000
Training mini-batch number 666000
Training mini-batch number 667000
Training mini-batch number 668000
Training mini-batch number 669000
Training mini-batch number 670000
Training mini-batch number 671000
Training mini-batch number 672000
Training mini-batch number 673000
Training mini-batch number 674000
Epoch 26: validation accuracy 99.25%
Training mini-batch number 675000
Training mini-batch number 676000
Training mini-batch number 677000
Training mini-batch number 678000
Training mini-batch number 679000
Training mini-batch number 680000
Training mini-batch number 681000
Training mini-batch number 682000
Training mini-batch number 683000
Training mini-batch number 684000
Training mini-batch number 685000
Training mini-batch number 686000
Training mini-batch number 687000
Training mini-batch number 688000
Training mini-batch number 689000
Training mini-batch number 690000
Training mini-batch number 691000
Training mini-batch number 692000
Training mini-batch number 693000
Training mini-batch number 694000
Training mini-batch number 695000
Training mini-batch number 696000
Training mini-batch number 697000
Training mini-batch number 698000
Training mini-batch number 699000
Epoch 27: validation accuracy 99.30%
Training mini-batch number 700000
Training mini-batch number 701000
Training mini-batch number 702000
Training mini-batch number 703000
Training mini-batch number 704000
Training mini-batch number 705000
Training mini-batch number 706000
Training mini-batch number 707000
Training mini-batch number 708000
Training mini-batch number 709000
Training mini-batch number 710000
Training mini-batch number 711000
Training mini-batch number 712000
Training mini-batch number 713000
Training mini-batch number 714000
Training mini-batch number 715000
Training mini-batch number 716000
Training mini-batch number 717000
Training mini-batch number 718000
Training mini-batch number 719000
Training mini-batch number 720000
Training mini-batch number 721000
Training mini-batch number 722000
Training mini-batch number 723000
Training mini-batch number 724000
Epoch 28: validation accuracy 99.30%
Training mini-batch number 725000
Training mini-batch number 726000
Training mini-batch number 727000
Training mini-batch number 728000
Training mini-batch number 729000
Training mini-batch number 730000
Training mini-batch number 731000
Training mini-batch number 732000
Training mini-batch number 733000
Training mini-batch number 734000
Training mini-batch number 735000
Training mini-batch number 736000
Training mini-batch number 737000
Training mini-batch number 738000
Training mini-batch number 739000
Training mini-batch number 740000
Training mini-batch number 741000
Training mini-batch number 742000
Training mini-batch number 743000
Training mini-batch number 744000
Training mini-batch number 745000
Training mini-batch number 746000
Training mini-batch number 747000
Training mini-batch number 748000
Training mini-batch number 749000
Epoch 29: validation accuracy 99.33%
Training mini-batch number 750000
Training mini-batch number 751000
Training mini-batch number 752000
Training mini-batch number 753000
Training mini-batch number 754000
Training mini-batch number 755000
Training mini-batch number 756000
Training mini-batch number 757000
Training mini-batch number 758000
Training mini-batch number 759000
Training mini-batch number 760000
Training mini-batch number 761000
Training mini-batch number 762000
Training mini-batch number 763000
Training mini-batch number 764000
Training mini-batch number 765000
Training mini-batch number 766000
Training mini-batch number 767000
Training mini-batch number 768000
Training mini-batch number 769000
Training mini-batch number 770000
Training mini-batch number 771000
Training mini-batch number 772000
Training mini-batch number 773000
Training mini-batch number 774000
Epoch 30: validation accuracy 99.36%
Training mini-batch number 775000
Training mini-batch number 776000
Training mini-batch number 777000
Training mini-batch number 778000
Training mini-batch number 779000
Training mini-batch number 780000
Training mini-batch number 781000
Training mini-batch number 782000
Training mini-batch number 783000
Training mini-batch number 784000
Training mini-batch number 785000
Training mini-batch number 786000
Training mini-batch number 787000
Training mini-batch number 788000
Training mini-batch number 789000
Training mini-batch number 790000
Training mini-batch number 791000
Training mini-batch number 792000
Training mini-batch number 793000
Training mini-batch number 794000
Training mini-batch number 795000
Training mini-batch number 796000
Training mini-batch number 797000
Training mini-batch number 798000
Training mini-batch number 799000
Epoch 31: validation accuracy 99.38%
Training mini-batch number 800000
Training mini-batch number 801000
Training mini-batch number 802000
Training mini-batch number 803000
Training mini-batch number 804000
Training mini-batch number 805000
Training mini-batch number 806000
Training mini-batch number 807000
Training mini-batch number 808000
Training mini-batch number 809000
Training mini-batch number 810000
Training mini-batch number 811000
Training mini-batch number 812000
Training mini-batch number 813000
Training mini-batch number 814000
Training mini-batch number 815000
Training mini-batch number 816000
Training mini-batch number 817000
Training mini-batch number 818000
Training mini-batch number 819000
Training mini-batch number 820000
Training mini-batch number 821000
Training mini-batch number 822000
Training mini-batch number 823000
Training mini-batch number 824000
Epoch 32: validation accuracy 99.38%
Training mini-batch number 825000
Training mini-batch number 826000
Training mini-batch number 827000
Training mini-batch number 828000
Training mini-batch number 829000
Training mini-batch number 830000
Training mini-batch number 831000
Training mini-batch number 832000
Training mini-batch number 833000
Training mini-batch number 834000
Training mini-batch number 835000
Training mini-batch number 836000
Training mini-batch number 837000
Training mini-batch number 838000
Training mini-batch number 839000
Training mini-batch number 840000
Training mini-batch number 841000
Training mini-batch number 842000
Training mini-batch number 843000
Training mini-batch number 844000
Training mini-batch number 845000
Training mini-batch number 846000
Training mini-batch number 847000
Training mini-batch number 848000
Training mini-batch number 849000
Epoch 33: validation accuracy 99.37%
Training mini-batch number 850000
Training mini-batch number 851000
Training mini-batch number 852000
Training mini-batch number 853000
Training mini-batch number 854000
Training mini-batch number 855000
Training mini-batch number 856000
Training mini-batch number 857000
Training mini-batch number 858000
Training mini-batch number 859000
Training mini-batch number 860000
Training mini-batch number 861000
Training mini-batch number 862000
Training mini-batch number 863000
Training mini-batch number 864000
Training mini-batch number 865000
Training mini-batch number 866000
Training mini-batch number 867000
Training mini-batch number 868000
Training mini-batch number 869000
Training mini-batch number 870000
Training mini-batch number 871000
Training mini-batch number 872000
Training mini-batch number 873000
Training mini-batch number 874000
Epoch 34: validation accuracy 99.38%
Training mini-batch number 875000
Training mini-batch number 876000
Training mini-batch number 877000
Training mini-batch number 878000
Training mini-batch number 879000
Training mini-batch number 880000
Training mini-batch number 881000
Training mini-batch number 882000
Training mini-batch number 883000
Training mini-batch number 884000
Training mini-batch number 885000
Training mini-batch number 886000
Training mini-batch number 887000
Training mini-batch number 888000
Training mini-batch number 889000
Training mini-batch number 890000
Training mini-batch number 891000
Training mini-batch number 892000
Training mini-batch number 893000
Training mini-batch number 894000
Training mini-batch number 895000
Training mini-batch number 896000
Training mini-batch number 897000
Training mini-batch number 898000
Training mini-batch number 899000
Epoch 35: validation accuracy 99.37%
Training mini-batch number 900000
Training mini-batch number 901000
Training mini-batch number 902000
Training mini-batch number 903000
Training mini-batch number 904000
Training mini-batch number 905000
Training mini-batch number 906000
Training mini-batch number 907000
Training mini-batch number 908000
Training mini-batch number 909000
Training mini-batch number 910000
Training mini-batch number 911000
Training mini-batch number 912000
Training mini-batch number 913000
Training mini-batch number 914000
Training mini-batch number 915000
Training mini-batch number 916000
Training mini-batch number 917000
Training mini-batch number 918000
Training mini-batch number 919000
Training mini-batch number 920000
Training mini-batch number 921000
Training mini-batch number 922000
Training mini-batch number 923000
Training mini-batch number 924000
Epoch 36: validation accuracy 99.38%
Training mini-batch number 925000
Training mini-batch number 926000
Training mini-batch number 927000
Training mini-batch number 928000
Training mini-batch number 929000
Training mini-batch number 930000
Training mini-batch number 931000
Training mini-batch number 932000
Training mini-batch number 933000
Training mini-batch number 934000
Training mini-batch number 935000
Training mini-batch number 936000
Training mini-batch number 937000
Training mini-batch number 938000
Training mini-batch number 939000
Training mini-batch number 940000
Training mini-batch number 941000
Training mini-batch number 942000
Training mini-batch number 943000
Training mini-batch number 944000
Training mini-batch number 945000
Training mini-batch number 946000
Training mini-batch number 947000
Training mini-batch number 948000
Training mini-batch number 949000
Epoch 37: validation accuracy 99.39%
Training mini-batch number 950000
Training mini-batch number 951000
Training mini-batch number 952000
Training mini-batch number 953000
Training mini-batch number 954000
Training mini-batch number 955000
Training mini-batch number 956000
Training mini-batch number 957000
Training mini-batch number 958000
Training mini-batch number 959000
Training mini-batch number 960000
Training mini-batch number 961000
Training mini-batch number 962000
Training mini-batch number 963000
Training mini-batch number 964000
Training mini-batch number 965000
Training mini-batch number 966000
Training mini-batch number 967000
Training mini-batch number 968000
Training mini-batch number 969000
Training mini-batch number 970000
Training mini-batch number 971000
Training mini-batch number 972000
Training mini-batch number 973000
Training mini-batch number 974000
Epoch 38: validation accuracy 99.38%
Training mini-batch number 975000
Training mini-batch number 976000
Training mini-batch number 977000
Training mini-batch number 978000
Training mini-batch number 979000
Training mini-batch number 980000
Training mini-batch number 981000
Training mini-batch number 982000
Training mini-batch number 983000
Training mini-batch number 984000
Training mini-batch number 985000
Training mini-batch number 986000
Training mini-batch number 987000
Training mini-batch number 988000
Training mini-batch number 989000
Training mini-batch number 990000
Training mini-batch number 991000
Training mini-batch number 992000
Training mini-batch number 993000
Training mini-batch number 994000
Training mini-batch number 995000
Training mini-batch number 996000
Training mini-batch number 997000
Training mini-batch number 998000
Training mini-batch number 999000
Epoch 39: validation accuracy 99.38%
Training mini-batch number 1000000
Training mini-batch number 1001000
Training mini-batch number 1002000
Training mini-batch number 1003000
Training mini-batch number 1004000
Training mini-batch number 1005000
Training mini-batch number 1006000
Training mini-batch number 1007000
Training mini-batch number 1008000
Training mini-batch number 1009000
Training mini-batch number 1010000
Training mini-batch number 1011000
Training mini-batch number 1012000
Training mini-batch number 1013000
Training mini-batch number 1014000
Training mini-batch number 1015000
Training mini-batch number 1016000
Training mini-batch number 1017000
Training mini-batch number 1018000
Training mini-batch number 1019000
Training mini-batch number 1020000
Training mini-batch number 1021000
Training mini-batch number 1022000
Training mini-batch number 1023000
Training mini-batch number 1024000
Epoch 40: validation accuracy 99.37%
Training mini-batch number 1025000
Training mini-batch number 1026000
Training mini-batch number 1027000
Training mini-batch number 1028000
Training mini-batch number 1029000
Training mini-batch number 1030000
Training mini-batch number 1031000
Training mini-batch number 1032000
Training mini-batch number 1033000
Training mini-batch number 1034000
Training mini-batch number 1035000
Training mini-batch number 1036000
Training mini-batch number 1037000
Training mini-batch number 1038000
Training mini-batch number 1039000
Training mini-batch number 1040000
Training mini-batch number 1041000
Training mini-batch number 1042000
Training mini-batch number 1043000
Training mini-batch number 1044000
Training mini-batch number 1045000
Training mini-batch number 1046000
Training mini-batch number 1047000
Training mini-batch number 1048000
Training mini-batch number 1049000
Epoch 41: validation accuracy 99.37%
Training mini-batch number 1050000
Training mini-batch number 1051000
Training mini-batch number 1052000
Training mini-batch number 1053000
Training mini-batch number 1054000
Training mini-batch number 1055000
Training mini-batch number 1056000
Training mini-batch number 1057000
Training mini-batch number 1058000
Training mini-batch number 1059000
Training mini-batch number 1060000
Training mini-batch number 1061000
Training mini-batch number 1062000
Training mini-batch number 1063000
Training mini-batch number 1064000
Training mini-batch number 1065000
Training mini-batch number 1066000
Training mini-batch number 1067000
Training mini-batch number 1068000
Training mini-batch number 1069000
Training mini-batch number 1070000
Training mini-batch number 1071000
Training mini-batch number 1072000
Training mini-batch number 1073000
Training mini-batch number 1074000
Epoch 42: validation accuracy 99.37%
Training mini-batch number 1075000
Training mini-batch number 1076000
Training mini-batch number 1077000
Training mini-batch number 1078000
Training mini-batch number 1079000
Training mini-batch number 1080000
Training mini-batch number 1081000
Training mini-batch number 1082000
Training mini-batch number 1083000
Training mini-batch number 1084000
Training mini-batch number 1085000
Training mini-batch number 1086000
Training mini-batch number 1087000
Training mini-batch number 1088000
Training mini-batch number 1089000
Training mini-batch number 1090000
Training mini-batch number 1091000
Training mini-batch number 1092000
Training mini-batch number 1093000
Training mini-batch number 1094000
Training mini-batch number 1095000
Training mini-batch number 1096000
Training mini-batch number 1097000
Training mini-batch number 1098000
Training mini-batch number 1099000
Epoch 43: validation accuracy 99.36%
Training mini-batch number 1100000
Training mini-batch number 1101000
Training mini-batch number 1102000
Training mini-batch number 1103000
Training mini-batch number 1104000
Training mini-batch number 1105000
Training mini-batch number 1106000
Training mini-batch number 1107000
Training mini-batch number 1108000
Training mini-batch number 1109000
Training mini-batch number 1110000
Training mini-batch number 1111000
Training mini-batch number 1112000
Training mini-batch number 1113000
Training mini-batch number 1114000
Training mini-batch number 1115000
Training mini-batch number 1116000
Training mini-batch number 1117000
Training mini-batch number 1118000
Training mini-batch number 1119000
Training mini-batch number 1120000
Training mini-batch number 1121000
Training mini-batch number 1122000
Training mini-batch number 1123000
Training mini-batch number 1124000
Epoch 44: validation accuracy 99.36%
Training mini-batch number 1125000
Training mini-batch number 1126000
Training mini-batch number 1127000
Training mini-batch number 1128000
Training mini-batch number 1129000
Training mini-batch number 1130000
Training mini-batch number 1131000
Training mini-batch number 1132000
Training mini-batch number 1133000
Training mini-batch number 1134000
Training mini-batch number 1135000
Training mini-batch number 1136000
Training mini-batch number 1137000
Training mini-batch number 1138000
Training mini-batch number 1139000
Training mini-batch number 1140000
Training mini-batch number 1141000
Training mini-batch number 1142000
Training mini-batch number 1143000
Training mini-batch number 1144000
Training mini-batch number 1145000
Training mini-batch number 1146000
Training mini-batch number 1147000
Training mini-batch number 1148000
Training mini-batch number 1149000
Epoch 45: validation accuracy 99.37%
Training mini-batch number 1150000
Training mini-batch number 1151000
Training mini-batch number 1152000
Training mini-batch number 1153000
Training mini-batch number 1154000
Training mini-batch number 1155000
Training mini-batch number 1156000
Training mini-batch number 1157000
Training mini-batch number 1158000
Training mini-batch number 1159000
Training mini-batch number 1160000
Training mini-batch number 1161000
Training mini-batch number 1162000
Training mini-batch number 1163000
Training mini-batch number 1164000
Training mini-batch number 1165000
Training mini-batch number 1166000
Training mini-batch number 1167000
Training mini-batch number 1168000
Training mini-batch number 1169000
Training mini-batch number 1170000
Training mini-batch number 1171000
Training mini-batch number 1172000
Training mini-batch number 1173000
Training mini-batch number 1174000
Epoch 46: validation accuracy 99.36%
Training mini-batch number 1175000
Training mini-batch number 1176000
Training mini-batch number 1177000
Training mini-batch number 1178000
Training mini-batch number 1179000
Training mini-batch number 1180000
Training mini-batch number 1181000
Training mini-batch number 1182000
Training mini-batch number 1183000
Training mini-batch number 1184000
Training mini-batch number 1185000
Training mini-batch number 1186000
Training mini-batch number 1187000
Training mini-batch number 1188000
Training mini-batch number 1189000
Training mini-batch number 1190000
Training mini-batch number 1191000
Training mini-batch number 1192000
Training mini-batch number 1193000
Training mini-batch number 1194000
Training mini-batch number 1195000
Training mini-batch number 1196000
Training mini-batch number 1197000
Training mini-batch number 1198000
Training mini-batch number 1199000
Epoch 47: validation accuracy 99.37%
Training mini-batch number 1200000
Training mini-batch number 1201000
Training mini-batch number 1202000
Training mini-batch number 1203000
Training mini-batch number 1204000
Training mini-batch number 1205000
Training mini-batch number 1206000
Training mini-batch number 1207000
Training mini-batch number 1208000
Training mini-batch number 1209000
Training mini-batch number 1210000
Training mini-batch number 1211000
Training mini-batch number 1212000
Training mini-batch number 1213000
Training mini-batch number 1214000
Training mini-batch number 1215000
Training mini-batch number 1216000
Training mini-batch number 1217000
Training mini-batch number 1218000
Training mini-batch number 1219000
Training mini-batch number 1220000
Training mini-batch number 1221000
Training mini-batch number 1222000
Training mini-batch number 1223000
Training mini-batch number 1224000
Epoch 48: validation accuracy 99.37%
Training mini-batch number 1225000
Training mini-batch number 1226000
Training mini-batch number 1227000
Training mini-batch number 1228000
Training mini-batch number 1229000
Training mini-batch number 1230000
Training mini-batch number 1231000
Training mini-batch number 1232000
Training mini-batch number 1233000
Training mini-batch number 1234000
Training mini-batch number 1235000
Training mini-batch number 1236000
Training mini-batch number 1237000
Training mini-batch number 1238000
Training mini-batch number 1239000
Training mini-batch number 1240000
Training mini-batch number 1241000
Training mini-batch number 1242000
Training mini-batch number 1243000
Training mini-batch number 1244000
Training mini-batch number 1245000
Training mini-batch number 1246000
Training mini-batch number 1247000
Training mini-batch number 1248000
Training mini-batch number 1249000
Epoch 49: validation accuracy 99.37%
Training mini-batch number 1250000
Training mini-batch number 1251000
Training mini-batch number 1252000
Training mini-batch number 1253000
Training mini-batch number 1254000
Training mini-batch number 1255000
Training mini-batch number 1256000
Training mini-batch number 1257000
Training mini-batch number 1258000
Training mini-batch number 1259000
Training mini-batch number 1260000
Training mini-batch number 1261000
Training mini-batch number 1262000
Training mini-batch number 1263000
Training mini-batch number 1264000
Training mini-batch number 1265000
Training mini-batch number 1266000
Training mini-batch number 1267000
Training mini-batch number 1268000
Training mini-batch number 1269000
Training mini-batch number 1270000
Training mini-batch number 1271000
Training mini-batch number 1272000
Training mini-batch number 1273000
Training mini-batch number 1274000
Epoch 50: validation accuracy 99.36%
Training mini-batch number 1275000
Training mini-batch number 1276000
Training mini-batch number 1277000
Training mini-batch number 1278000
Training mini-batch number 1279000
Training mini-batch number 1280000
Training mini-batch number 1281000
Training mini-batch number 1282000
Training mini-batch number 1283000
Training mini-batch number 1284000
Training mini-batch number 1285000
Training mini-batch number 1286000
Training mini-batch number 1287000
Training mini-batch number 1288000
Training mini-batch number 1289000
Training mini-batch number 1290000
Training mini-batch number 1291000
Training mini-batch number 1292000
Training mini-batch number 1293000
Training mini-batch number 1294000
Training mini-batch number 1295000
Training mini-batch number 1296000
Training mini-batch number 1297000
Training mini-batch number 1298000
Training mini-batch number 1299000
Epoch 51: validation accuracy 99.36%
Training mini-batch number 1300000
Training mini-batch number 1301000
Training mini-batch number 1302000
Training mini-batch number 1303000
Training mini-batch number 1304000
Training mini-batch number 1305000
Training mini-batch number 1306000
Training mini-batch number 1307000
Training mini-batch number 1308000
Training mini-batch number 1309000
Training mini-batch number 1310000
Training mini-batch number 1311000
Training mini-batch number 1312000
Training mini-batch number 1313000
Training mini-batch number 1314000
Training mini-batch number 1315000
Training mini-batch number 1316000
Training mini-batch number 1317000
Training mini-batch number 1318000
Training mini-batch number 1319000
Training mini-batch number 1320000
Training mini-batch number 1321000
Training mini-batch number 1322000
Training mini-batch number 1323000
Training mini-batch number 1324000
Epoch 52: validation accuracy 99.37%
Training mini-batch number 1325000
Training mini-batch number 1326000
Training mini-batch number 1327000
Training mini-batch number 1328000
Training mini-batch number 1329000
Training mini-batch number 1330000
Training mini-batch number 1331000
Training mini-batch number 1332000
Training mini-batch number 1333000
Training mini-batch number 1334000
Training mini-batch number 1335000
Training mini-batch number 1336000
Training mini-batch number 1337000
Training mini-batch number 1338000
Training mini-batch number 1339000
Training mini-batch number 1340000
Training mini-batch number 1341000
Training mini-batch number 1342000
Training mini-batch number 1343000
Training mini-batch number 1344000
Training mini-batch number 1345000
Training mini-batch number 1346000
Training mini-batch number 1347000
Training mini-batch number 1348000
Training mini-batch number 1349000
Epoch 53: validation accuracy 99.37%
Training mini-batch number 1350000
Training mini-batch number 1351000
Training mini-batch number 1352000
Training mini-batch number 1353000
Training mini-batch number 1354000
Training mini-batch number 1355000
Training mini-batch number 1356000
Training mini-batch number 1357000
Training mini-batch number 1358000
Training mini-batch number 1359000
Training mini-batch number 1360000
Training mini-batch number 1361000
Training mini-batch number 1362000
Training mini-batch number 1363000
Training mini-batch number 1364000
Training mini-batch number 1365000
Training mini-batch number 1366000
Training mini-batch number 1367000
Training mini-batch number 1368000
Training mini-batch number 1369000
Training mini-batch number 1370000
Training mini-batch number 1371000
Training mini-batch number 1372000
Training mini-batch number 1373000
Training mini-batch number 1374000
Epoch 54: validation accuracy 99.38%
Training mini-batch number 1375000
Training mini-batch number 1376000
Training mini-batch number 1377000
Training mini-batch number 1378000
Training mini-batch number 1379000
Training mini-batch number 1380000
Training mini-batch number 1381000
Training mini-batch number 1382000
Training mini-batch number 1383000
Training mini-batch number 1384000
Training mini-batch number 1385000
Training mini-batch number 1386000
Training mini-batch number 1387000
Training mini-batch number 1388000
Training mini-batch number 1389000
Training mini-batch number 1390000
Training mini-batch number 1391000
Training mini-batch number 1392000
Training mini-batch number 1393000
Training mini-batch number 1394000
Training mini-batch number 1395000
Training mini-batch number 1396000
Training mini-batch number 1397000
Training mini-batch number 1398000
Training mini-batch number 1399000
Epoch 55: validation accuracy 99.38%
Training mini-batch number 1400000
Training mini-batch number 1401000
Training mini-batch number 1402000
Training mini-batch number 1403000
Training mini-batch number 1404000
Training mini-batch number 1405000
Training mini-batch number 1406000
Training mini-batch number 1407000
Training mini-batch number 1408000
Training mini-batch number 1409000
Training mini-batch number 1410000
Training mini-batch number 1411000
Training mini-batch number 1412000
Training mini-batch number 1413000
Training mini-batch number 1414000
Training mini-batch number 1415000
Training mini-batch number 1416000
Training mini-batch number 1417000
Training mini-batch number 1418000
Training mini-batch number 1419000
Training mini-batch number 1420000
Training mini-batch number 1421000
Training mini-batch number 1422000
Training mini-batch number 1423000
Training mini-batch number 1424000
Epoch 56: validation accuracy 99.38%
Training mini-batch number 1425000
Training mini-batch number 1426000
Training mini-batch number 1427000
Training mini-batch number 1428000
Training mini-batch number 1429000
Training mini-batch number 1430000
Training mini-batch number 1431000
Training mini-batch number 1432000
Training mini-batch number 1433000
Training mini-batch number 1434000
Training mini-batch number 1435000
Training mini-batch number 1436000
Training mini-batch number 1437000
Training mini-batch number 1438000
Training mini-batch number 1439000
Training mini-batch number 1440000
Training mini-batch number 1441000
Training mini-batch number 1442000
Training mini-batch number 1443000
Training mini-batch number 1444000
Training mini-batch number 1445000
Training mini-batch number 1446000
Training mini-batch number 1447000
Training mini-batch number 1448000
Training mini-batch number 1449000
Epoch 57: validation accuracy 99.38%
Training mini-batch number 1450000
Training mini-batch number 1451000
Training mini-batch number 1452000
Training mini-batch number 1453000
Training mini-batch number 1454000
Training mini-batch number 1455000
Training mini-batch number 1456000
Training mini-batch number 1457000
Training mini-batch number 1458000
Training mini-batch number 1459000
Training mini-batch number 1460000
Training mini-batch number 1461000
Training mini-batch number 1462000
Training mini-batch number 1463000
Training mini-batch number 1464000
Training mini-batch number 1465000
Training mini-batch number 1466000
Training mini-batch number 1467000
Training mini-batch number 1468000
Training mini-batch number 1469000
Training mini-batch number 1470000
Training mini-batch number 1471000
Training mini-batch number 1472000
Training mini-batch number 1473000
Training mini-batch number 1474000
Epoch 58: validation accuracy 99.38%
Training mini-batch number 1475000
Training mini-batch number 1476000
Training mini-batch number 1477000
Training mini-batch number 1478000
Training mini-batch number 1479000
Training mini-batch number 1480000
Training mini-batch number 1481000
Training mini-batch number 1482000
Training mini-batch number 1483000
Training mini-batch number 1484000
Training mini-batch number 1485000
Training mini-batch number 1486000
Training mini-batch number 1487000
Training mini-batch number 1488000
Training mini-batch number 1489000
Training mini-batch number 1490000
Training mini-batch number 1491000
Training mini-batch number 1492000
Training mini-batch number 1493000
Training mini-batch number 1494000
Training mini-batch number 1495000
Training mini-batch number 1496000
Training mini-batch number 1497000
Training mini-batch number 1498000
Training mini-batch number 1499000
Epoch 59: validation accuracy 99.38%
Finished training network.
Best validation accuracy of 99.40% obtained at iteration 499999
Corresponding test accuracy of 99.33%

In [14]:
net = Network([
        ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
                     filter_shape=(20, 1, 5, 5),
                     poolsize=(2, 2),
                     activation_fn=ReLU),
        ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
                     filter_shape=(40, 20, 5, 5),
                     poolsize=(2, 2),
                     activation_fn=ReLU),
        FullyConnectedLayer(
            n_in=40*4*4, n_out=1000, activation_fn=ReLU, p_dropout=0.5),
        FullyConnectedLayer(
            n_in=1000, n_out=1000, activation_fn=ReLU, p_dropout=0.5),
        SoftmaxLayer(n_in=1000, n_out=10, p_dropout=0.5)],
        mini_batch_size)

In [15]:
net.SGD(expanded_training_data, 40, mini_batch_size, 0.03, validation_data, test_data)


ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Rebroadcast{?,0}.0) of Op Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Subtensor{::, ::, ::int64, ::int64}.0) of Op Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Rebroadcast{?,0}.0) of Op Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Subtensor{::, ::, ::int64, ::int64}.0) of Op Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Rebroadcast{?,0}.0) of Op Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Subtensor{::, ::, ::int64, ::int64}.0) of Op Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, TensorConstant{(1, 1, 1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_sink
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1621, in local_fill_sink
    c = node.op(*inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{add,no_inplace}(dot.0, TensorConstant{(1, 1) of 0.0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(Elemwise{add,no_inplace}.0, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Elemwise{add,no_inplace}.0) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_canonizer
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{10})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{mul,no_inplace}(TensorConstant{10}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_canonizer
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(<TensorType(int64, scalar)>, TensorConstant{1})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4505, in transform
    new = self.merge_num_denum(num, denum)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 4326, in merge_num_denum
    return self.main(*num)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<TensorType(int64, scalar)>) of Op Elemwise{add,no_inplace}(TensorConstant{1}, <TensorType(int64, scalar)>) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul,no_inplace}.0, w)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op Dot22(Elemwise{mul,no_inplace}.0, w) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul,no_inplace}.0, w)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op Dot22(Elemwise{mul,no_inplace}.0, w) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul,no_inplace}.0, w)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op Dot22(Elemwise{mul,no_inplace}.0, w) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(DimShuffle{1,0}.0, SoftmaxGrad.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (DimShuffle{1,0}.0) of Op Dot22(DimShuffle{1,0}.0, SoftmaxGrad.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(SoftmaxGrad.0, w.T)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (SoftmaxGrad.0) of Op Dot22(SoftmaxGrad.0, w.T) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(DimShuffle{1,0}.0, Elemwise{mul}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (DimShuffle{1,0}.0) of Op Dot22(DimShuffle{1,0}.0, Elemwise{mul}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul}.0, w.T)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul}.0) of Op Dot22(Elemwise{mul}.0, w.T) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(DimShuffle{1,0}.0, Elemwise{mul}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (DimShuffle{1,0}.0) of Op Dot22(DimShuffle{1,0}.0, Elemwise{mul}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_dot_to_dot22
ERROR (theano.gof.opt): node: dot(Elemwise{mul}.0, w.T)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/blas.py", line 1633, in local_dot_to_dot22
    return [_dot22(*node.inputs)]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul}.0) of Op Dot22(Elemwise{mul}.0, w.T) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Rebroadcast{?,0}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Rebroadcast{?,0}.0) of Op Elemwise{second,no_inplace}(Rebroadcast{?,0}.0, Rebroadcast{?,0}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Subtensor{::, ::, ::int64, ::int64}.0) of Op Elemwise{second,no_inplace}(Subtensor{::, ::, ::int64, ::int64}.0, Subtensor{::, ::, ::int64, ::int64}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{second,no_inplace}(dot.0, dot.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{second,no_inplace}(dot.0, dot.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_add_specialize
ERROR (theano.gof.opt): node: Elemwise{add,no_inplace}(dot.0, Elemwise{second,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5485, in local_add_specialize
    ret = fill_chain(new_inputs[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5458, in fill_chain
    out = _fill_chain(v, node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 142, in _fill_chain
    new_out = T.fill(i, new_out)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (dot.0) of Op Elemwise{second,no_inplace}(dot.0, dot.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_advanced_indexing_crossentropy_onehot_grad
ERROR (theano.gof.opt): node: SoftmaxGrad(Elemwise{true_div}.0, Softmax.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 1907, in local_advanced_indexing_crossentropy_onehot_grad
    out_grad = -incr
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 39, in __neg__
    return theano.tensor.basic.neg(self)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{second}.0) of Op Elemwise{neg,no_inplace}(Elemwise{second}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_mul_specialize
ERROR (theano.gof.opt): node: Elemwise{mul,no_inplace}(TensorConstant{-1.0}, mean)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 5427, in local_mul_specialize
    rval = -new_inputs[0]
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 39, in __neg__
    return theano.tensor.basic.neg(self)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (mean) of Op Elemwise{neg,no_inplace}(mean) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second}(AdvancedSubtensor.0, Elemwise{true_div}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{true_div}.0) of Op Alloc(Elemwise{true_div}.0, Elemwise{sub,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(Elemwise{log,no_inplace}.0, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 2 (Shape_i{1}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, TensorConstant{10}, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_advanced_indexing_crossentropy_onehot
ERROR (theano.gof.opt): node: AdvancedSubtensor(Elemwise{log,no_inplace}.0, ARange{dtype='int64'}.0, Elemwise{Cast{int32}}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 1692, in local_advanced_indexing_crossentropy_onehot
    b_var = tensor.zeros_like(x_var[0])
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/var.py", line 532, in __getitem__
    lambda entry: isinstance(entry, Variable)))
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{add,no_inplace}.0) of Op Subtensor{int64}(Elemwise{add,no_inplace}.0, Constant{0}) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_logsoftmax
ERROR (theano.gof.opt): node: Elemwise{log,no_inplace}(Softmax.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/nnet/nnet.py", line 756, in local_logsoftmax
    ret = new_op(inVars)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{add,no_inplace}.0) of Op LogSoftmax(Elemwise{add,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(w, TensorConstant{(1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: local_fill_to_alloc
ERROR (theano.gof.opt): node: Elemwise{second,no_inplace}(<TensorType(float64, 4D)>, TensorConstant{(1, 1, 1, 1) of 0.0})
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 1669, in local_fill_to_alloc
    o = broadcast_like(v, r, node.fgraph, dtype=v.dtype)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 208, in broadcast_like
    rval = T.alloc(T.cast(value, dtype), *new_shape)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/basic.py", line 2810, in __call__
    ret = super(Alloc, self).__call__(val, *shapes, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (Shape_i{0}.0) of Op Alloc(TensorConstant{(1, 1, 1, 1) of 0.0}, Shape_i{0}.0, Shape_i{1}.0, Shape_i{2}.0, Shape_i{3}.0) missing default value

ERROR (theano.gof.opt): SeqOptimizer apply <theano.tensor.opt.FusionOptimizer object at 0x7f862ca00ad0>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6658, in apply
    new_outputs = self.optimizer(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 6502, in local_fuse
    return_list=True)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 1 (<float64>) of Op mul(<float64>, <float64>) missing default value

ERROR (theano.gof.opt): SeqOptimizer apply <theano.compile.mode.AddDestroyHandler object at 0x7f8649eada50>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/compile/mode.py", line 134, in apply
    fgraph.replace_validate(o, _output_guard(o),
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op OutputGuard(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(Reshape{4}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Reshape{4}.0) of Op InplaceDimShuffle{1,0,2,3}(Reshape{4}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(Reshape{4}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Reshape{4}.0) of Op InplaceDimShuffle{1,0,2,3}(Reshape{4}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{x}(Elemwise{Cast{float64}}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{Cast{float64}}.0) of Op InplaceDimShuffle{x}(Elemwise{Cast{float64}}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0}(Elemwise{mul,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op InplaceDimShuffle{1,0}(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0}(Elemwise{mul,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op InplaceDimShuffle{1,0}(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0}(Elemwise{mul,no_inplace}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (Elemwise{mul,no_inplace}.0) of Op InplaceDimShuffle{1,0}(Elemwise{mul,no_inplace}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0) of Op InplaceDimShuffle{1,0,2,3}(MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(ConvOp{('imshp', (10, 12, 12)),('kshp', (8, 8)),('nkern', 40),('bsize', 20),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 5),('unroll_kern', 2),('unroll_patch', False),('imshp_logical', (10, 12, 12)),('kshp_logical', (8, 8)),('kshp_logical_top_aligned', False)}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (ConvOp{('imshp', (10, 12, 12)),('kshp', (8, 8)),('nkern', 40),('bsize', 20),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 5),('unroll_kern', 2),('unroll_patch', False),('imshp_logical', (10, 12, 12)),('kshp_logical', (8, 8)),('kshp_logical_top_aligned', False)}.0) of Op InplaceDimShuffle{1,0,2,3}(ConvOp{('imshp', (10, 12, 12)),('kshp', (8, 8)),('nkern', 40),('bsize', 20),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 5),('unroll_kern', 2),('unroll_patch', False),('imshp_logical', (10, 12, 12)),('kshp_logical', (8, 8)),('kshp_logical_top_aligned', False)}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0) of Op InplaceDimShuffle{1,0,2,3}(MaxPoolGrad{ds=(2, 2), ignore_border=True, st=(2, 2), padding=(0, 0), mode='max'}.0) missing default value

ERROR (theano.gof.opt): Optimization failure due to: dimshuffle_as_view
ERROR (theano.gof.opt): node: DimShuffle{1,0,2,3}(ConvOp{('imshp', (10, 28, 28)),('kshp', (24, 24)),('nkern', 20),('bsize', 1),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 1),('unroll_kern', 10),('unroll_patch', False),('imshp_logical', (10, 28, 28)),('kshp_logical', (24, 24)),('kshp_logical_top_aligned', False)}.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/opt.py", line 1772, in process_node
    replacements = lopt.transform(node)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/tensor/opt.py", line 644, in dimshuffle_as_view
    v = new_op(*node.inputs)
  File "/home/ubuntu/miniconda2/lib/python2.7/site-packages/theano/gof/op.py", line 633, in __call__
    (i, ins, node))
ValueError: Cannot compute test value: input 0 (ConvOp{('imshp', (10, 28, 28)),('kshp', (24, 24)),('nkern', 20),('bsize', 1),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 1),('unroll_kern', 10),('unroll_patch', False),('imshp_logical', (10, 28, 28)),('kshp_logical', (24, 24)),('kshp_logical_top_aligned', False)}.0) of Op InplaceDimShuffle{1,0,2,3}(ConvOp{('imshp', (10, 28, 28)),('kshp', (24, 24)),('nkern', 20),('bsize', 1),('dx', 1),('dy', 1),('out_mode', 'valid'),('unroll_batch', 1),('unroll_kern', 10),('unroll_patch', False),('imshp_logical', (10, 28, 28)),('kshp_logical', (24, 24)),('kshp_logical_top_aligned', False)}.0) missing default value

Training mini-batch number 0
Training mini-batch number 1000
Training mini-batch number 2000
Training mini-batch number 3000
Training mini-batch number 4000
Training mini-batch number 5000
Training mini-batch number 6000
Training mini-batch number 7000
Training mini-batch number 8000
Training mini-batch number 9000
Training mini-batch number 10000
Training mini-batch number 11000
Training mini-batch number 12000
Training mini-batch number 13000
Training mini-batch number 14000
Training mini-batch number 15000
Training mini-batch number 16000
Training mini-batch number 17000
Training mini-batch number 18000
Training mini-batch number 19000
Training mini-batch number 20000
Training mini-batch number 21000
Training mini-batch number 22000
Training mini-batch number 23000
Training mini-batch number 24000
Epoch 0: validation accuracy 98.63%
This is the best validation accuracy to date.
The corresponding test accuracy is 98.81%
Training mini-batch number 25000
Training mini-batch number 26000
Training mini-batch number 27000
Training mini-batch number 28000
Training mini-batch number 29000
Training mini-batch number 30000
Training mini-batch number 31000
Training mini-batch number 32000
Training mini-batch number 33000
Training mini-batch number 34000
Training mini-batch number 35000
Training mini-batch number 36000
Training mini-batch number 37000
Training mini-batch number 38000
Training mini-batch number 39000
Training mini-batch number 40000
Training mini-batch number 41000
Training mini-batch number 42000
Training mini-batch number 43000
Training mini-batch number 44000
Training mini-batch number 45000
Training mini-batch number 46000
Training mini-batch number 47000
Training mini-batch number 48000
Training mini-batch number 49000
Epoch 1: validation accuracy 99.01%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.07%
Training mini-batch number 50000
Training mini-batch number 51000
Training mini-batch number 52000
Training mini-batch number 53000
Training mini-batch number 54000
Training mini-batch number 55000
Training mini-batch number 56000
Training mini-batch number 57000
Training mini-batch number 58000
Training mini-batch number 59000
Training mini-batch number 60000
Training mini-batch number 61000
Training mini-batch number 62000
Training mini-batch number 63000
Training mini-batch number 64000
Training mini-batch number 65000
Training mini-batch number 66000
Training mini-batch number 67000
Training mini-batch number 68000
Training mini-batch number 69000
Training mini-batch number 70000
Training mini-batch number 71000
Training mini-batch number 72000
Training mini-batch number 73000
Training mini-batch number 74000
Epoch 2: validation accuracy 99.17%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.22%
Training mini-batch number 75000
Training mini-batch number 76000
Training mini-batch number 77000
Training mini-batch number 78000
Training mini-batch number 79000
Training mini-batch number 80000
Training mini-batch number 81000
Training mini-batch number 82000
Training mini-batch number 83000
Training mini-batch number 84000
Training mini-batch number 85000
Training mini-batch number 86000
Training mini-batch number 87000
Training mini-batch number 88000
Training mini-batch number 89000
Training mini-batch number 90000
Training mini-batch number 91000
Training mini-batch number 92000
Training mini-batch number 93000
Training mini-batch number 94000
Training mini-batch number 95000
Training mini-batch number 96000
Training mini-batch number 97000
Training mini-batch number 98000
Training mini-batch number 99000
Epoch 3: validation accuracy 99.25%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.33%
Training mini-batch number 100000
Training mini-batch number 101000
Training mini-batch number 102000
Training mini-batch number 103000
Training mini-batch number 104000
Training mini-batch number 105000
Training mini-batch number 106000
Training mini-batch number 107000
Training mini-batch number 108000
Training mini-batch number 109000
Training mini-batch number 110000
Training mini-batch number 111000
Training mini-batch number 112000
Training mini-batch number 113000
Training mini-batch number 114000
Training mini-batch number 115000
Training mini-batch number 116000
Training mini-batch number 117000
Training mini-batch number 118000
Training mini-batch number 119000
Training mini-batch number 120000
Training mini-batch number 121000
Training mini-batch number 122000
Training mini-batch number 123000
Training mini-batch number 124000
Epoch 4: validation accuracy 99.29%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.44%
Training mini-batch number 125000
Training mini-batch number 126000
Training mini-batch number 127000
Training mini-batch number 128000
Training mini-batch number 129000
Training mini-batch number 130000
Training mini-batch number 131000
Training mini-batch number 132000
Training mini-batch number 133000
Training mini-batch number 134000
Training mini-batch number 135000
Training mini-batch number 136000
Training mini-batch number 137000
Training mini-batch number 138000
Training mini-batch number 139000
Training mini-batch number 140000
Training mini-batch number 141000
Training mini-batch number 142000
Training mini-batch number 143000
Training mini-batch number 144000
Training mini-batch number 145000
Training mini-batch number 146000
Training mini-batch number 147000
Training mini-batch number 148000
Training mini-batch number 149000
Epoch 5: validation accuracy 99.34%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.47%
Training mini-batch number 150000
Training mini-batch number 151000
Training mini-batch number 152000
Training mini-batch number 153000
Training mini-batch number 154000
Training mini-batch number 155000
Training mini-batch number 156000
Training mini-batch number 157000
Training mini-batch number 158000
Training mini-batch number 159000
Training mini-batch number 160000
Training mini-batch number 161000
Training mini-batch number 162000
Training mini-batch number 163000
Training mini-batch number 164000
Training mini-batch number 165000
Training mini-batch number 166000
Training mini-batch number 167000
Training mini-batch number 168000
Training mini-batch number 169000
Training mini-batch number 170000
Training mini-batch number 171000
Training mini-batch number 172000
Training mini-batch number 173000
Training mini-batch number 174000
Epoch 6: validation accuracy 99.39%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.54%
Training mini-batch number 175000
Training mini-batch number 176000
Training mini-batch number 177000
Training mini-batch number 178000
Training mini-batch number 179000
Training mini-batch number 180000
Training mini-batch number 181000
Training mini-batch number 182000
Training mini-batch number 183000
Training mini-batch number 184000
Training mini-batch number 185000
Training mini-batch number 186000
Training mini-batch number 187000
Training mini-batch number 188000
Training mini-batch number 189000
Training mini-batch number 190000
Training mini-batch number 191000
Training mini-batch number 192000
Training mini-batch number 193000
Training mini-batch number 194000
Training mini-batch number 195000
Training mini-batch number 196000
Training mini-batch number 197000
Training mini-batch number 198000
Training mini-batch number 199000
Epoch 7: validation accuracy 99.37%
Training mini-batch number 200000
Training mini-batch number 201000
Training mini-batch number 202000
Training mini-batch number 203000
Training mini-batch number 204000
Training mini-batch number 205000
Training mini-batch number 206000
Training mini-batch number 207000
Training mini-batch number 208000
Training mini-batch number 209000
Training mini-batch number 210000
Training mini-batch number 211000
Training mini-batch number 212000
Training mini-batch number 213000
Training mini-batch number 214000
Training mini-batch number 215000
Training mini-batch number 216000
Training mini-batch number 217000
Training mini-batch number 218000
Training mini-batch number 219000
Training mini-batch number 220000
Training mini-batch number 221000
Training mini-batch number 222000
Training mini-batch number 223000
Training mini-batch number 224000
Epoch 8: validation accuracy 99.40%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.47%
Training mini-batch number 225000
Training mini-batch number 226000
Training mini-batch number 227000
Training mini-batch number 228000
Training mini-batch number 229000
Training mini-batch number 230000
Training mini-batch number 231000
Training mini-batch number 232000
Training mini-batch number 233000
Training mini-batch number 234000
Training mini-batch number 235000
Training mini-batch number 236000
Training mini-batch number 237000
Training mini-batch number 238000
Training mini-batch number 239000
Training mini-batch number 240000
Training mini-batch number 241000
Training mini-batch number 242000
Training mini-batch number 243000
Training mini-batch number 244000
Training mini-batch number 245000
Training mini-batch number 246000
Training mini-batch number 247000
Training mini-batch number 248000
Training mini-batch number 249000
Epoch 9: validation accuracy 99.46%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.51%
Training mini-batch number 250000
Training mini-batch number 251000
Training mini-batch number 252000
Training mini-batch number 253000
Training mini-batch number 254000
Training mini-batch number 255000
Training mini-batch number 256000
Training mini-batch number 257000
Training mini-batch number 258000
Training mini-batch number 259000
Training mini-batch number 260000
Training mini-batch number 261000
Training mini-batch number 262000
Training mini-batch number 263000
Training mini-batch number 264000
Training mini-batch number 265000
Training mini-batch number 266000
Training mini-batch number 267000
Training mini-batch number 268000
Training mini-batch number 269000
Training mini-batch number 270000
Training mini-batch number 271000
Training mini-batch number 272000
Training mini-batch number 273000
Training mini-batch number 274000
Epoch 10: validation accuracy 99.49%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.57%
Training mini-batch number 275000
Training mini-batch number 276000
Training mini-batch number 277000
Training mini-batch number 278000
Training mini-batch number 279000
Training mini-batch number 280000
Training mini-batch number 281000
Training mini-batch number 282000
Training mini-batch number 283000
Training mini-batch number 284000
Training mini-batch number 285000
Training mini-batch number 286000
Training mini-batch number 287000
Training mini-batch number 288000
Training mini-batch number 289000
Training mini-batch number 290000
Training mini-batch number 291000
Training mini-batch number 292000
Training mini-batch number 293000
Training mini-batch number 294000
Training mini-batch number 295000
Training mini-batch number 296000
Training mini-batch number 297000
Training mini-batch number 298000
Training mini-batch number 299000
Epoch 11: validation accuracy 99.40%
Training mini-batch number 300000
Training mini-batch number 301000
Training mini-batch number 302000
Training mini-batch number 303000
Training mini-batch number 304000
Training mini-batch number 305000
Training mini-batch number 306000
Training mini-batch number 307000
Training mini-batch number 308000
Training mini-batch number 309000
Training mini-batch number 310000
Training mini-batch number 311000
Training mini-batch number 312000
Training mini-batch number 313000
Training mini-batch number 314000
Training mini-batch number 315000
Training mini-batch number 316000
Training mini-batch number 317000
Training mini-batch number 318000
Training mini-batch number 319000
Training mini-batch number 320000
Training mini-batch number 321000
Training mini-batch number 322000
Training mini-batch number 323000
Training mini-batch number 324000
Epoch 12: validation accuracy 99.41%
Training mini-batch number 325000
Training mini-batch number 326000
Training mini-batch number 327000
Training mini-batch number 328000
Training mini-batch number 329000
Training mini-batch number 330000
Training mini-batch number 331000
Training mini-batch number 332000
Training mini-batch number 333000
Training mini-batch number 334000
Training mini-batch number 335000
Training mini-batch number 336000
Training mini-batch number 337000
Training mini-batch number 338000
Training mini-batch number 339000
Training mini-batch number 340000
Training mini-batch number 341000
Training mini-batch number 342000
Training mini-batch number 343000
Training mini-batch number 344000
Training mini-batch number 345000
Training mini-batch number 346000
Training mini-batch number 347000
Training mini-batch number 348000
Training mini-batch number 349000
Epoch 13: validation accuracy 99.35%
Training mini-batch number 350000
Training mini-batch number 351000
Training mini-batch number 352000
Training mini-batch number 353000
Training mini-batch number 354000
Training mini-batch number 355000
Training mini-batch number 356000
Training mini-batch number 357000
Training mini-batch number 358000
Training mini-batch number 359000
Training mini-batch number 360000
Training mini-batch number 361000
Training mini-batch number 362000
Training mini-batch number 363000
Training mini-batch number 364000
Training mini-batch number 365000
Training mini-batch number 366000
Training mini-batch number 367000
Training mini-batch number 368000
Training mini-batch number 369000
Training mini-batch number 370000
Training mini-batch number 371000
Training mini-batch number 372000
Training mini-batch number 373000
Training mini-batch number 374000
Epoch 14: validation accuracy 99.47%
Training mini-batch number 375000
Training mini-batch number 376000
Training mini-batch number 377000
Training mini-batch number 378000
Training mini-batch number 379000
Training mini-batch number 380000
Training mini-batch number 381000
Training mini-batch number 382000
Training mini-batch number 383000
Training mini-batch number 384000
Training mini-batch number 385000
Training mini-batch number 386000
Training mini-batch number 387000
Training mini-batch number 388000
Training mini-batch number 389000
Training mini-batch number 390000
Training mini-batch number 391000
Training mini-batch number 392000
Training mini-batch number 393000
Training mini-batch number 394000
Training mini-batch number 395000
Training mini-batch number 396000
Training mini-batch number 397000
Training mini-batch number 398000
Training mini-batch number 399000
Epoch 15: validation accuracy 99.45%
Training mini-batch number 400000
Training mini-batch number 401000
Training mini-batch number 402000
Training mini-batch number 403000
Training mini-batch number 404000
Training mini-batch number 405000
Training mini-batch number 406000
Training mini-batch number 407000
Training mini-batch number 408000
Training mini-batch number 409000
Training mini-batch number 410000
Training mini-batch number 411000
Training mini-batch number 412000
Training mini-batch number 413000
Training mini-batch number 414000
Training mini-batch number 415000
Training mini-batch number 416000
Training mini-batch number 417000
Training mini-batch number 418000
Training mini-batch number 419000
Training mini-batch number 420000
Training mini-batch number 421000
Training mini-batch number 422000
Training mini-batch number 423000
Training mini-batch number 424000
Epoch 16: validation accuracy 99.54%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.61%
Training mini-batch number 425000
Training mini-batch number 426000
Training mini-batch number 427000
Training mini-batch number 428000
Training mini-batch number 429000
Training mini-batch number 430000
Training mini-batch number 431000
Training mini-batch number 432000
Training mini-batch number 433000
Training mini-batch number 434000
Training mini-batch number 435000
Training mini-batch number 436000
Training mini-batch number 437000
Training mini-batch number 438000
Training mini-batch number 439000
Training mini-batch number 440000
Training mini-batch number 441000
Training mini-batch number 442000
Training mini-batch number 443000
Training mini-batch number 444000
Training mini-batch number 445000
Training mini-batch number 446000
Training mini-batch number 447000
Training mini-batch number 448000
Training mini-batch number 449000
Epoch 17: validation accuracy 99.47%
Training mini-batch number 450000
Training mini-batch number 451000
Training mini-batch number 452000
Training mini-batch number 453000
Training mini-batch number 454000
Training mini-batch number 455000
Training mini-batch number 456000
Training mini-batch number 457000
Training mini-batch number 458000
Training mini-batch number 459000
Training mini-batch number 460000
Training mini-batch number 461000
Training mini-batch number 462000
Training mini-batch number 463000
Training mini-batch number 464000
Training mini-batch number 465000
Training mini-batch number 466000
Training mini-batch number 467000
Training mini-batch number 468000
Training mini-batch number 469000
Training mini-batch number 470000
Training mini-batch number 471000
Training mini-batch number 472000
Training mini-batch number 473000
Training mini-batch number 474000
Epoch 18: validation accuracy 99.45%
Training mini-batch number 475000
Training mini-batch number 476000
Training mini-batch number 477000
Training mini-batch number 478000
Training mini-batch number 479000
Training mini-batch number 480000
Training mini-batch number 481000
Training mini-batch number 482000
Training mini-batch number 483000
Training mini-batch number 484000
Training mini-batch number 485000
Training mini-batch number 486000
Training mini-batch number 487000
Training mini-batch number 488000
Training mini-batch number 489000
Training mini-batch number 490000
Training mini-batch number 491000
Training mini-batch number 492000
Training mini-batch number 493000
Training mini-batch number 494000
Training mini-batch number 495000
Training mini-batch number 496000
Training mini-batch number 497000
Training mini-batch number 498000
Training mini-batch number 499000
Epoch 19: validation accuracy 99.47%
Training mini-batch number 500000
Training mini-batch number 501000
Training mini-batch number 502000
Training mini-batch number 503000
Training mini-batch number 504000
Training mini-batch number 505000
Training mini-batch number 506000
Training mini-batch number 507000
Training mini-batch number 508000
Training mini-batch number 509000
Training mini-batch number 510000
Training mini-batch number 511000
Training mini-batch number 512000
Training mini-batch number 513000
Training mini-batch number 514000
Training mini-batch number 515000
Training mini-batch number 516000
Training mini-batch number 517000
Training mini-batch number 518000
Training mini-batch number 519000
Training mini-batch number 520000
Training mini-batch number 521000
Training mini-batch number 522000
Training mini-batch number 523000
Training mini-batch number 524000
Epoch 20: validation accuracy 99.54%
Training mini-batch number 525000
Training mini-batch number 526000
Training mini-batch number 527000
Training mini-batch number 528000
Training mini-batch number 529000
Training mini-batch number 530000
Training mini-batch number 531000
Training mini-batch number 532000
Training mini-batch number 533000
Training mini-batch number 534000
Training mini-batch number 535000
Training mini-batch number 536000
Training mini-batch number 537000
Training mini-batch number 538000
Training mini-batch number 539000
Training mini-batch number 540000
Training mini-batch number 541000
Training mini-batch number 542000
Training mini-batch number 543000
Training mini-batch number 544000
Training mini-batch number 545000
Training mini-batch number 546000
Training mini-batch number 547000
Training mini-batch number 548000
Training mini-batch number 549000
Epoch 21: validation accuracy 99.50%
Training mini-batch number 550000
Training mini-batch number 551000
Training mini-batch number 552000
Training mini-batch number 553000
Training mini-batch number 554000
Training mini-batch number 555000
Training mini-batch number 556000
Training mini-batch number 557000
Training mini-batch number 558000
Training mini-batch number 559000
Training mini-batch number 560000
Training mini-batch number 561000
Training mini-batch number 562000
Training mini-batch number 563000
Training mini-batch number 564000
Training mini-batch number 565000
Training mini-batch number 566000
Training mini-batch number 567000
Training mini-batch number 568000
Training mini-batch number 569000
Training mini-batch number 570000
Training mini-batch number 571000
Training mini-batch number 572000
Training mini-batch number 573000
Training mini-batch number 574000
Epoch 22: validation accuracy 99.47%
Training mini-batch number 575000
Training mini-batch number 576000
Training mini-batch number 577000
Training mini-batch number 578000
Training mini-batch number 579000
Training mini-batch number 580000
Training mini-batch number 581000
Training mini-batch number 582000
Training mini-batch number 583000
Training mini-batch number 584000
Training mini-batch number 585000
Training mini-batch number 586000
Training mini-batch number 587000
Training mini-batch number 588000
Training mini-batch number 589000
Training mini-batch number 590000
Training mini-batch number 591000
Training mini-batch number 592000
Training mini-batch number 593000
Training mini-batch number 594000
Training mini-batch number 595000
Training mini-batch number 596000
Training mini-batch number 597000
Training mini-batch number 598000
Training mini-batch number 599000
Epoch 23: validation accuracy 99.52%
Training mini-batch number 600000
Training mini-batch number 601000
Training mini-batch number 602000
Training mini-batch number 603000
Training mini-batch number 604000
Training mini-batch number 605000
Training mini-batch number 606000
Training mini-batch number 607000
Training mini-batch number 608000
Training mini-batch number 609000
Training mini-batch number 610000
Training mini-batch number 611000
Training mini-batch number 612000
Training mini-batch number 613000
Training mini-batch number 614000
Training mini-batch number 615000
Training mini-batch number 616000
Training mini-batch number 617000
Training mini-batch number 618000
Training mini-batch number 619000
Training mini-batch number 620000
Training mini-batch number 621000
Training mini-batch number 622000
Training mini-batch number 623000
Training mini-batch number 624000
Epoch 24: validation accuracy 99.46%
Training mini-batch number 625000
Training mini-batch number 626000
Training mini-batch number 627000
Training mini-batch number 628000
Training mini-batch number 629000
Training mini-batch number 630000
Training mini-batch number 631000
Training mini-batch number 632000
Training mini-batch number 633000
Training mini-batch number 634000
Training mini-batch number 635000
Training mini-batch number 636000
Training mini-batch number 637000
Training mini-batch number 638000
Training mini-batch number 639000
Training mini-batch number 640000
Training mini-batch number 641000
Training mini-batch number 642000
Training mini-batch number 643000
Training mini-batch number 644000
Training mini-batch number 645000
Training mini-batch number 646000
Training mini-batch number 647000
Training mini-batch number 648000
Training mini-batch number 649000
Epoch 25: validation accuracy 99.57%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.56%
Training mini-batch number 650000
Training mini-batch number 651000
Training mini-batch number 652000
Training mini-batch number 653000
Training mini-batch number 654000
Training mini-batch number 655000
Training mini-batch number 656000
Training mini-batch number 657000
Training mini-batch number 658000
Training mini-batch number 659000
Training mini-batch number 660000
Training mini-batch number 661000
Training mini-batch number 662000
Training mini-batch number 663000
Training mini-batch number 664000
Training mini-batch number 665000
Training mini-batch number 666000
Training mini-batch number 667000
Training mini-batch number 668000
Training mini-batch number 669000
Training mini-batch number 670000
Training mini-batch number 671000
Training mini-batch number 672000
Training mini-batch number 673000
Training mini-batch number 674000
Epoch 26: validation accuracy 99.56%
Training mini-batch number 675000
Training mini-batch number 676000
Training mini-batch number 677000
Training mini-batch number 678000
Training mini-batch number 679000
Training mini-batch number 680000
Training mini-batch number 681000
Training mini-batch number 682000
Training mini-batch number 683000
Training mini-batch number 684000
Training mini-batch number 685000
Training mini-batch number 686000
Training mini-batch number 687000
Training mini-batch number 688000
Training mini-batch number 689000
Training mini-batch number 690000
Training mini-batch number 691000
Training mini-batch number 692000
Training mini-batch number 693000
Training mini-batch number 694000
Training mini-batch number 695000
Training mini-batch number 696000
Training mini-batch number 697000
Training mini-batch number 698000
Training mini-batch number 699000
Epoch 27: validation accuracy 99.53%
Training mini-batch number 700000
Training mini-batch number 701000
Training mini-batch number 702000
Training mini-batch number 703000
Training mini-batch number 704000
Training mini-batch number 705000
Training mini-batch number 706000
Training mini-batch number 707000
Training mini-batch number 708000
Training mini-batch number 709000
Training mini-batch number 710000
Training mini-batch number 711000
Training mini-batch number 712000
Training mini-batch number 713000
Training mini-batch number 714000
Training mini-batch number 715000
Training mini-batch number 716000
Training mini-batch number 717000
Training mini-batch number 718000
Training mini-batch number 719000
Training mini-batch number 720000
Training mini-batch number 721000
Training mini-batch number 722000
Training mini-batch number 723000
Training mini-batch number 724000
Epoch 28: validation accuracy 99.56%
Training mini-batch number 725000
Training mini-batch number 726000
Training mini-batch number 727000
Training mini-batch number 728000
Training mini-batch number 729000
Training mini-batch number 730000
Training mini-batch number 731000
Training mini-batch number 732000
Training mini-batch number 733000
Training mini-batch number 734000
Training mini-batch number 735000
Training mini-batch number 736000
Training mini-batch number 737000
Training mini-batch number 738000
Training mini-batch number 739000
Training mini-batch number 740000
Training mini-batch number 741000
Training mini-batch number 742000
Training mini-batch number 743000
Training mini-batch number 744000
Training mini-batch number 745000
Training mini-batch number 746000
Training mini-batch number 747000
Training mini-batch number 748000
Training mini-batch number 749000
Epoch 29: validation accuracy 99.60%
This is the best validation accuracy to date.
The corresponding test accuracy is 99.61%
Training mini-batch number 750000
Training mini-batch number 751000
Training mini-batch number 752000
Training mini-batch number 753000
Training mini-batch number 754000
Training mini-batch number 755000
Training mini-batch number 756000
Training mini-batch number 757000
Training mini-batch number 758000
Training mini-batch number 759000
Training mini-batch number 760000
Training mini-batch number 761000
Training mini-batch number 762000
Training mini-batch number 763000
Training mini-batch number 764000
Training mini-batch number 765000
Training mini-batch number 766000
Training mini-batch number 767000
Training mini-batch number 768000
Training mini-batch number 769000
Training mini-batch number 770000
Training mini-batch number 771000
Training mini-batch number 772000
Training mini-batch number 773000
Training mini-batch number 774000
Epoch 30: validation accuracy 99.48%
Training mini-batch number 775000
Training mini-batch number 776000
Training mini-batch number 777000
Training mini-batch number 778000
Training mini-batch number 779000
Training mini-batch number 780000
Training mini-batch number 781000
Training mini-batch number 782000
Training mini-batch number 783000
Training mini-batch number 784000
Training mini-batch number 785000
Training mini-batch number 786000
Training mini-batch number 787000
Training mini-batch number 788000
Training mini-batch number 789000
Training mini-batch number 790000
Training mini-batch number 791000
Training mini-batch number 792000
Training mini-batch number 793000
Training mini-batch number 794000
Training mini-batch number 795000
Training mini-batch number 796000
Training mini-batch number 797000
Training mini-batch number 798000
Training mini-batch number 799000
Epoch 31: validation accuracy 99.55%
Training mini-batch number 800000
Training mini-batch number 801000
Training mini-batch number 802000
Training mini-batch number 803000
Training mini-batch number 804000
Training mini-batch number 805000
Training mini-batch number 806000
Training mini-batch number 807000
Training mini-batch number 808000
Training mini-batch number 809000
Training mini-batch number 810000
Training mini-batch number 811000
Training mini-batch number 812000
Training mini-batch number 813000
Training mini-batch number 814000
Training mini-batch number 815000
Training mini-batch number 816000
Training mini-batch number 817000
Training mini-batch number 818000
Training mini-batch number 819000
Training mini-batch number 820000
Training mini-batch number 821000
Training mini-batch number 822000
Training mini-batch number 823000
Training mini-batch number 824000
Epoch 32: validation accuracy 99.53%
Training mini-batch number 825000
Training mini-batch number 826000
Training mini-batch number 827000
Training mini-batch number 828000
Training mini-batch number 829000
Training mini-batch number 830000
Training mini-batch number 831000
Training mini-batch number 832000
Training mini-batch number 833000
Training mini-batch number 834000
Training mini-batch number 835000
Training mini-batch number 836000
Training mini-batch number 837000
Training mini-batch number 838000
Training mini-batch number 839000
Training mini-batch number 840000
Training mini-batch number 841000
Training mini-batch number 842000
Training mini-batch number 843000
Training mini-batch number 844000
Training mini-batch number 845000
Training mini-batch number 846000
Training mini-batch number 847000
Training mini-batch number 848000
Training mini-batch number 849000
Epoch 33: validation accuracy 99.50%
Training mini-batch number 850000
Training mini-batch number 851000
Training mini-batch number 852000
Training mini-batch number 853000
Training mini-batch number 854000
Training mini-batch number 855000
Training mini-batch number 856000
Training mini-batch number 857000
Training mini-batch number 858000
Training mini-batch number 859000
Training mini-batch number 860000
Training mini-batch number 861000
Training mini-batch number 862000
Training mini-batch number 863000
Training mini-batch number 864000
Training mini-batch number 865000
Training mini-batch number 866000
Training mini-batch number 867000
Training mini-batch number 868000
Training mini-batch number 869000
Training mini-batch number 870000
Training mini-batch number 871000
Training mini-batch number 872000
Training mini-batch number 873000
Training mini-batch number 874000
Epoch 34: validation accuracy 99.51%
Training mini-batch number 875000
Training mini-batch number 876000
Training mini-batch number 877000
Training mini-batch number 878000
Training mini-batch number 879000
Training mini-batch number 880000
Training mini-batch number 881000
Training mini-batch number 882000
Training mini-batch number 883000
Training mini-batch number 884000
Training mini-batch number 885000
Training mini-batch number 886000
Training mini-batch number 887000
Training mini-batch number 888000
Training mini-batch number 889000
Training mini-batch number 890000
Training mini-batch number 891000
Training mini-batch number 892000
Training mini-batch number 893000
Training mini-batch number 894000
Training mini-batch number 895000
Training mini-batch number 896000
Training mini-batch number 897000
Training mini-batch number 898000
Training mini-batch number 899000
Epoch 35: validation accuracy 99.49%
Training mini-batch number 900000
Training mini-batch number 901000
Training mini-batch number 902000
Training mini-batch number 903000
Training mini-batch number 904000
Training mini-batch number 905000
Training mini-batch number 906000
Training mini-batch number 907000
Training mini-batch number 908000
Training mini-batch number 909000
Training mini-batch number 910000
Training mini-batch number 911000
Training mini-batch number 912000
Training mini-batch number 913000
Training mini-batch number 914000
Training mini-batch number 915000
Training mini-batch number 916000
Training mini-batch number 917000
Training mini-batch number 918000
Training mini-batch number 919000
Training mini-batch number 920000
Training mini-batch number 921000
Training mini-batch number 922000
Training mini-batch number 923000
Training mini-batch number 924000
Epoch 36: validation accuracy 99.57%
Training mini-batch number 925000
Training mini-batch number 926000
Training mini-batch number 927000
Training mini-batch number 928000
Training mini-batch number 929000
Training mini-batch number 930000
Training mini-batch number 931000
Training mini-batch number 932000
Training mini-batch number 933000
Training mini-batch number 934000
Training mini-batch number 935000
Training mini-batch number 936000
Training mini-batch number 937000
Training mini-batch number 938000
Training mini-batch number 939000
Training mini-batch number 940000
Training mini-batch number 941000
Training mini-batch number 942000
Training mini-batch number 943000
Training mini-batch number 944000
Training mini-batch number 945000
Training mini-batch number 946000
Training mini-batch number 947000
Training mini-batch number 948000
Training mini-batch number 949000
Epoch 37: validation accuracy 99.59%
Training mini-batch number 950000
Training mini-batch number 951000
Training mini-batch number 952000
Training mini-batch number 953000
Training mini-batch number 954000
Training mini-batch number 955000
Training mini-batch number 956000
Training mini-batch number 957000
Training mini-batch number 958000
Training mini-batch number 959000
Training mini-batch number 960000
Training mini-batch number 961000
Training mini-batch number 962000
Training mini-batch number 963000
Training mini-batch number 964000
Training mini-batch number 965000
Training mini-batch number 966000
Training mini-batch number 967000
Training mini-batch number 968000
Training mini-batch number 969000
Training mini-batch number 970000
Training mini-batch number 971000
Training mini-batch number 972000
Training mini-batch number 973000
Training mini-batch number 974000
Epoch 38: validation accuracy 99.55%
Training mini-batch number 975000
Training mini-batch number 976000
Training mini-batch number 977000
Training mini-batch number 978000
Training mini-batch number 979000
Training mini-batch number 980000
Training mini-batch number 981000
Training mini-batch number 982000
Training mini-batch number 983000
Training mini-batch number 984000
Training mini-batch number 985000
Training mini-batch number 986000
Training mini-batch number 987000
Training mini-batch number 988000
Training mini-batch number 989000
Training mini-batch number 990000
Training mini-batch number 991000
Training mini-batch number 992000
Training mini-batch number 993000
Training mini-batch number 994000
Training mini-batch number 995000
Training mini-batch number 996000
Training mini-batch number 997000
Training mini-batch number 998000
Training mini-batch number 999000
Epoch 39: validation accuracy 99.59%
Finished training network.
Best validation accuracy of 99.60% obtained at iteration 749999
Corresponding test accuracy of 99.61%

In [ ]: