python - pytorch.empty 函数中的未初始化数据是什么
问题描述
我正在阅读pytorch
教程并遇到了pytorch.empty
功能。有人提到空可以用于未初始化的数据。但是,当我打印它时,我得到了一个值。this 和 which 也生成数据有什么区别pytorch.rand
(我知道 rand 在 0 和 1 之间生成)。下面是我试过的代码
a = torch.empty(3,4)
print(a)
输出:
tensor([[ 8.4135e-38, 0.0000e+00, 6.2579e-41, 5.4592e-39], [-5.6345e-08, 2.5353e+30, 5.0447e-44, 1.7020e-41], [ 1.4000e-38, 5.7697e-05, 2.5353e+30, 2.1580e-43]])
b = torch.rand(3,4)
print(b)
输出:
tensor([[ 0.1514, 0.8406, 0.2708, 0.3422], [ 0.7196, 0.6120, 0.4476, 0.6705], [ 0.6989, 0.2086, 0.5100, 0.8285]])
解决方案
一旦你调用torch.empty()
,就会根据张量的大小(形状)分配一块内存。通过uninitialized data,这意味着torch.empty()
它将简单地按原样返回内存块中的值。这些值可能是默认值,也可能是由于某些其他操作而存储在这些内存块中的值,这些操作之前使用了内存块的那部分。
这是一个简单的例子:
# a block of memory with the values in it
In [74]: torch.empty(2, 3)
Out[74]:
tensor([[-1.0049e+08, 4.5688e-41, -9.1450e-38],
[ 3.0638e-41, 4.4842e-44, 0.0000e+00]])
# same run; but note the change in values.
# i.e. different memory addresses than on the previous run were used.
In [75]: torch.empty(2, 3)
Out[75]:
tensor([[-1.0049e+08, 4.5688e-41, -7.9421e-38],
[ 3.0638e-41, 4.4842e-44, 0.0000e+00]])
推荐阅读
- r - R中的数值求解器(近似十进制解)
- python - 如何使用熊猫每 15 分钟填充一次
- python-3.x - 在后台运行的 Python 自动化项目
- powershell - 如何在 powershell("user:mary@contoso.com:rwx,default:user:mary@contoso.com:rwx") 中参数化两个值的字符串
- r - 如何随时间绘制二进制数据(ggplot)
- standards - 我如何知道正在使用哪些 RFC?
- c - C GZIP 得到不正确的结果
- c# - “数据为 Null。无法对 Null 值调用此方法或属性。” 但我使用 DBNull.Value 来检查空值
- java - 如何在 JDA 中检查 Discord 频道是否有父频道
- python - 如何让 webdriver.Firefox() 打开最小化?