Retinanet训练自己的数据(3):模型训练

  准备好数据以及模型正确安装之后,就可以就行模型训练了。

  定位到模型所在的文件夹,老办法,打开powershell,在命令行输入:(这里的命令只适用于自己的训练集,对于Pascal或者coco数据集,请参见官方文档)

python keras_retinanet/bin/train.py csv /path/to/csv/file/containing/annotations 
 /path/to/csv/file/containing/classes

  命令行中第一个csv表示用自己的训练集去训练模型。 /path/to/csv/file/containing/annotations表示自己制作的annotation.csv 所在的路径,比如:my_data/annotation.csv。同样, /path/to/csv/file/containing/classes表示class.csv所在的路径,如:my_data/class.csv。如果没什么意外,模型就开始训练。接下来介绍一下可能会遇到的错误:

1.数据错误

  就是第一步数据制作时,如果没用debug.py进行测试,这里就会报错,对照错误去改就行了。

2.网络错误

  一开始我没想到会出现这方面的问题,直到

Retinanet训练自己的数据(3):模型训练_第1张图片

  看箭头所指的位置,是正在下载预训练模型,也就是backbone用到的模型,我选的是resnet50,这里对应的是/keras_retinanet/models/resnet.py  文件中的44行。一开始不知道是因为网络,以为需要FQ,结果我去这个网址下载模型,发现重新换个网络就OK了。(教研室网太渣)。

Retinanet训练自己的数据(3):模型训练_第2张图片

  如果网络没问题,就如上开始下载模型。

3.初始化参数

  耐心等待(主要是网速太慢),模型下载完就开始创建模型,初始化参数:

Retinanet训练自己的数据(3):模型训练_第3张图片

这部分基本不会出问题。

4.多线程出错

  上一步完成之后,就开始进行训练。可能会碰到的错误:

Retinanet训练自己的数据(3):模型训练_第4张图片

  看错误信息,第一个Epoch没问题,当启动第二个线程的出错。谷歌,StackOverflow找了一大圈,还是没解决,最后不得已,只能关掉多线程:

在/keras_retinanet/bin/train.py 的415行,  将workers的默认值改为0,即关闭了多线程。(如果知道怎么进行多线程运算,还望告知,thx)。

5.开始训练

  改完上面的一些bug之后,模型终于跑起来啦:

Retinanet训练自己的数据(3):模型训练_第5张图片

在train.py文件夹里,你可以在这里设置一些默认的参数,比如多少个epoch,一个epoch迭代多少次。 

 

 

 

 

你可能感兴趣的:(机器学习,Python,Deep,Learning)