内容来自于pytorch官方文档:torch.tensor()

先说结论:
两者都是生成张量
torch.Tensor是pytorch的一个类,torch.Tensor()是类的构造函数
torch.tensor是pytorch的一个普通函数,用于生成指定属性的张量。

也可以说:两者都是用于创建张量。区别在于

  • 1、参数不同。
  • 2、tensor创建的Tensor,其data域与原data参数不共享内存。

torch.tensor()介绍

torch.tensor(data, *, dtype=None, device=None, requires_grad=False, pin_memory=False) → Tensor
参数说明:

  • data (类似数组的数据) – 该数据用于对Tensor进行初始化. 可以是list(列表), tuple(元组), NumPy ndarray(numpy多维数组), scalar(标量), 以及其他很多类型的数据
  • dtype (生成的张量类型) 若该参数缺省,则与data的类型保持一致。
  • device 标识张量在哪种CPU/CUDA设备上运算的标识
  • requires_grad (bool类型) – 若为True,张量会记录其进行的操作。
import torch as t

arr1 = [1.0,2.0]
a = t.tensor(arr1,requires_grad=True)

note: 这里的arr1必须是浮点数,否则会报错。(想想为什么?)

print(a)
arr1[0] = 2
print(a)
tensor([1., 2.], requires_grad=True)
tensor([1., 2.], requires_grad=True)

torch.tensor()创建的张量时为深度拷贝,与原对象不共用内存。

复杂的参数可以这样写:

t.tensor([[ 0.1111, 0.2222, 0.3333]], dtype=torch.float64, device=’cuda:0’)

至于Tensor的创建,参考文章:Tensor的创建与调整