我试图使用theano / lasagne实施CNN。 我已经建立了一个神经网络,但无法弄清楚如何用当前状态训练它。
这就是我尝试以current_states
作为输入获取网络输出的方法。
train = theano.function([input_var], lasagne.layers.get_output(l.out))
output = train(current_states)
但是我收到了这个错误:
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'.
为什么不使用current_states?
我想在current_states上获取模型的输出。我该怎么做?
(CNN构建代码:http://pastebin.com/Gd35RncU)
答案 0 :(得分:1)
以下代码段适用于我:
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)
您没有发布整个代码,但是您可以检查脚本中是否将input_var变量传递给build_cnn函数。如果你不这样做,那么input_var将不会成为你的计算图的一部分,这就是Theano提出错误的原因。