我是theano的新手,任何人都可以帮我定义像这样的theano函数:
基本上,我的网络模型如下所示:
y_hat, cost, mu, output_hiddens, cells = nn_f(x, y, in_size, out_size, hidden_size, layer_models, 'MDN', training=False)
此处输入x是张量:
x = tensor.tensor3('features', dtype=theano.config.floatX)
我想定义两个theano函数供以后使用:
f_x_hidden = theano.function([x], [output_hiddens])
f_hidden_mu = theano.function([output_hiddens], [mu], on_unused_input = 'warn')
第一个很好。对于第二个问题,问题是输入和输出都是原始函数的输出。它给了我错误:
theano.gof.fg.MissingInputError:未提供用于计算Elemwise {identity}(要素)的图表输入,但未提供值。
我的理解是,[output_hiddens]
和[mu]
都与输入[x]
相关,它们之间应该存在关联。我尝试从theano
到[x]
定义另一个[mu]
函数,例如:
f_x_mu = theano.function([x], [mu]),
然后
f_hidden_mu = theano.function(f_x_hidden, f_x_mu),
但它仍然无效。有人能帮帮我吗?感谢。
答案 0 :(得分:0)
简单的答案是没有办法。在here
因为在Theano中你首先象征性地表达一切,然后编译这个表达式以获得函数,......
您不能将theano.function
的输出用作另一个theano.function
的输入/输出,因为它们已经是已编译的图形/函数。
您应该在f_x_hidden
的示例代码中传递符号变量(例如x)来构建模型。