如何在FloatTensor、Pytorch中更改(分配)新值?
我正在更改/分配数组上的值(torch.cuda.floatTensor)。我试过一些方法,但不起作用。请帮帮我 #一, #三,如何在FloatTensor、Pytorch中更改(分配)新值?,pytorch,assign,Pytorch,Assign,我正在更改/分配数组上的值(torch.cuda.floatTensor)。我试过一些方法,但不起作用。请帮帮我 #一, #三, #dis是[torch.cuda.FloatTensor,大小为3185x1(GPU 0)] s=尺寸(0) a=火炬.0(s,1).cuda() 对于范围(0,s,1)内的i: 如果(dis[i,0]
#dis是[torch.cuda.FloatTensor,大小为3185x1(GPU 0)]
s=尺寸(0)
a=火炬.0(s,1).cuda()
对于范围(0,s,1)内的i:
如果(dis[i,0]
IIUC,您需要将小于0的值替换为0,只需使用,这适用于此类用例:
dis = dis.clamp(min=0)
例如:
导入火炬
dis=火炬张量([[1]、-3]、[0]])
#张量([[1],
# [-3],
# [ 0]])
dis.夹具(最小值=0)
#张量([[1],
# [0],
# [0]])
IIUC,您需要将小于0的值替换为0,只需使用,这适用于此类用例:
dis = dis.clamp(min=0)
例如:
导入火炬
dis=火炬张量([[1]、-3]、[0]])
#张量([[1],
# [-3],
# [ 0]])
dis.夹具(最小值=0)
#张量([[1],
# [0],
# [0]])
谢谢你的帮助!在我的情况下效果很好。但在某些情况下,如将特定值替换为特定位置。你能告诉我怎么做吗?非常感谢。例如:like#3 s=dis.size(0)a=torch.random(s,1).cuda()代表范围(0,s,1)中的i:if(dis[i,0]#dis is [torch.cuda.FloatTensor of size 3185x1 (GPU 0)]
s = dis.size(0)
a = torch.zeros(s, 1).cuda()
for i in range (0,s,1):
if (dis[i,0] < a[i, 0]):
dis[i,0]==a[i, 0]
#RuntimeError: bool value of Variable objects containing non-empty torch.cuda.ByteTensor is ambiguous
dis = dis.clamp(min=0)