constructor - 为什么 Pytorch 中未初始化的张量有初始值?

标签 constructor initialization pytorch tensor

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/

相关文章:

Java线程程序不工作

c++ - 按值返回是否调用复制构造函数或复制赋值运算符?

swift - 类层次结构中的便利初始化导致无限递归

c - 实际输出是什么,为什么?

python - Pytorch 与 pad_packed_sequence、seq2seq 大小不一致

java - 是否有必要在构造函数中指定每个 Java 类的属性?

swift - 在 swift 中让不同的不同子类具有不同的默认值的惯用方式

python-3.x - 以可变批量大小加载数据?

python - PureFrameworkTensorFoundError,运行时错误 -FedeartedLearning

c++ - 使用其他成员初始化结构体的成员?