是否有可能检查张量的元素是否超出边界?

时间:2017-11-16 00:40:02

标签: python gpu pytorch

是否可以使用 PyTorch GPU 方法上的torch.cuda.FloatTensor来检查张量的元素是否超出边界?

示例(check limits):

for i in range(pop):
    if (x[i]>xmax):
        x[i]=xmax
    elif (x[i]<xmin):
        x[i]=xmin

我尝试了以下内容,但没有加快速度:

idxmax    = (x > xmax) # elements that are bigger that upper limit
idxmim    = (x < min)  # elements that are smaller that upper limit
x[idxmax] = xmax
x[idxmin] = xmin

如果没有,是否可以仅使用CPU执行此check limits部分?怎么样?

1 个答案:

答案 0 :(得分:0)

您可以获得张量x的CPU副本,执行操作,然后再次将张量推送到GPU内存。

x = x.cpu()  # get the CPU copy
# do your operations
x = x.cuda() # move the object back to cuda memory