python - 与 GPU 上的 torch.FloatTensor 进行比较的优雅方式

标签 python numpy boolean pytorch tensor

我尝试像这样比较位于 GPU 上的两个 torch.FloatTensor(只有一个条目):

if (FloatTensor_A > FloatTensor_B): do something

问题是,(FloatTensor_A > FloatTensor_B) 返回 ByteTensor。有没有一种方法可以在这两个标量 FloatTensors 之间进行 boolean 比较,而无需在 CPU 上加载张量并将它们转换回 numpy 或传统 float ?

最佳答案

PyTorch 中的比较操作返回 ByteTensors(参见 docs)。为了将结果转换回 float 据类型,您可以对结果调用 .float()。例如:

(t1 > t2).float()

(t1 > t2) 将返回一个 ByteTensor

操作的输入必须在同一内存上(CPU 或 GPU)。返回结果将在同一内存中。当然,任何Tensor都可以通过在其上调用.cpu().cuda()移动到各自的内存。

关于python - 与 GPU 上的 torch.FloatTensor 进行比较的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096651/

相关文章:

java - Scala:需要 "explicit return"吗?

python - Pandas 使用 while 循环遍历数据框和列表

python - 了解 toolz 用例

python - pyserial 将 unicode 字符串作为字节数组发送

python - 了解 `np.ndarray` 子类化中的默认值

python - 将 numpy boolean 选择器限制为前几个真值的有效方法

python - 提取统计数据

python - 具有三个 3x3 内核的 6x6 数组的 2D 互相关

python - 使用 `multivariate_normal` 时无法导入 `scipy.stats`

lua - 将任何事物作为 boolean 值进行评估