pytorch中tensor的常用操作

近日开始学习pytorch编程,对其中常用到的tensor操作进行简单整理,方便自己查取,如果更好的方法,欢迎留言。

  1. tensor的初始化

首先定义tensor的大小,记为size

# 支持多维的size
size = (dim1, dim2, ...)

常用的初始化方法

# a 返回大小为size的一个空tensor
a = torch.empty(size)

# b 返回大小为size的一个全为0的tensor
b = torch.zeros(size)
# b 返回大小和input tensor大小一样的一个全为0的tensor
b = torch.zeros_like(input)

# c 返回大小为size的一个全为1的tensor
c = torch.ones(size)
# c 返回大小和input tensor大小一样的一个全为1的tensor
c = torch.ones_like(input)

# d 返回大小为size的由[0,1)内的均匀分布随机数生成的一个tensor 
d = torch.rand(size)
# d 返回大小和input tensor大小一样的由[0,1)内的均匀分布随机数生成的一个tensor
d = torch.rand_like(input)
  1. tensor的拼接

有时候需要对tensor按照某一维进行拼接,操作非常简单

# 将tensor a和tensor b按照第dim_k维进行拼接
a = torch.cat((a, b), dim_k)
  1. tensor的文件存取

训练得到的tensor可以存入文件,方便后续读取使用,避免每次花时间重新训练
思路为:tensor --> numpy --> save numpy --> load numpy -->tensor

 import numpy as np
 
 # step 1. ts_a为一个tensor,转化为numpy格式,存为np_a
 np_a = ts_a.numpy()
 # step 2. 存储numpy,文件名记录在变量file_embns中(后缀.npy)
 np.save(file_embns, np_embns)
 # step 3. 读取numpy,返回numpy格式,存为np_a
 np_a = np.load(file_embns)
 # step 4. np_a为一个numpy,转化为tensor格式,存为ts_a
 ts_a = torch.from_numpy(np_a)
  1. tensor与python数据类型转化
#Tensor ----> 单个Python数据,data为Tensor变量且只能为包含单个数据
data.item() 
#Tensor ----> Python list,data为Tensor变量,返回shape相同的可嵌套的list
data.tolist()

未完待续、随时更新…

发布了18 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hyluglare/article/details/88551006