autoDL实践经验------1

总结一下实际使用autoDL的经验:

提一嘴:跑的还是之前博客里的yolov3。

1、应保留预训练权重文件,但训练后的权值文件不用上传,因为太费时间。

2、昨日步骤:首先登陆filezilla然后把数据集和python文件上传上去,然后在vscode上登陆,安装所要依赖pip install -r requirements.txt(ubuntu下依旧可以用pip),再把数据集放到VOCdevkit下,其实放别的地方也行,可以改路径的,但一定要注意统一格式VOC2007下Annotations、JPEGImages、ImageSet/Main。这里如果内存足够的话,我推荐把python项目和数据集都放系统盘,因为关机后保存镜像就可以在别的主机上继续用。然后运行voc_annotation.py和train.py。这里值得一提的是:filezilla看不到txt等文件,一般用vscode查看文件。

3、主要修改参数:cuda、classes_path、显存大的话freeze_batch_size可以调大,学习率freeze_Ir也可以设置大一些,内存大的话num_workers可以设置大一些、路径。其中查看路径可以用pwd指令:

4、 注意一点,当前设置的参数,在未来跑别的模型的时候要保持一致,特别是那个train.txt和val.txt。

5、Titanxp我发现其实性能跟Geforce 960MX差不多,1秒1张图。

别人的说法:(暂未验证)

6、并不是很推荐多GPU工作,因为需要相关代码支持。

7、每个区的网盘是相通的。文件夹下有一个(autoDlnes?)只要把数据放到那个网盘里,同一个区的实例就全部可以看到。

8、关机不会重新开始,一个实例可以保存30天

9、显卡训练速度:用命令去查卡的运行状态,分为两个部分:一个是算力的应用部分,用百分比显示,还一个显存的占用部分。显存的占用比较低时,就把batch size调大。如果是算力占用较低:50%-60%,那就要把data loader下的number worker(线程)调大。

理论补充:epoch是指所有数据送入网络完成一次前向计算及反向传播的过程。batch是每次送入网络中训练的一部分数据,batch size就是每个batch中训练样本的数量。batch=iterations

简单一句话说就是,我们有2000个数据,分成4个batch,那么batch size就是500。运行所有的数据进行训练,完成1个epoch,需要进行4次iterations。

新的idea:

1、昨天用vscode确实很舒服,但如果用vscode来运行程序,那必须挂着vscode,那这样就不能多线程去ubuntu干别的事了。

新思路:用jupyterlab试试,就是我用filezilla和vscode把前面都处理完,最后切jupyterlab去完成最后的训练。

2、用网盘传输数据,AutoPanel。

3、把数据放系统盘去打包一个镜像,和2一样都是来解决传数据集太慢的问题。

4、调整代码,抬高GPU利用率。

你可能感兴趣的:(深度学习)