Pytorch中tensor的打印精度
1. 设置打印精
Pytorch中tensor打印的数据长度需要使用torch.set_printoptions(precision=xx)
进行设置,否则打印的长度会很短,给人一种精度不够的错觉:
- >>> import torch
- >>> a=torch.tensor([1/3])
- >>> a
- tensor([0.3333])
- >>> # 修改打印精度为20位小数
- >>> torch.set_printoptions(precision=20)
- >>> a
- tensor([0.33333334326744079590])
2. 类型转换对精度的影响
这里考虑使用类型转换将单精度浮点转换为双精度浮点:
- >>> # 将单精度浮点转换为双精度浮点
- >>> c=a.double()
- >>> c
- tensor([0.33333334326744079590], dtype=torch.float64)
可以看到,使用类型转换并不会提升数据精度
3. 重新定义高精度数据类型
那么,重新定义一个双精度的浮点数会怎么样呢?
- >>> # 使用双精度浮点类型重新生成
- >>> b=torch.tensor([1/3],dtype=torch.double)
- >>> b
- tensor([0.33333333333333331483], dtype=torch.float64)
4. 数据整体精度是否变化
此时,将数据加上100,可以看到小数后的精度变低了,但是数据整体精度保持不变:
- 1 >>> # 测试精度位数变化情况
- 2 >>> d=100+b
- 3 >>> d
- 4 tensor([100.33333333333332859638], dtype=torch.float64)
5. 建议
使用torch.set_default_dtype(torch.double)设置默认的数据类型为双精度浮点,使用torch.set_default_tensor_type(torch.DoubleTensor)在设置默认数据类型的同时会设置torch.tensor接口的默认类型。[3][4]对单精度浮点,为稳妥起见,根据输入内容设置打印精度为6位有效数字,同样对双精度浮点,根据输入内容设置设置打印精度为16位有效数字。这样,打印出来的值就是较为精确的值了。
参考:
Pytorch中tensor的打印精度_步子大了吧的博客-CSDN博客_pytorch 设置精度
python与pytorch的数据类型、数据精度与转换_hangyangSJTU的博客-CSDN博客_torch 精度
Pytorch中tensor的打印精度的更多相关文章
- pytorch中tensor数据和numpy数据转换中注意的一个问题
转载自:(pytorch中tensor数据和numpy数据转换中注意的一个问题)[https://blog.csdn.net/nihate/article/details/82791277] 在pyt ...
- 对pytorch中Tensor的剖析
不是python层面Tensor的剖析,是C层面的剖析. 看pytorch下lib库中的TH好一阵子了,TH也是torch7下面的一个重要的库. 可以在torch的github上看到相关文档.看了半天 ...
- [Pytorch]Pytorch中tensor常用语法
原文地址:https://zhuanlan.zhihu.com/p/31494491 上次我总结了在PyTorch中建立随机数Tensor的多种方法的区别. 这次我把常用的Tensor的数学运算总结到 ...
- pytorch中tensor张量数据基础入门
pytorch张量数据类型入门1.对于pytorch的深度学习框架,其基本的数据类型属于张量数据类型,即Tensor数据类型,对于python里面的int,float,int array,flaot ...
- pytorch中tensor的属性 类型转换 形状变换 转置 最大值
import torch import numpy as np a = torch.tensor([[[1]]]) #只有一个数据的时候,获取其数值 print(a.item()) #tensor转化 ...
- pytorch中tensor张量的创建
import torch import numpy as np print(torch.tensor([1,2,3])) print(torch.tensor(np.arange(15).reshap ...
- Pytorch 中 tensor的维度拼接
torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是增加新的维度进行堆叠,即其维度拼接后会增加一个维度:而torch. ...
- pytorch 中的数据类型,tensor的创建
pytorch中的数据类型 import torch a=torch.randn(2,3) b=a.type() print(b) #检验是否是该数据类型 print(isinstance(a,tor ...
- 详解Pytorch中的网络构造,模型save和load,.pth权重文件解析
转载:https://zhuanlan.zhihu.com/p/53927068 https://blog.csdn.net/wangdongwei0/article/details/88956527 ...
- Pytorch基础-tensor数据结构
torch.Tensor Tensor 数据类型 Tensor 的属性 view 和 reshape 的区别 Tensor 与 ndarray 创建 Tensor 传入维度的方法 参考资料 torch ...
随机推荐
- spring mvc基本介绍
1 MVC 盖帘: MVC 是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计编写 Web 应用程序表现层的模式. MVC 设计模式的三大角色: Model ...
- adobe 色轮
https://color.adobe.com/zh/create/color-wheel
- tomcat 1 - Servlet 容器
Socket socket = new Socket ( "yahoo.com", 80); OutputStream os = socket.getOutputStream(); ...
- nodejs 程序打包 打包 koa express 项目 源代码保护加密
打包项目 几个可以 把 nodejs 打包成单个文件的库,为了方便或保护源代码,都可以尝试,打包完成需要测试,如果项目有特殊依赖,可能会失败. https://github.com/nexe/nexe ...
- pytorch学习笔记(8)--现有模型的使用和修改
官网网址: https://pytorch.org/vision/0.9/models.html#semantic-segmentation (1).ImageNet train_data = tor ...
- Oracle数据库简单常用语句
简单常用语句: 登录超级用户 sqlplus / as sysdba; 登录普通用户 connect username/password; 显示当前用户名 show user; 查询所有用户名 sel ...
- 博弈论[leetocde913]
class Solution { static final int MOUSE_WIN = 1; static final int CAT_WIN = 2; static final int DRAW ...
- 织梦清除文章后后台页码异常怎么办?dedecms页码缓存更新设置
织梦dedecms当我们清除大量文章后,发现织梦后台文章列表的页码还是原来的数量或者页码显示异常,该怎么办呢?其实是因为dedecms页码有缓存更新设置,DeDeCMS有缓存机制,有些比较费时的SQl ...
- Day10-数组
数组 一.什么是数组 数组是相同数据类型的有序集合 数字描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中.每一个数据称作一个数组元素,每个数组元素可以通过一个下表来访问它们 二.数组 ...
- react实现某个元素节点截图(html2canvas)
1.安装所需插件:html2canvas: 2.引入插件: import html2canvas from 'html2canvas'; 3.使用: const creatImg = () => ...