在PyTorch中,new_ones()vs 之间有什么区别ones().例如,
x2.new_ones(3,2, dtype=torch.double)
Run Code Online (Sandbox Code Playgroud)
VS
torch.ones(3,2, dtype=torch.double)
Run Code Online (Sandbox Code Playgroud)
den*_*ger 12
为了这个答案,我假设你x2是一个先前定义的torch.Tensor.如果我们转到PyTorch文档,我们可以阅读以下内容new_ones():
返回
size填充大小的Tensor1.默认情况下,返回的Tensor具有相同的张量torch.dtype和torch.device张量.
而 ones()
返回填充了标量值1的张量,其形状由变量参数size定义.
因此,基本上,new_ones允许您torch.Tensor在与先前存在的张量(带有张量)相同的设备和数据类型上快速创建新的,而ones()用于创建torch.Tensor从头开始(填充为1)的目的.
新的()
# defining the tensor along with device to run on. (Assuming CUDA hardware is available)
x = torch.rand(5, 3, device="cuda")
Run Code Online (Sandbox Code Playgroud)
new_ones()适用于现有张量。y将继承datatypefromx并将运行在与device定义相同的x
y = x.new_ones(2, 2)
print(y)
Run Code Online (Sandbox Code Playgroud)
输出:
tensor([[1., 1.],
[1., 1.]], device='cuda:0')
Run Code Online (Sandbox Code Playgroud)
那些()
# defining tensor. By default it will run on CPU.
x = torch.ones(5, 3)
print(x)
Run Code Online (Sandbox Code Playgroud)
输出:
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
Run Code Online (Sandbox Code Playgroud)
ones()用于与限定张量1.(如实例)的给定的size,并且不依赖于现有的张量,而new_ones()与现有的张量作品其中相同的继承属性datatype和device从现有张量,并定义tensor与给定的size。
| 归档时间: |
|
| 查看次数: |
2075 次 |
| 最近记录: |