玩deep learning快一年了,用过keras,后来因为pytorch的代码多而且易懂,又用了pytorch,走了很多弯路,总结如下,供后来人参考。
陆陆续续看了很多内容。
keras,pytorch ,pytorch_lightning,paperwithcode,catalyst,chika,tqdm,torchsummary,torchtoolboxs,
monai,
mnist,cifar10,msd,kaggle,google colab
想要用tpu的同学,貌似用torch还比较难实现,虽然有例子,但环境符合要求还比较难。
先来做mnist实验吧。
实验过程略。。。
用pytorch得重复得写train step
用了lightning后还是得重复的写train step
keras不用写train step
用pytorch的时候,常常会对train step进行一些修改。也常在train的时候出错。现在想想对train step进行修改,无非是数据格式不对。偶尔也有sam等二次优化器,会用到train step阶段的修改。
还有transform和dataloader,pytorch
keras已经集成在tensorflow中。from tensorflow import keras
现成的东西pytorch多很多。
网络结构修改这块,pytorch确实很方便。
colab的cpu性能一般。tpu的最大问题不像cpu到gpu可以无缝切换。要改动的地方还是挺多的。而且有些功能对tpu的支持不好。所以暂时还是放弃tpu吧。除非编程能力特别强。
要平衡cpu和gpu的算力,调整batch_size,大的batch_size 稍微降低正确率。
数据增强不能太离谱,比如随机旋转5度,可能比随机旋转15度,要好。
如果不能拟合,不妨调整学习率和网络模型大小,
提高泛化能力,先考虑batch_size ,数据增强,再考虑网络结构,