2015-09-09 24 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) 
相關問題