当东西在GPU上时,评估和修改theano张量

时间:2015-01-16 12:58:58

标签: theano deep-learning

我现在认真对待多年了。我需要一些帮助。

我正在GPU上运行theano conv网络。 网络具有丢失功能

def mse(x,t):     返回T.mean((x - t)** 2)

这里x是整流衬管单元的预测值,t是预期值。

现在针对特定的学习问题我试图修改函数,以便我想要阈值x的值。所以基本上就像这个简单

x [x> ts] = ts

但我真的很挣扎。我尝试了很多东西

ts = 0.91 Y = T.vector() #x_update = (x, T.set_subtensor(x[(x > ts).eval()], Y)) #f = function([Y], updates=[x_update]) #v=np.empty(len((x > ts).eval())) #v.fill(ts) #f(v) #x.shape.eval() x_arr = x.flatten() print type(x_arr) print type(t) print type(x) #print T.shape(x_arr).eval() #print x.shape.eval() #print x_arr.shape.eval() #print t.shape.eval() #print x.eval() #print x_arr.get_value() #x_newarr = x_arr.eval() #x_newarr[x_newarr>ts] = ts #x = T.shared(x_newarr) return T.mean((x - t) ** 2)

除了三张照片,所有打印<class 'theano.tensor.var.TensorVariable' >所有其他内容都给我错误。 所以我在我的智慧结束如何做这个简单的东西。 是因为这些东西是在GPU上吗?

我在本地python提示符上测试了代码,方法是构造一个numpy数组并将其转换为张量共享变量。以上不同的东西有效。 但我知道类型是theano.tensor.sharedvar.TensorSharedVariable而不是theano.tensor.var.TensorVariable。

如果有人在这里帮助我,我真的很感激。

此致

1 个答案:

答案 0 :(得分:1)

请找到pascal给出的这个问题的答案 https://groups.google.com/forum/#!topic/theano-users/cNnvw2rUHc8

失败是正确的,因为在调用函数时没有提供输入值,因为它是符号的。

答案是使用T.minimum(x,threshold)