当东西在 GPU 上时评估和修改 theano 张量
Evaluating and modifying theano tensors when stuff is on GPU
我很长时间以来一直被某些东西困扰着。我需要一些帮助。
我是 运行 GPU 上的 theano 转换网络。
网络有这样的损失函数
def mse(x, t):
return 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。
如果有人在这里帮我一把,我将不胜感激。
此致
请在以下位置找到 pascal 给出的此问题的答案
https://groups.google.com/forum/#!topic/theano-users/cNnvw2rUHc8
失败是正确的,因为在调用函数时没有提供输入值,因为它是符号的。
答案是使用T.minimum(x,threshold)
我很长时间以来一直被某些东西困扰着。我需要一些帮助。
我是 运行 GPU 上的 theano 转换网络。 网络有这样的损失函数
def mse(x, t): return 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。
如果有人在这里帮我一把,我将不胜感激。
此致
请在以下位置找到 pascal 给出的此问题的答案 https://groups.google.com/forum/#!topic/theano-users/cNnvw2rUHc8
失败是正确的,因为在调用函数时没有提供输入值,因为它是符号的。
答案是使用T.minimum(x,threshold)