2019-12-09
今天开始阅读师兄给的deeplab项目代码,加油加油加油。
1、python中的命令行参数解析模块 —— argparse
学会如何添加必选变量,可选变量,设置变量缩写,帮助信息,指定读入的变量类型,限制变量的输入范围choices,设置默认变量等。
参考:https://docs.python.org/3/howto/argparse.html#introducing-positional-arguments
2、sync-bn ——待解惑
貌似是当使用多个gpu的时候,需要同步BN层,具体为什么我还没有搞明白
3、batchsize的重要性
batch-size过大,下降方向为整体方向,学习不到足够的东西,batch-size过小,每次下降方向横冲直撞,其实会偏向每个都有的特征方向,最终导致学习不到东西,无法达到预期准确率。只有合理的batch-size才能快准。
这一部分有一点难以消化,于是又参考了知乎文章:https://www.zhihu.com/question/32673260/answer/71137399
4、shuffle
打乱数据集很重要。简单的实现方法有——用random函数打乱index
复杂的方法有:https://blog.csdn.net/kaede1209/article/details/81953262
5、随机梯度下降SGD的学习
参考讲解:https://www.zhihu.com/question/264189719
https://zhuanlan.zhihu.com/p/28060786
码住一篇机器学习优化方法的综述《Optimization Methods for Large-Scale Machine Learning》,下载至Onedrive中了。
torch.optim中提供了SGD的使用方法,还有Adam等:https://pytorch.org/docs/0.4.1/optim.html