诸如长序列单行显示,全部显示(不缩略显示),精度(保留小数点后几位),是否科学计数法显示等等。
直接用程序来说明
-
生成测试数据
import torch torch.random.manual_seed(0) # 固定每次生成的数据相同 tensor = torch.rand(100, 9)-0.5 print(tensor) # 在默认的显示设置下进行print
效果(部分)如下图
可以看到默认设定,过长的会换行,默认保留小数点后4位,默认进行科学计数法显示
-
通过
torch.set_printoptions()
控制显示格式torch.set_printoptions( precision=2, # 精度,保留小数点后几位,默认4 threshold=1000, edgeitems=3, linewidth=150, # 每行最多显示的字符数,默认80,超过则换行显示 profile=None, sci_mode=False # 用科学技术法显示数据,默认True ) print(tensor)
其中
-
precision=2
精度,保留小数点后几位,默认4
-
threshold=1000
最多可现实的Array元素个数,默认1000;
限制的是基本元素个数,如3*5的矩阵,限制的是15而非3(行);
如果超过就采用缩略显示;
设置为inf全部显示 -
edgeitems=3
在缩略显示时在起始和默认显示的元素个数(对多个维度同时有效) -
linewidth=150,
每行最多显示的字符数,默认80,超过则换行显示
-
profile=None
3种预定义的显示模板,可选’default’、‘short’、‘full’
# if profile == "default": # PRINT_OPTS.precision = 4 # PRINT_OPTS.threshold = 1000 # PRINT_OPTS.edgeitems = 3 # PRINT_OPTS.linewidth = 80 # elif profile == "short": # PRINT_OPTS.precision = 2 # PRINT_OPTS.threshold = 1000 # PRINT_OPTS.edgeitems = 2 # PRINT_OPTS.linewidth = 80 # elif profile == "full": # PRINT_OPTS.precision = 4 # PRINT_OPTS.threshold = inf # PRINT_OPTS.edgeitems = 3 # PRINT_OPTS.linewidth = 80
-
sci_mode=False
用科学技术法显示数据,默认True
如上设定之后显示如下
应该注意这只是设置print出来的显示格式,并不会影响到数据在内存中运算的精度
-
-
相关文献