【PyTorch】Tensor相关操作记录

最近毕业论文写得差不多了,就打算把一些平时经常会用到知识记录一下,方便以后忘了可以看看。先把本文参考的资料列在前面:

一、数据类型变换

(一)其他类型转换为Tensor类型

创建Tensor有四种方式:

  1. torch.Tensor(data)Tensor类的构造函数;数据类型只能是float32;不共享内存。
  2. torch.tensor(data):数据类型根据传入的数据而定,或通过传入dtype来指定;不共享内存。
  3. torch.as_tensor(data):根据传入数据或传入dtype来决定数据类型;共享内存。
  4. torch.from_numpy(data):仅接受np.array的输入数据;根据传入数据或传入dtype来决定数据类型;共享内存。

综上,更推荐使用torch.tensor(data)torch.as_tensor(data)来创建Tensor。

> data = np.array([1,2,3])

> o1 = torch.Tensor(data)
> o2 = torch.tensor(data)
> o3 = torch.as_tensor(data)
> o4 = torch.from_numpy(data)

> print(o1)
> print(o2)
> print(o3)
> print(o4)
tensor([1., 2., 3.])
tensor([1, 2, 3], dtype=torch.int32)
tensor([1, 2, 3], dtype=torch.int32)
tensor([1, 2, 3], dtype=torch.int32)

> print(o1.dtype)
> print(o2.dtype)
> print(o3.dtype)
> print(o4.dtype)
torch.float32
torch.int32
torch.int32
torch.int32

# 是否共享内存
> print('old:', data)
old: [1 2 3]

> data[0] = 0

> print('new:', data)
new: [0 2 3]

> print(o1)
> print(o2)
> print(o3)
> print(o4)

tensor([1., 2., 3.])
tensor([1, 2, 3], dtype=torch.int32)
tensor([0, 2, 3], dtype=torch.int32)
tensor([0, 2, 3], dtype=torch.int32)

(二)Tensor类型转换为其他类型

  • Tensor → Scaler
  • Tensor → List
  • Tensor → Array
> t = torch.tensor([
    [1,2,3],
    [4,5,6],
    [7,8,9]
], dtype=torch.float32)

> t.mean()
tensor(5.)

# Tensor → Scaler
> t.mean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值