张量操作
一、张量拼接
torch.cat(#将张量按维度dim进行拼接
tensor,#张量序列
dim=0,#要拼接的维度
out=None
)
torch.stack(#在新创建的维度dim上进行拼接
tensor,
dim,
out=None
)
二、张量切分
torch.chunk(#将张量按维度dim进行平均切分,返回值为张量列表,若不能整除最后一份张量小于其他张量
input,#要切分的张量
chunks,#要切分的份数
dim=0#要切分的维度
)
torch.split(#将张量按维度dim进行切分,返回值为张量列表
tensor,
solit_size_or_sections,@为int时,表示每一份的长度,为list时按list元素切分
dim=0
)
三、张量索引
torch.index_select(#维度dim上,按index索引数据,返回值为依索引数据拼接的张量
input,#要索引的张量
dim,#要索引的维度
index,#要索引数据的序号
out=None
)
torch.masked_select(#按mask中的True进行索引
input,#要索引的张量
mask,#与input同形状的布尔类型张量
out=None
)
四、张量变换
torch.reshape(#变换张量形状,当张量在内存中是连续时,新张量与input共享数据内存
input,#要变换的张量
shape#新张量的形状
)
torch.transpose(#交换张量的两个维度
input,#要变换的张量
dim0,#要变换的维度
dim1#要变换的维度
)
torch.t(input)#2维张量转置,对矩阵而言等价于torch.transpose(input,0,1)
torch.squeeze(#压缩长度为1的维度(轴)
input,
dim=None,#若为None,移除所有长度为1的轴,若指定维度,当且仅当该轴长度为1时,可以被移除
out=None
)
torch.unsqueeze(#依据dim扩展维度
input,
dim,#扩展的维度
out=None
)
张量数学运算
一、加减乘除
torch.add()
torch.addcdiv()
torch.addcmul()
torch.sub()
torch.div()
torch.mul()
torch.add(#逐元素计算input+alpha*other
input,#第一个张量
alpha=1,#乘项因子
other,#第二个张量
out=None
)
torch.addcmul(
input,
value=1,
tensor1,
tensor2,
out=None
)
二、对数、指数、幂函数
torch.log(input,out=None)
torch.log10(input,out=None)
torch.log2(input,out=None)
torch.exp(input,out=None)
torch.pow()
三、三角函数
torch.abs(input,out=None)
torch.acos(input,out=None)
torch.cosh(input,out=None)
torch.cos(input,out=None)
torch.asin(input,out=None)
torch.atan(input,out=None)
torch.atan2(input,other,out=None)
线性回归
概念
线性回归是分析一个变量与另一个(多个)变量之间关系的方法
因变量:y
自变量:x
关系:线性 y = wx + b
分析:求解w b
求解步骤
1、确定模型 Model : y = wx + b
2、选择损失函数 MSE:
3、求解梯度并更新w b
w = w - LR * w.grad
b = b - LR * w.grad