loss.item()在深度学习作用

在pytorch训练时,一般用到.item()。比如loss.item()。

1.loss 使用item()后,不会生成计算图,减少内存消耗

2. item()返回一个原本数据类型的值,有显示精度的区别

我们做个简单测试代码看看有item()和没有item()的区别。

import torch
x = torch.randn(2, 2)
print(x)
print(x[1,1])
print(x[1,1].item())

结果为:

tensor([[ 0.4702,  0.5145],
        [-0.0682, -1.4450]])
tensor(-1.4450)
-1.445029854774475
1
2
3
4


可以看出是显示精度的区别,item()返回的是一个浮点型数据,所以我们在求loss或者accuracy时,一般使用item(),而不是直接取它对应的元素x[1,1]。

猜你喜欢

转载自blog.csdn.net/Viviane_2022/article/details/128404067
今日推荐