Pytorch与autograd(自动计算梯度)
- 导数主要描述的是一元函数,对于高维多元变量的函数,我们在描述这个函数的时候就没有办法通过一条线来描述,就通常描述为一个曲面/超平面(高维)
- 梯度:函数在A点无数个变化方向中变化最快的那个方向。(求偏导)
- 无监督学习:聚类 / PCA 有监督学习:LDA / SVM / DeepLearning 半监督学习(弱标签:标签不准确 伪标签 一半有标签 一半没标签)可以从半监督的角度来写论文~
- Variable is Tensor
- 每个tensor通过requires_grad来设置是否计算梯度(用来冻结某些层的参数,常用来只更新某些层的参数)
- 复合函数求偏导:链式法则
关于autograd的几个概念
- PyTorch中只有是一个叶子张量才可以计算其梯度(这里就只有x有梯度值,而y没有)
- 通过调用backward函数,我们可以完成对叶子结点的这些tensor的自动梯度的计算
- 还有相关的函数:enable_grad / no_grad / set_grad_enabled
Pytorch与nn库
- nn.Parameter 定义其是一个可训练的参数 或通过register_parameter来注册一个参数
- nn.ParameterList & nn.ParameterDict
- nn.conv2d是一个类,而touch.nn.functional.conv2d是一个函数
- model.parameters() / model.buffers() / model.state_dict() / model.modules() / forward() / to()
- state_dict() & load_state_dict(). 来完成对模型的保存和加载
Pytorch与visidom(对中间结果进行保存和可视化)
Pytorch与tensorboardX / torchvision
- tensorboardX也是用来数据可视化的工具。