ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Pytorch Tutorial学习笔记(1)

2021-10-31 11:30:00  阅读:253  来源: 互联网

标签:tensor torch 张量 笔记 Pytorch ones print Tutorial Tensor


一、Tensor 张量

Tensor张量类似于数组和矩阵,用来表示模型的输入、输出和模型参数,即用来表示模型中的数据。Tensor可以在GPU上加速计算。

二、Tensor Initialization 张量初始化

有以下几种方式初始化一个张量:

  1. 直接通过数据
data = [[1, 2], [3, 4]]
x_data = torch.tensor(data)
  1. 从Numpy array数组
np_array = np.array(data)
x_np = torch.from_numpy(np_array)
  1. 从另外一个Tensor
x_ones = torch.ones_like(x_data) # 产生和x_data大小和类型一样的全为1的张量
print(f"Ones Tensor: \n {x_ones} \n")

x_rand = torch.rand_like(x_data, dtype=torch.float) # 产生大小和x_data一样,数据类型为float的每个元素随机的张量
print(f"Random Tensor: \n {x_rand} \n")
  1. 产生随机数或者常数的张量
shape = (2, 3,)
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)

print(f"Random Tensor: \n {rand_tensor} \n")
print(f"Ones Tensor: \n {ones_tensor} \n")
print(f"Zeros Tensor: \n {zeros_tensor}")

三、Tensor Attributes张量属性

tensor = torch.rand(3, 4)

print(f"Shape of tensor: {tensor.shape}") # 张量的大小
print(f"Datatype of tensor: {tensor.dtype}") # 张量的数据类型
print(f"Device tensor is stored on: {tensor.device}") # 张量所在设备(GPU或者CPU)

四、Tensor Operations张量的操作

可以操作Tensor的函数(数学运算、随机取样等)参考官网网址:操作tensor函数的官方说明

  1. 如果有安装GPU版本的pytorch,可以把张量转移到GPU上面计算
if torch.cuda.is_available():
  tensor = tensor.to('cuda')
  print(f"Device tensor is stored on: {tensor.device}")
  1. 跟numpy类似,对tensor索引和切片
tensor = torch.ones(4, 4)
tensor[:,1] = 0
print(tensor)
  1. 张量的乘法
# 元素对应相乘
tensor.mul(tensor)
# 另一种同样的写法
tensor * tensor
# 矩阵乘法
tentor.matmul(tensor.T) # tensor 乘以 tensor的转置
# 另一种相同的写法
tensor @ tensor.T
  1. In-place operations 就地操作:意思是操作完之后该张量会被替换
tensor.add_(5) # tensor自加5
# tensor.copy_(y) # tensor变成y
tensor.t_() # tensor变成其转置

五、Bridge with Numpy 与Numpy连接

在CPU上的Tensor可以跟Numpy array共用内存位置,两者会一起改变。

# 用torch产生t 用t产生n
t = torch.ones(5)
print(f"t: {t}")
n = t.numpy()
print(f"n: {n}")

# 两者会一起改变
t.add_(1)
print(f"t: {t}")
print(f"n: {n}")

# 用numpy产生n,用n产生t
n = np.ones(5)
t = torch.from_numpy(n)

# 两者会一起改变
np.add(n, 1, out=n)
print(f"t: {t}")
print(f"n: {n}")

参考网址:Pytorch Tutorial

标签:tensor,torch,张量,笔记,Pytorch,ones,print,Tutorial,Tensor
来源: https://blog.csdn.net/king_ham/article/details/121057770

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有