如何在 Torch 的 GPU 上将张量的元素限制/舍入到小数点后 4 位?
Posted
技术标签:
【中文标题】如何在 Torch 的 GPU 上将张量的元素限制/舍入到小数点后 4 位?【英文标题】:How to limit/round elements of a tensor to 4 decimal places on GPU in Torch? 【发布时间】:2017-08-02 21:17:30 【问题描述】:我想知道,如何将 GPU 上的张量精度截断到所需的小数位?我想将张量中的元素限制为小数点后 4 位,但似乎 Torch 中没有内置函数可以有效地做到这一点。有谁知道如何做到这一点?
【问题讨论】:
【参考方案1】:将张量中的数字四舍五入仍然不是直截了当的,但一个简单的解决方案(哪种适合我的目的)是将张量转换为半精度,如下所示:
require 'cutorch'
temp = torch.rand(3, 3)
temp = temp:cuda()
temp = temp:cudaHalf()
【讨论】:
【参考方案2】:更好的解决方案肯定是首先将张量转换为 numpy,然后使用 numpy 的 round 函数。例如:
import torch
import numpy as np
x = torch.randn(size = (30, 10, 10)).numpy()
print(x)
x = np.round(x, 4)
print(x)
只需比较 x
舍入前后的打印输出语句即可。
【讨论】:
以上是关于如何在 Torch 的 GPU 上将张量的元素限制/舍入到小数点后 4 位?的主要内容,如果未能解决你的问题,请参考以下文章
pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法
pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法
pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法
pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法