Ich versuche, den Ausgang eines neuronalen Netzes mit Lasagne zu visualisieren. Insbesondere habe ich den Code über das mnist Beispiel geändert: https://github.com/Lasagne/Lasagne/blob/master/examples/mnist.pyTheano - bewerten Sie den Ausgang eines neuronalen Netzes
in Zeile 299 ich die folgenden Zeilen Code eingefügt haben:
input_var=inputs
prediction=lasagne.layers.get_output(network,input_var)
print(prediction.eval())
sys.exit('debug')
das funktioniert perfekt, wenn wir das Modell ‚mlp‘ in Zeile auswählen 234:
def main(model='mlp', num_epochs=500):
während das Modell 'CNN' Auswahl durch Ändern der Leitung 234 wie folgt:
def main(model='cnn', num_epochs=500):
die Linie
print(prediction.eval())
gibt einen Fehler:
Traceback (most recent call last):
File "/dos/mnist_lasagne_original.py", line 364, in <module>
main(**kwargs)
File "/dos/mnist_lasagne_original.py", line 299, in main
print(prediction.eval())
File "/usr/local/lib/python2.7/dist-packages/theano/gof/graph.py", line 523, in eval
rval = self._fn_cache[inputs](*args)
File "/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.py", line 871, in __call__
storage_map=getattr(self.fn, 'storage_map', None))
File "/usr/local/lib/python2.7/dist-packages/theano/gof/link.py", line 314, in raise_with_op
reraise(exc_type, exc_value, exc_trace)
File "/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.py", line 859, in __call__
outputs = self.fn()
ValueError: CorrMM received weight with wrong type.
Apply node that caused the error: CorrMM{valid, (1, 1)}(TensorConstant{[[[[ 0. 0..0. 0.]]]]}, Subtensor{::, ::, ::int64, ::int64}.0)
Toposort index: 8
Inputs types: [TensorType(float32, (False, True, False, False)), TensorType(float64, 4D)]
Inputs shapes: [(500, 1, 28, 28), (32, 1, 5, 5)]
Inputs strides: [(3136, 3136, 112, 4), (200, 200, -40, -8)]
Inputs values: ['not shown', 'not shown']
Outputs clients: [[Elemwise{Composite{(i0 * (Abs((i1 + i2)) + i1 + i2))}}(TensorConstant{(1, 1, 1, 1) of 0.5}, CorrMM{valid, (1, 1)}.0, InplaceDimShuffle{x,0,x,x}.0)]]
Backtrace when the node is created(use Theano flag traceback.limit=N to make it longer):
File "/dos/mnist_lasagne_original.py", line 364, in <module>
main(**kwargs)
File "/dos/mnist_lasagne_original.py", line 298, in main
prediction=lasagne.layers.get_output(network,input_var)
File "/home/paul/src/lasagne/lasagne/layers/helper.py", line 185, in get_output
all_outputs[layer] = layer.get_output_for(layer_inputs, **kwargs)
File "/home/paul/src/lasagne/lasagne/layers/conv.py", line 257, in get_output_for
conved = self.convolve(input, **kwargs)
File "/home/paul/src/lasagne/lasagne/layers/conv.py", line 535, in convolve
filter_flip=self.flip_filters)
ich google haben viel, und ich bin nicht in der Lage, den Ursprung dieser Probleme herauszufinden. Ich bin daran interessiert, die Ausgabe des neuronalen Netzwerks zu visualisieren, um zu verstehen, wie es funktioniert. Jede Hilfe wird geschätzt.