torch 命令
x = torch.Tensor(4, 3)
应该创建一个未初始化的张量(基于文档)。 但是当我们尝试打印 x 的内容时,那里有值。
>>>from __future__ import print_function
>>>print(x)
0.0000e+00 -8.5899e+09 6.1021e-38
8.5920e+09 1.7470e-21 4.5806e-41
0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+00
[torch.FloatTensor of size 4x3]
那么这里的未初始化是什么意思呢?
最佳答案
这意味着PyTorch只是在内存中为张量保留了一定的区域,而不改变其内容。
这部分内存之前被其他东西占用(其他张量或者可能完全不同的东西,例如浏览器、代码编辑器......如果您使用 CPU 内存)。出于性能原因,里面的值不会被清除。
内容(以前可能完全不同)仅被解释为张量的值。
写入零或其他初始化需要计算能力,因此仅保留内存中的区域会快得多。
但是这些值也是完全不受控制的,值可能会变得非常高,因此在许多情况下您可能会进行额外的初始化。
关于constructor - 为什么 Pytorch 中未初始化的张量有初始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48869836/