使用Colab训练Faster R-CNN
需绑定Google Drive
项目代码下载
!git clone -b pytorch-1.0 https://github.com/jwyang/faster-rcnn.pytorch.git
import os
os.chdir('faster-rcnn.pytorch')
!ls
数据集下载
!mkdir data
os.chdir('data')
!mkdir pretrained_model
os.chdir('pretrained_model')
# 下载预训练模型res101
!wget https://filebox.ece.vt.edu/~jw2yang/faster-rcnn/pretrained-base-models/resnet101_caffe.pth
!wget https://s3.amazonaws.com/pytorch/models/resnet50-19c8e357.pth
# 下载预训练模型vgg16
!wget https://filebox.ece.vt.edu/~jw2yang/faster-rcnn/pretrained-base-models/vgg16_caffe.pth
os.chdir('../') #返回上一级目录即data/下
# 下载数据集
!wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
!wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
!wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
# 解压缩
!tar xvf VOCtrainval_06-Nov-2007.tar
!tar xvf VOCtest_06-Nov-2007.tar
!tar xvf VOCdevkit_08-Jun-2007.tar
环境配置 依赖包下载
import os
os.chdir('/content/drive/MyDrive/faster-rcnn.pytorch')
!pip install -r requirements
!pip install scipy==1.1.0
#scipy包降级
运行setup.py
os.chdir('./lib')
!python setup.py build develop
网络训练
os.chdir('/content/drive/MyDrive/faster-rcnn.pytorch')
!CUDA_VISIBLE_DEVICES=0 python trainval_net.py --dataset pascal_voc --net vgg16 \
--epochs 10 --bs 8 --lr 0.010 \
--cag --cuda --s 21 --save_dir '/content'
各参数含义 可参考官方代码说明
CUDA_VISIBLE_DEVICES=0 指定使用的GPU号,单GPU一般为0
–dataset 指定训练所需数据集
–net 指定主干网 vgg16/res101
–epochs 指定训练轮次
–bs 指定批处理大小 batchsize
–lr 指定初始训练学习率
–s session 用于权重保存时的命名,区分每次训练
–cuda 使用gpu训练
–save_dir 指定权重保存路径
–use_tfb 使用Tersonboard可视化
训练出的权重命名规则 faster_rcnn_session_epoch_step.pth
- 恢复训练
使用 –r 参数
!CUDA_VISIBLE_DEVICES=0 python feature_train.py --dataset pascal_voc_12 --net vgg16 \
--checksession 52 --checkepoch 20 --checkpoint 837 \
--r True \
--epoch 40 --bs 8 \
--save_dir '/content' --cag --use_tfb \
--cuda
- tensordboard可视化
# %load_ext tensorboard
%reload_ext tensorboard
%tensorboard --logdir '/content/drive/MyDrive/faster-rcnn.pytorch/logs
网络测试
os.chdir('/content/drive/MyDrive/faster-rcnn.pytorch')
!CUDA_VISIBLE_DEVICES=0 python test_net.py \
--dataset pascal_voc_12 --net vgg16 \
--checksession 52 --checkepoch 10 --checkpoint 837 \
--cuda --cag --load_dir '/content/drive/MyDrive/faster-rcnn.pytorch/weight'
# --load_dir '/content'
–load_dir 指定权重文件加载路径
Demo运行
os.chdir('/content/drive/MyDrive/faster-rcnn.pytorch')
!CUDA_VISIBLE_DEVICES=0 python demo.py --dataset pascal_voc_12 \
--net vgg16 \
--checksession 52 \
--checkepoch 10 \
--checkpoint 837 \
--cuda --cag --image_dir /content/drive/MyDrive/faster-rcnn.pytorch/images --load_dir '/content/drive/MyDrive/faster-rcnn.pytorch/weight'
Faster R-CNN训练自己的数据集
-
数据集标注文件转为VOC格式
-
数据集存放路径如下
-
修改数据类别 ./faster-rcnn.pytorch/lib/datasets/pascal_voc.
改为自己数据所需的类别
删除数据cache文件,重新训练