Pytorch学习笔记

2020.6

写在前面

稍微得空,整理或者说记录一下pytorch学习过程中的心得与体会。小白的学习笔记,大神请慎入!

本文暂时只记录了部分常用函数,若需要更具体说明,请访问pytorch官网或者阅读中文文档

本文主要讲解pytorch完成深度学习的步骤和程序实现,对一些原理不会过多深入,若需学习原理,请参考其他理论性教材,如斯坦福大学公开课等。

关于yaml文件参数设置

其实这一点无关pytorch,甚至无关深度学习。我们在较大一些的工程项目中,可能经常会存在较大的参数量,如果任由其渗透在工程文件的边边角角,我们修改参数时需要各个文件寻找,很有可能发生遗漏,甚至可能会一不小心造成误操作,改动了某个参数引发一些潜在的bug,这是非常危险的。为了有效避免这种情况,我们习惯性地将必要调整的参数整合在一个文件中,在这个文件中统一进行修改,甚至可以通过选择读取不同文件的不同参数完成不同的任务。那么,关于参数的读取,就是本节的内容。

  • 关于YAML

    YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。(摘自阮一峰先生的博客)

    其基本规则如下:

    • 大小写敏感

    • 严格缩进表示层级关系

    • 缩进时不允许使用tab,只允许使用空格(这一点存疑,来自网络,不过个人使用tab好像也可以)

    • 缩进的空格数不重要,主要相同层级的元素左对齐即可

    • ‘#’表示注释,注释该行(同python)

    示例:

    common:
        workers: 4
        batch_size: 32

python文件中参数的获取

  • 引入必要的包

  • 核心语句示例

  • 参数的读取与打印示例

  • 命令行调用示例

pytorch与其他数据互转

  • pytorch与numpy数据互转

  • pytorch与python普通类型数据互转

pytorch定义variable计算梯度

pytorch激活函数

pytorch损失函数

pytorch优化器

pytorch网络常用到的基本模块

pytorch定义网络基本步骤

pytorch训练(反向传播)步骤

pytorch网络的保存

pytorch网络的恢复

pytorch批量训练

pytorch使用GPU加速

pytorch实现一个简单的CNN网络示例

(源码来自莫烦python)

一些注意点(持续更新)

  1. nn.CrossEntropyLoss()的真实标签不是不同类标签的概率,而是真实标签的索引。这与tensorflow是有所不同的。

  2. 通过cv2.imread()获取的图片通道顺序与卷积的矩阵形状顺序不一致,需要对获取的数据进行reshape(C,h,w)。

Last updated

Was this helpful?