0

Ich versuche, ein CNN mit Theano/Lasagne zu implementieren. Ich habe ein neuronales Netzwerk gemacht, kann aber nicht herausfinden, wie man es mit dem aktuellen Zustand trainiert.Train Faltungs neuronalen Netzwerk mit Theano/Lasagne

So versuche ich, die Ausgabe des Netzwerks mit der current_states als Eingabe zu erhalten.

train = theano.function([input_var], lasagne.layers.get_output(l.out)) 
output = train(current_states) 

Allerdings bekomme ich diesen Fehler:

theano.compile.function_module.UnusedInputError: theano.function was asked to create a function computing outputs given certain inputs, but the provided input variable at index 0 is not part of the computational graph needed to compute the outputs: inputs. 
To make this error into a warning, you can pass the parameter on_unused_input='warn' to theano.function. To disable it completely, use on_unused_input='ignore'. 

Warum verwendet wird current_states nicht?

Ich möchte die Ausgabe des Modells auf den aktuellen_States erhalten. Wie mache ich das?

(die CNN-Code erstellen: http://pastebin.com/Gd35RncU)

Antwort

1

Der folgende Codeausschnitt funktioniert für mich:

import lasagne, theano 
import theano.tensor as T 
import numpy as np 
input_var = theano.tensor.tensor4('inputs') 
l_out = build_cnn(input_var) 
train = theano.function([input_var], lasagne.layers.get_output(l_out)) 
x = np.random.randn(10, 4, 80, 80).astype(theano.config.floatX) 
train(x) 

Sie schreiben nicht Ihren gesamten Code, aber Sie können, wenn in Ihrem Skript überprüfen, um zu sehen, Sie übergeben die Variable input_var an Ihre Funktion build_cnn. Wenn Sie dies nicht tun, wird input_var nicht Teil Ihres Berechnungsgraphen sein, weshalb Theano den Fehler anzeigt.