在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
将继承datatype
fromx
并将运行在与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 次 |
最近记录: |