pytorch.empty 函数中未初始化的数据是什么
what is uninitialized data in pytorch.empty function
我正在学习 pytorch
教程并遇到了 pytorch.empty
函数。有人提到空可以用于未初始化的数据。但是,当我打印它时,我得到了一个值。这和 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()
, a block of memory is allocated according to the size (shape) of the tensor. By uninitialized data, it's meant that torch.empty()
就会简单地 return 内存块中的值。这些值可以是默认值,也可以是由于某些其他操作而存储在这些内存块中的值,这些操作之前使用了内存块的那部分。
这是一个简单的例子:
# 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]])
我正在学习 pytorch
教程并遇到了 pytorch.empty
函数。有人提到空可以用于未初始化的数据。但是,当我打印它时,我得到了一个值。这和 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()
, a block of memory is allocated according to the size (shape) of the tensor. By uninitialized data, it's meant that torch.empty()
就会简单地 return 内存块中的值。这些值可以是默认值,也可以是由于某些其他操作而存储在这些内存块中的值,这些操作之前使用了内存块的那部分。
这是一个简单的例子:
# 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]])