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 ...
随机推荐
- php递归算法多级分类
/** * 递归实现无限极分类 * @param $array 分类数据 * @param $pid 父ID * @param $level 分类级别 * @return $list 分好类的数组 直 ...
- WPFGroupBox控件自定义
先上效果图 直接上代码(直接在Window.Resources里面添加这段代码) <Style TargetType="GroupBox"> <Setter Pr ...
- 第一章MySQL架构
1.MySQL架构1.1连接管理与安全性 cpu维护缓存区,存储已就绪的线程,线程驻守在一个cpu上,创建销毁不用重新创建线程.1.2优化与执行 MySQL解析查询进行各种优化包括重写查询.决定表的读 ...
- 时间序列 data_range()
pd.date_range( start=None,#开始时间 end=None,#截止时间 periods=None,#总长度 freq=None,#时间间隔 tz=None,#时区 normali ...
- golang实现请求cloudflare修改域名A记录解析
现在有些DNS解析要收费,国内的几个厂商需要实名制.下面给出golang请求cloudflare修改域名A记录解析的代码. 准备工作: 在域名购买服务商处,将dns解析服务器改为cloudflare的 ...
- Linux 查看enable自启动服务
pi@pi4:~/client $ systemctl list-unit-files |grep enable autovt@.service enabled avahi-daemon.servic ...
- 2.常用Dos命令
#盘符切换 D: C:#查看当前目录下的所有文件 dir#切换目录 cd change directory #切换盘cd /d D:切换到D盘 #cd..返回上一级# 清理屏幕 CL ...
- GBDT中损失函数的负梯度用来拟合的一些理解
将\(L(y_i,f(x_i))\)在\(f(x_i)=f_{m-1}(x_i)\)处泰勒展开到一阶(舍去余项,故为近似) \[L(y_i,f(x_i))\approx L(y_i,f_{m-1}(x ...
- mysql之数据类型-第三篇
mysql数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据.mysql的数据类型分别有整数,浮点数和定点数类型,日期和时间类型,字符串类型和二进制类型等. 整数类型 数值型数据类 ...
- turtle 画照片
# -*- coding: utf-8 -*- import turtle as t import cv2 def draw_img(img_path, scale=1): ""& ...