我的小程序:
基于pytorch1.0的SSD模型地址:
https://github.com/lufficc/SSD
首先安装anaconda,anaconda下载地址为:
Anaconda | Anaconda Distribution
因为该SSD模型基于python3,所以下载python3.7版本的anaconda。下载的下来的文件是一个.sh文件,直接在终端输入文件名.sh运行安装。
anaconda安装完成后,基本就是按github上的安装步骤进行安装:
安装过程中碰到的主要问题是,有些包下载太慢,无法下载成功,下载到一半就断了。
如下载pytorch的时候,运行:conda install pytorch torchvision -c pytorch
得到下面的结果:
解决办法是到pytorch的官网按自己的需求用pip安装或先把pytorch的.whl文件下载下来再安装(pytortch官网:PyTorch)。
上图中还有两个包没下载成功,一个是python3.7.2,另一个是cudatoolkit。这两个包看自己需求,因为我机器上本身已经安装了python3.7.1,所以对于安装python3.7.2不是必须的,可以忽略。另外自己电脑只能用cpu跑,所以也不用安装cudatoolkit。所以这两个安装失败的包对整个任务没影响,那就继续往下。
这里也是一点反思:不要追求完美主义,灵活的看待问题。上面虽然有两个包没安装成功,但其实对全局没有任何影响,完全可以忽略,继续推进整个任务。当时安装的时候,看着很不爽,一直纠结怎么安装成功,浪费了很多时间。
安装opencv时也出现同样的问题,运行:conda install opencv:
有3个包没安装成功。这回聪明点,不纠结把他们全部安装成功,继续往下。往下真的跑代码的时候会发现,import cv2的时候会报错,说没有cv2模块,说明刚才的cv2没安装成功。解决办法是运行如下两条命令:
pip install opencv-python
pip install opencv-contrib-python
按step-by-step installation把基本模块都装好后,接下来需要编译这个SSD模型,进入模型下面的ext文件夹,运行下面的命令:
python build.py build_ext develop
在我的机器上报如下错误:fatal error:math.h:No such file or directory:
发现在usr/inclucde下面没有math.h文件,解决办法是终端运行如下命令:
sudo apt-get install build-essential
重新编译SSD即可。
按照自己的需求,对SSD配置的文件做了一些修改:
- 把SSD\configs\ssd300_voc0712.yaml文件的MAX_ITER改成100(只是想验证下模型是否可以成功运行,稍微跑个100次即可),BATCH_SIZE改成10(电脑配置太低,BATCH_SIZE太大可能会很卡);
- SSD\ssd\config\path_catlog.py文件的DATA_DIR改成自己的数据集目录:/home/bina/download/VOCdevkit,然后VOCdevkit目录下就是VOC2007和VOC2012两个文件夹;
- SSD\ssd\config\defaults.py文件的_C.MODEL.DEVICE改成“cpu”,_C.SOLVER.MAX_ITER改成100,_C.SOLVER.BATCH_SIZE改成10
然后就是在SSD目录下执行下面的命令来训练模型:
python train_ssd.py --config-file configs/ssd300_voc0712.yaml --vgg 自己的目录/vgg16_reducedfc.pth --log_step 10 --save_step 50 --eval_step 100
log_step:每10步打印信息;
save_step:每50步保存checkpoint;
eval_step:每100步评估模型
出现类似下面的信息表示成功安装了SSD并且正在训练模型:
Congratulations!