动手学深度学习(pytorch)-总结1

断断续续在b站看了三个星期的《动手学深度学习》,这门课真的是太棒了,特别感谢李沐大神!
总结一下目前的一些收获。

一、 数据处理

一些基本的数据处理,常用pytorch语法
  • torch常用语法:
    • 创建张量:
      • torch.arange(n).reshape()
      • torch.zeros((ceng, row, col))
      • torch.tensor(), 怎么创建/辨别二/三维
    • 拼接张量:
      • torch.cat((x, y), dim=0/1)
    • 基本运算:
      • 求幂 x ** y
      • 求和但是保持维度 x.sum(axis = , keepdim = True)
      • 累加 x.cumsum(axis = )
      • 求L2范数: torch.norm(tensor)
      • L1 范数 torch.abs().sum()
    • others in python
      • 逻辑判断 x == y
      • 重新赋值 x= x + y 和 切片赋值 x[:] = y + z 都相当于浅拷贝

二、线性代数+矩阵计算+自动求导

矩阵一个基本求导,反向梯度如何实现?一些Code技巧
  • 矩阵求导,矩阵-标量之间求导,有一个图,最常用的是XTA对X求导,结果为AT.
  • 理解反向传播算法,用于自动求导。有一个计算图可以直观表示出来。(很多框架都用了自动求导)。
    求反向传播梯度: 清楚自变量梯度——>定义函数——>调用backward

三、线性回归+基础优化算法

线性回归模型是什么?参数有哪些?一个模型训练的全过程是什么?
  • 造轮子:
    1. 数据下载和处理。人工构建数据集()
    2. 需要的预备函数:返回batch的迭代器
    3. 模型定义:模型+损失函数(Code1)+优化算法
    4. 训练:初始化参数+定义参数(lr, num_epoch等)+循环训练
  • 损失函数:均方损失
  • 优化函数:小批量随机梯度下降SGD
  • 框架实现:
    • torch的data,nn包
    1. 模型:nn.Sequential()
  • Code
    • 1 x.reshape(y.shape)
    • 分不清行/列向量时: x.reshape((-1, next_dim))

你可能感兴趣的:(机器学习,深度学习,pytorch,人工智能)