-
张量概念及创建
1.1 张量概念
张量就是一个多维数字,是标量、向量、矩阵的高维拓展
Pytorch 0.4.0后,Variable 和 Tenasor 合在了一起
1.2 张量创建
1.2.1 直接创建
torch.tensor()
和torch.from_numpy(ndarry)
从 numpy 创建 tensor
1.2.2 依据数值创建
torch.zero()
根据 size 创建全 0 张量
torch.zero_like()
根据 input 创建全 0 张量
torch.ones()
和torch.ones_like()
创建全1向量
torch.full()
和torch.full_like()
创建指定数据张量
torch.arange()
创建等差的1维张量
torch.linspace()
创建均分的1维张量
torch.longspace()
创建对数均分1维张量
torch.eye()
创建单位对角矩阵(2维张量)
1.3 依概率分布创建张量
torch.normal
生成正态分布(高斯分布))
4种模式:mean 和 std 分别为标量和张量情况
torch.randn()
和torch.randn_like()
生成标准正态分布
torch.rand()
和torch.rand_like()
生成在 [ 0, 1 ) 上的均匀分布
torch.randint()
和torch.randint_like()
生成在 [ low, height ) 上的均匀分布
torch.randperm()
生成从 0 到 n-1 的随机排列,n为张量长度
torch.bernoulli()
以 input 为概率,生成伯努利分布(0-1分布,两点分布) -
张量操作及运算
2.1 拼接与切分
torch.cat()
将张量按维度dim进行拼接
torch.stack()
在新创建的维度dim上进行拼接
torch.chunk()
将张量按维度dim进行平均切分
torch.split()
将张量按维度dim进行切分
2.2 索引
torch.index_select()
在维度dim上按index索引数据
torch.marked_select()
按mask中的True进行索引
2.3 变换
torch.reshape()
变换张量形状【共享内存】
torch.transpose()
交换张量的两个维度
torch.t()
2位张量的转置,对于举证而言
等价于torch.transpose(input,0,1)
2.4 数学运算
加减乘除、对数,指数,幂函数,三角函数
线性回归
分析一个变量和另外多个变量之间的关系方法
如:y = wx + b
因变量:y 自变量:x 关系:线性 分析:求解w,b
求解步骤:
1)确定模型
2)选择损失函数
3)求解梯度并更新w, b
计算图与动态图
主要表述运算的有向无环图
元素:结点和边,分布表示数据和运算
参考链接: https://blog.csdn.net/dragongiri/article/details/107371919autogradn 和逻辑回归