我认真地坚持了很久了。我需要帮助。
我在GPU上运行theano转换网络。网络本身具有丢失功能
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上吗?
我确实通过构造一个numpy数组并将其转换为张量共享变量在本地python提示符下测试了代码。上面不同的东西起作用。但是我意识到类型是theano.tensor.sharedvar.TensorSharedVariable,而不是theano.tensor.var.TensorVariable。
如果有人在这里帮助我,我将不胜感激。
问候
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句