torch.as_tensor() 和 torch.asarray() 之间的区别

问题描述 投票:0回答:1

我从文档中了解到的是,

torch.as_tensor()
torch.asarray()
都返回与输入
data
共享内存的张量,否则返回副本。我注意到参数上只有两个不同:

  • 我可以隐式地将
    copy=False
    传递到
    torch.asarray()
    来要求共享内存,并在无法复制时获得异常,或者我可以传递
    copy=True
    来要求副本。
  • 我可以在
    requires_grad
    中指定
    torch.asarray()

那么

torch.asarray()
是否只提供比
torch.as_tensor()
更多的功能?

但是如果我只是想获得共享内存(如果可能的话),我应该使用什么:

torch.asarray()
还是
torch.as_tensor()
?性能上有什么区别吗?

pytorch
1个回答
0
投票

So does torch.asarray() just offer more capabilities than torch.as_tensor()?

是的,基本上就是这样。

torch.as_tensor
自动尝试复制数据和自动分级信息,而
torch.asarray
使您可以更明确地控制数据复制和自动分级信息。

如果你想要默认共享内存/autograd,我只会使用

as_tensor
。据我所知,如果使用相同的内存/autograd 共享参数,两者之间没有性能差异。

© www.soinside.com 2019 - 2024. All rights reserved.