如何在 Torch 中将张量的元素限制/舍入到 GPU 上的小数点后 4 位?

我想知道如何将 GPU 上的张量精度截断到期望的小数点后 4 位?我想将张量中的元素限制在 4 位小数点,但似乎 Torch 中没有有效且高效的内置函数可以实现此功能。有人知道如何实现吗?

点赞
用户2838606
用户2838606

仍然不容易简单地对张量中的数字进行舍入,但一个简单方案(有点符合我的需求)是将张量转换为半精度,如下所示:

require 'cutorch'

temp = torch.rand(3, 3)
temp = temp:cuda()
temp = temp:cudaHalf()
2017-03-15 00:48:57
用户15528750
用户15528750

更好的解决方案当然是先将张量转换为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的打印语句即可。

2021-09-15 10:16:28