一、张量的操作:拼接、切分、索引和变换
1、拼接
(1)torch.cat() 功能:将张量按照维度dim进行拼接(不会扩张)
-
- tensors:张量序列
- dim:要拼接的维度
(2)torch.stack() 功能:在新创建的维度dim上进行拼接(会扩张张量的维度)
-
- tensors:张量序列
- dim:要拼接的维度
(3)torch.chunk() 功能:将张量按维度dim进行平均切分 返回值:张量列表
注意:若不能整除,最后一份张量小于其他张量
-
- input:要切分的张量
- chunks:要切分的份数
- dim:要切分的维度
(4)torch.split() 功能:切分
-
- tensor:要切分的张量
- split_size_or_sections:为int时,表示每一份的长度;为list时,按list元素切分
- dim:要切分的维度
2、索引
(1)torch.index_select() 功能:在维度dim上,按index索引数据 返回值:依index索引数据拼接的张量
-
- index:要索引的张量
- dim:要索引的维度
- index:要索引数据序号
(2)torch.masked_select() 功能:按mask中的True进行索引 返回值:一维张量 通常用于筛选数据
-
- input:要索引的张量
- mask:与input同形状的布尔类型张量
3、张量变换
(1)torch.reshape() 功能:变换张量形状 注意事项:当张量在内存中是连续时,新张量与input共享数据内存
-
- input:要变换的张量
- shape:新张量的形状
(2)torch.transpose() 功能:交换张量的两个维度
-
- input:要交换的张量
- dim0:要交换的维度
- dim1:要交换的维度
(3)torch.t() 功能:2维张量转置,对矩阵而言,等价于torch.transpose(input, 0 , 1)
(4)torch.squeeze() 功能:压缩长度为1的维度(轴)
-
- dim:若为None,移除所有长度为1的轴;若指定维度,当且仅当该轴长度为1时,可以被移除;
(5)torch.unsqueeze() 功能:依据dim扩展维度
-
- dim:扩展的维度
二、张量的数学运算
1、加减乘除
2、对数、指数、幂函数
3、三角函数
(1)torch.add() 功能:逐元素计算 input + alpha * other
-
- input:第一个张量
- alpha:乘项因子
- other:第二个张量
pythonic:
(2)torch.addcdiv()
(3)torch.addcmul()
三、线性回归
线性回归是分析一个变量与另一个变量之间关系的方法
因变量:y 自变量:x 关系:线性
y = wx + b
分析:求解w,b
求解步骤:
1、确定模型
Model: y = wx + b
2、选择损失函数
MSE:1/mΣ(yi - yiˆ)2
3、求解梯度并更新w,b
w = w - LR * w.grad
b = b - LR * w.grad
原文地址:https://www.cnblogs.com/cola-1998/p/11679380.html