使用其他theano函数输出定义theano函数

时间:2016-12-13 21:27:34

标签: function theano

我是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), 

但它仍然无效。有人能帮帮我吗?感谢。

1 个答案:

答案 0 :(得分:0)

简单的答案是没有办法。在here

  

因为在Theano中你首先象征性地表达一切,然后编译这个表达式以获得函数,......

您不能将theano.function的输出用作另一个theano.function的输入/输出,因为它们已经是已编译的图形/函数。

您应该在f_x_hidden的示例代码中传递符号变量(例如x)来构建模型。