I'm trying to build a convolutional neural network here is my code:
def build_cnn(input_var=None):
network = lasagne.layers.InputLayer(shape=(None ,1 ,700, 21),
input_var=input_var)
batchsize, seqlen, _, _ = network.input_var.shape
network = lasagne.layers.Conv2DLayer(
network, num_filters=32, filter_size=(5, 5),
nonlinearity=lasagne.nonlinearities.sigmoid,
W=lasagne.init.GlorotUniform())
network = lasagne.layers.MaxPool2DLayer(network, pool_size=(2, 2))
network = lasagne.layers.Conv2DLayer(
network, num_filters=32, filter_size=(5, 5),
nonlinearity=lasagne.nonlinearities.sigmoid)
network = lasagne.layers.MaxPool2DLayer(network, pool_size=(2, 2))
network = lasagne.layers.DenseLayer(
lasagne.layers.dropout(network, p=.5),
num_units=256,
nonlinearity=lasagne.nonlinearities.sigmoid)
network = lasagne.layers.DenseLayer(
lasagne.layers.dropout(network, p=.5),
num_units=8,
nonlinearity=lasagne.nonlinearities.softmax)
l_out = lasagne.layers.ReshapeLayer(network, (batchsize*seqlen, 1, 700, 8))
return l_out
I keep getting this error during training from the train_fn():
ValueError: total size of new array must be unchanged
Apply node that caused the error: Reshape{3}(SoftmaxWithBias.0, Join.0)
Toposort index: 52
Inputs types: [TensorType(float64, matrix), TensorType(int64, vector)]
Inputs shapes: [(500, 8), (3,)]
Inputs strides: [(64, 8), (8,)]
Inputs values: ['not shown', array([500, 700, 8], dtype=int64)]
Outputs clients: [[InplaceDimShuffle{0,x,1,2}(Reshape{3}.0)]]
I can provide more details if necessary