目录
前言
PyTorch 是一个 Python 深度学习框架,学习PyTorch在当今深度学习领域至关重要。PyTorch以其动态计算图、易于使用的API和强大的社区支持,成为科研人员、数据科学家及工程师的首选框架。它不仅简化了模型设计、训练与部署流程,还极大地提高了实验效率和创新能力。掌握PyTorch,能够加速科研进度,促进项目落地,是在AI时代保持竞争力的关键技能之一。满满的都是干货,希望能帮助到大家!
1. 张量的创建
1.1 张量的基本概念
-  PyTorch 是一个 Python 深度学习框架,它将数据封装成张量(Tensor)来进行运算。 
-  PyTorch 中的张量就是元素为同一种数据类型的多维矩阵。 
-  PyTorch 中,张量以 "类" 的形式封装起来,对张量的一些运算、处理的方法被封装在类中。 
1.2 张量的基本创建
-  torch.tensor 根据指定数据创建张量 
-  torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量 
-  torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量 
1.3 创建线性和随机张量
-  torch.arange 和 torch.linspace 创建线性张量 
-  torch.random.init_seed 和 torch.random.manual_seed 随机种子设置 
-  torch.randn 创建随机张量 
1.4 创建全01张量
-  torch.ones 和 torch.ones_like 创建全1张量 
-  torch.zeros 和 torch.zeros_like 创建全0张量 
-  torch.full 和 torch.full_like 创建全为指定值张量 
1.5 张量的类型转换
-  tensor.type(torch.DoubleTensor) 
-  torch.double() 
1.6 小节
在本小节中,我们主要学习了以下内容:
-  创建张量的方式 -  torch.tensor 根据指定数据创建张量 
-  torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量 
-  torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量 
 
-  
-  创建线性和随机张量 -  torch.arange 和 torch.linspace 创建线性张量 
-  torch.random.init_seed 和 torch.random.manual_seed 随机种子设置 
-  torch.randn 创建随机张量 
 
-  
-  创建01张量 -  torch.ones 和 torch.ones_like 创建全1张量 
-  torch.zeros 和 torch.zeros_like 创建全0张量 
-  torch.full 和 torch.full_like 创建全为指定值张量 
 
-  
-  张量元素类型转换 -  tensor.type(torch.DoubleTensor) 
-  torch.double() 
 
-  
2. 张量的数值计算
2.1 张量基本运算
基本运算中,包括 add、sub、mul、div、neg 等函数, 以及这些函数的带下划线的版本 add_、sub_、mul_、div_、neg_,其中带下划线的版本为修改原数据。
2.2 阿达玛积
阿达玛积指的是矩阵对应位置的元素相乘. 可以使用乘号运算符、也可以使用 mul 函数来完成计算。
2.3 点积运算
点积运算要求第一个矩阵 shape: (n, m),第二个矩阵 shape: (m, p), 两个矩阵点积运算 shape 为: (n, p)。
-  运算符 @ 用于进行两个矩阵的点乘运算 
-  torch.mm 用于进行两个矩阵点乘运算, 要求输入的矩阵为2维 
-  torch.bmm 用于批量进行矩阵点乘运算, 要求输入的矩阵为3维 
-  torch.matmul 对进行点乘运算的两矩阵形状没有限定. -  对于输入都是二维的张量相当于 mm 运算. 
-  对于输入都是三维的张量相当于 bmm 运算 
-  对数输入的 shape 不同的张量, 对应的最后几个维度必须符合矩阵运算规则 
 
-  
2.4 指定设备运算
PyTorch 默认会将张量创建在 CPU 控制的内存中, 即: 默认的运算设备为 CPU。我们也可以将张量创建在 GPU 上, 能够利用对于矩阵计算的优势加快模型训练。将张量移动到 GPU 上有两种方法:
-  使用 cuda 方法 
-  直接在 GPU 上创建张量 
-  使用 to 方法指定设备 
2.5 小节
在本小节中,我们主要学习的主要内容如下:
-  张量基本运算函数 add、sub、mul、div、neg 等函数, add、sub、mul、div、neg_ 等 inplace 函数 
-  张量的阿达玛积运算 mul 和运算符 * 的用法 
-  点积运算: -  运算符 @ 用于进行两个矩阵的点乘运算 
-  torch.mm 用于进行两个矩阵点乘运算, 要求输入的矩阵为2维 
-  torch.bmm 用于批量进行矩阵点乘运算, 要求输入的矩阵为3维 
-  torch.matmul 对进行点乘运算的两矩阵形状没有限定. -  对于输入都是二维的张量相当于 mm 运算. 
-  对于输入都是三维的张量相当于 bmm 运算 
-  对数输入的 shape 不同的张量, 对应的最后几个维度必须符合矩阵运算规则 
 
-  
 
-  
-  将变量移动到 GPU 设备的方法,例如: cuda 方法、直接在 GPU 上创建张量、使用 to 方法指定设备 










