训练yolov3首先配置了win10+cuda+cudnn+vs2017+opencv+darknet,在自己的笔记本上训练,超级超级慢,笔记本CPU是i5,内存4G,显存2G。

实话实话哦,训练了48小时多,勉强训练出来了一个yolo-obj-100.weight权重文件。

但是实在不能用自己的电脑跑了,内存太小,跑代码不但慢,而且还占了所有内存,不能进行其他工作。(顺带我又安装了一个4G的内存条。自己笔记本有卡槽位置,因为CPU太差,就没有必要安装8G内存条了。)

然后多方考虑,阿里云、DBC GPU服务器、等各种。最终选了Google Colab。原因有二:

1、免费,别的花钱买训练时间,不知道自己要用几天服务器。

2、不需要配置,,阿里云虽然学生9.9一个月,但我毕设还要3天就要查重,为了尽快跑出来结果,没时间去阿里云配置环境了(大家千万不要学我,浪100天,搞毕设10天。。。。我太惨了,真的 。)

然后再找到了这篇博文说的比较仔细,但也有bug。

  1. 第一步挂载的时候,用这个代码
from google.colab import drive
drive.mount('/drive')
#参考博文
  1. 其次的bug看下图。
  2. 然后有个bug,就是最后的时候。我的代码是:
!./darknet detector train data/obj.data cfg/yolo-obj.cfg darknet53.conv.74 -dont_show | tee  /drive/My\ Drive/yolov3/log.txt

#>>表示的输出是追加输出,不覆盖之前的信息。。>覆盖掉之前的信息。

!!!!!这个-dont_show我知道了。没有这个,执行这个语句,终端不会训练,有时会给你提示加上-dont_show。有时候就不提示。所以,下次看到这个的老铁们,加上就对了。

#后面的 | 这个符号是管道符,tee指令是同时输出到终端和log文件里面。
  1. !!!!!这个-dont_show我知道了。没有这个,执行这个语句,终端不会训练,有时会给你提示加上-dont_show。有时候就不提示。所以,下次看到这个的老铁们,加上就对了。
  2. 上述2、的代码里面有个/drive/My\ Drive/yolov3/log.txt,其中你复制路径的时候只能复制到/drive/My Drive/yolov3/,要记得手动加一个转义字符\,表示\后面的空格不是空格,是个字符。