【Google云盘的Colab跑Faster-Rcnn pytorch版】

Google云盘的Colab跑Faster-Rcnn pytorch版

一、前言

本人是目标检测领域小白一枚,最近毕业论文在研究这个方向,便找了几篇关于fast-rcnn的模型来练练手,顺便拜膜下大佬,希望这篇记录能帮助到大家。
1、参考文章
文章1
全程跟着文章1来,由于大佬漏掉了几行代码,结果会出现三个错误,又找到了文章2参考,跟着来基本没问题。大家可以参考文章2的,也可以参考我的文章。
文章2
2、进入colab官网:谷歌云盘
在上述文章中,介绍了谷歌云盘的使用方法以及新建项目的步骤,下面就开始直接上训练fast-rcnn的步骤了

二、用colab训练faster-rcnn

1、安装必要的包和软件
输入以下代码(只要安装一次就行,不用每次跑都运行)

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

2、挂载谷歌云盘
谷歌云盘实际上可以看成是虚拟机中的一个硬盘挂载,如果我们不连接谷歌云盘的话,是无法使用他里面的文件,因此需要先挂载。

# Load the Drive helper and mount
from google.colab import drive
# This will prompt for authorization.
drive.mount('/content/drive')

3、下载github的项目地址

!git clone -b pytorch-1.0 https://github.com/jwyang/faster-rcnn.pytorch.git

【Google云盘的Colab跑Faster-Rcnn pytorch版】_第1张图片
4、进入到faster-rcnn.pytorch文件夹中,并显示当前目录

import os
os.chdir('faster-rcnn.pytorch')
!ls

【Google云盘的Colab跑Faster-Rcnn pytorch版】_第2张图片
5、创建新文件夹data,并下载预训练模型

!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
# 下载预训练模型vgg16
!wget https://filebox.ece.vt.edu/~jw2yang/faster-rcnn/pretrained-base-models/vgg16_caffe.pth

【Google云盘的Colab跑Faster-Rcnn pytorch版】_第3张图片
6、返回上一级路径data,然后下载训练集voc2007

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
# 建立软连接
!ln -s $VOCdevkit VOCdevkit2007 #注意!如果上面解压缩得到的文件夹名字为"VOCdevdit",要将其改为“VOCdevdit2007",否则后面会报错。

【Google云盘的Colab跑Faster-Rcnn pytorch版】_第4张图片
7、删除faster-rcnn.pytorch下的VOCdevkit2007
打开faster-rcnn.pytorch下,发现依然有VOCdevkit文件夹和VOCdevkit2007的文本,说明上一步的将名字为"VOCdevdit"文件夹名字改为“VOCdevdit2007"这行代码并没有成功。我试着手动无法删除,只有进入data文件夹下,用命令删除,删除后就可以进行下一步的改名字。
【Google云盘的Colab跑Faster-Rcnn pytorch版】_第5张图片

#删除VOCdevkit2007文本
import os
os.chdir('data')
!rm -rf VOCdevkit2007

8、将data下的VOCdevkit文件夹改名字为VOCdevkit2007
这一步点击文件名右键便可以直接修改,注意不要改错了

【Google云盘的Colab跑Faster-Rcnn pytorch版】_第6张图片

9、回到上一级路径,然后进入lib中进行编译

os.chdir('../lib')
!python setup.py build develop

10、编译成功后,进行配置,然后训练
这里注意一下,训练的时候,一定要在faster-rcnn.pytorch目录下。上一步我们进入到了data目录下,所以我这里直接用代码返回到上个目录下就行。

import os
os.chdir('../')

然后就可以训练了,配置表如下:
【Google云盘的Colab跑Faster-Rcnn pytorch版】_第7张图片
我这里使用了倒数第3行的配置参数进行训练,训练代码如下:

 !CUDA_VISIBLE_DEVICES=0 python trainval_net.py \
                    --dataset pascal_voc \
                    --net res101 \
                    --bs 4 \
                    --nw 0 \
                    --lr 0.004 \
                    --lr_decay_step 8 \
                    --epochs 10 \
                    --cuda

如果出现错误,并且情况如下:
【Google云盘的Colab跑Faster-Rcnn pytorch版】_第8张图片
是由于scipy的库版本太高,改成1.2.1,在训练的前一步输入以下命令就可以成功运行啦

!pip3 uninstall scipy
!pip install scipy==1.2.1

三、总结

1、在将VOCdevkit文件夹改名字为VOCdevkit2007时,首先要先删除data目录下的VOCdevkit2007的文本,注意这里是data目录的下的本文,只有删除后才能够改名字成功,不然会重名是无法修改的。

2、最后训练的时候,一般都要在训练前加上“!pip install scipy==1.2.1”这一步,才能够训练成功。

3、一些常用命令:

!wge 网址  #下载网址wa
!os.chdir('文件名')      #去某个文件下
!rm -rf 文件名        #删除某个文件

你可能感兴趣的:(pytorch,深度学习,人工智能)