2015-09-09 27 views
0

我有这样的事情:使用相同的输入调用单独的theano函数?

x=T.matrix('x') 
    params = [self.W, self.b1, self.b2] 
    hidden = self.activation_function(T.dot(x, self.W)+self.b1) 
    output = T.dot(hidden,T.transpose(self.W))+self.b2 
    output = self.output_function(output) 

    L = -T.sum(x*T.log(output) + (1-x)*T.log(1-output), axis=1) 
    cost=L.mean()  
    th_train = th.function(inputs=[index], outputs=[cost], updates=updates, 
         givens={x:self.X[index:index+mini_batch_size,:]}) 

这是工作的罚款。我现在想看看隐藏单元的含义是什么。

hm = T.mean(hidden) 
    hidden_mean_func = th.function(inputs=[hm], outputs=[hm], name="hidden_mean_function_printer") 
    print hidden_mean_func(hm) 

我收到以下错误:我尝试在那里L = -T.sum...声明前行加入这个

TypeError: ('Bad input argument to theano function with name "hidden_mean_function_printer" at index 0(0-based)', 'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?')

我真的有两个问题:1)为什么我不能这样做呢? 2)什么是实现我想要的正确方法?

谢谢

回答

0

就我所见,你给他的功能就是输入。如果你使用你的隐藏单元的数组/矩阵代码应该工作。

hidden_mean_func = th.function(inputs=[hidden], outputs=[hm], name="hidden_mean_function_printer") 
print hidden_mean_func(hidden) 
相关问题