使用colab训练faster-rcnn

用colab配置环境训练faster-rcnn

一、前言

最近在实验室旧服务器上配置训练faster-rcnn的环境,因为没有sudo权限无法升级cuda版本(8.0),导致怎么编译都不成功,因此钻进了牛角尖去找各种不升cuda版本也能成功编译的解决办法,但这早就注定了是一场徒劳,期间发现别能编译成功的cuda版本至少是9.0,花了两天时间毫无进展,后来想到了免费的colab,决定尝试一下,没想到一下子就能编译成功了,现在记录下配置过程供以后参考。我也是第一次使用colab,如有不对的地方欢迎大家多多拍砖多多指教。

这里配置的是python3.6+pytorch1.0

官方教程

新手指引:https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d

常见问题:https://research.google.com/colaboratory/faq.html

官方给出的新手指引当中已经给出了前期配置、常见软件和库的安装等方法。大家凭借官方教程可以基本入门Colab,但如果想更加自如地在Colab上跑通自己的代码,可能还需要更多的学习。


二、前期准备

为了能顺利跑起来,请使用科学上网

依赖平台: Google Drive

Colab需要从Google Drive(谷歌云盘)进入。为了方便整理,我先在Google Drive中创建了一个新文件夹*“Colab”*。


使用colab训练faster-rcnn_第1张图片

然后,我们在*“Colab”*文件夹中新建一个Colab项目,如图所示:


使用colab训练faster-rcnn_第2张图片

注意:首次创建Colab项目需要点击“关联更多应用”,添加“Colaboratory”应用。

创建完项目之后我们就可以进入Colab的主界面了。是不是发现和jupyter notebook很像?

现在,我们就可以在代码框中输入一些代码。这里注意,如果我们直接输入代码,系统会当作是Python代码执行。例如我们输入:

a=10086
print(a)

运行之后输出框中会打印出‘10086’

如果要执行系统命令,需要在命令前加感叹号 !,例如我们输入!pwd查看当前路径

!pwd

执行后输出框会显示当前目录的路径。这跟linux命令行操作完全一样了!

其实我们在Colab中连接的云端的那台虚拟机正是使用的Ubuntu操作系统,我们可以将自己在Colab中的一切操作看作是在用命令行控制云端的那台Ubuntu虚拟机。你可以用它来直接跑代码,也可以使用一些系统命令。

三、配置faster-rcnn训练环境

1.修改笔记本环境

我们每次新建一个Colab项目后,最好先对笔记本环境进行配置,即选择python的版本和是否使用GPU

使用colab训练faster-rcnn_第3张图片
使用colab训练faster-rcnn_第4张图片

这里选择python3,GPU,修改完后点击保存。

2.安装必要的包和软件

输入以下代码,按Ctrl+Enter执行

!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}

运行后,会出现以下提示
在这里插入图片描述

先点击相应的链接,选择自己的谷歌账号登陆(如果不科学上网可能登陆不了)并允许,最后会得到验证码,复制验证码粘贴到上面的框中回车键即可。

3.挂载云盘端

其实完成前面的操作我们就可以在Colab中敲写代码或者输入一些系统命令了,但是我们现在连接的虚拟机是和Google Drive脱离的,也就是说我们跑的程序无法使用谷歌云盘里的文件,这就非常受限制了。所以我们一般需要将谷歌云盘看作是虚拟机中的一个硬盘挂载,这样我们就可以使用虚拟机轻松访问谷歌云盘。
挂载Google Drive代码:

方法一.

# 指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive

上面的方法实际是在虚拟机上安装谷歌云盘!如果不行可以尝试方法二

方法二.

# Load the Drive helper and mount
from google.colab import drive

# This will prompt for authorization.
drive.mount('/content/drive')

输入授权码即可。挂载完成后在虚拟机中会多出一个文件夹"drive",用!ls命令查看。

4.配置深度学习平台

其实在colab里面已经默认安装有最新版的pytorch了,如果不放心可以自己手动安装一下,安装方式为:

!pip3 install https://download.pytorch.org/whl/cu80/torch-1.0.1.post2-cp36-cp36m-linux_x86_64.whl
!pip3 install torchvision

除了pytorch外,colab还自带了tensorflow最新版和其他大量的第三方库,如果没有版本要求基本上不用自己手动去安装。下面直接进入主题,用colab训练faster-rcnn。

四、用colab训练faster-rcnn

项目地址:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0

注意:进入项目之后会发现有4个branchs,选择pytorch-1.0这个branch,选错branch会导致编译错误。


使用colab训练faster-rcnn_第5张图片

然后git clone这个仓库到你的colab中,为了保险起见,clone的时候加上分支控制-b pytorch-1.0即:

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

使用colab训练faster-rcnn_第6张图片
这里有一点要注意,不能直接使用cd改变路径,需要使用python的方法,如下

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

使用colab训练faster-rcnn_第7张图片
创建新文件夹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

预训练模型下载好以后,返回上一级路径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",否则后面会报错。

回到上一级路径,然后进入lib中进行编译(在这一步经常会出错,博主本人在这里遇到各种错误并解决了,如果你也遇到错误了欢迎与我交流)

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

输出如下则表示编译成功
使用colab训练faster-rcnn_第8张图片

编译成功后,就可以开始训练了。

训练参数可以参考下表配置

使用colab训练faster-rcnn_第9张图片

我这里的训练参数使用了表格的倒数三行的参数。

训练代码(参考):

 !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
      

然后就会进入训练阶段,输出框会输出如下内容(我这里是训练到epoch2才截的图):

Called with args:
Namespace(batch_size=4, checkepoch=1, checkpoint=0, checkpoint_interval=10000, checksession=1, class_agnostic=False, cuda=True, dataset='pascal_voc', disp_interval=100, large_scale=False, lr=0.004, lr_decay_gamma=0.1, lr_decay_step=8, mGPUs=False, max_epochs=10, net='res101', num_workers=0, optimizer='sgd', resume=False, save_dir='models', session=1, start_epoch=1, use_tfboard=False)
Using config:
{'ANCHOR_RATIOS': [0.5, 1, 2],
 'ANCHOR_SCALES': [8, 16, 32],
 'CROP_RESIZE_WITH_MAX_POOL': False,
 'CUDA': False,
 'DATA_DIR': '/content/faster-rcnn_colab/faster-rcnn.pytorch/data',
 'DEDUP_BOXES': 0.0625,
 'EPS': 1e-14,
 'EXP_DIR': 'res101',
 'FEAT_STRIDE': [16],
 'GPU_ID': 0,
 'MATLAB': 'matlab',
 'MAX_NUM_GT_BOXES': 20,
 'MOBILENET': {'DEPTH_MULTIPLIER': 1.0,
               'FIXED_LAYERS': 5,
               'REGU_DEPTH': False,
               'WEIGHT_DECAY': 4e-05},
 'PIXEL_MEANS': array([[[102.9801, 115.9465, 122.7717]]]),
 'POOLING_MODE': 'align',
 'POOLING_SIZE': 7,
 'RESNET': {'FIXED_BLOCKS': 1, 'MAX_POOL': False},
 'RNG_SEED': 3,
 'ROOT_DIR': '/content/faster-rcnn_colab/faster-rcnn.pytorch',
 'TEST': {'BBOX_REG': True,
          'HAS_RPN': True,
          'MAX_SIZE': 1000,
          'MODE': 'nms',
          'NMS': 0.3,
          'PROPOSAL_METHOD': 'gt',
          'RPN_MIN_SIZE': 16,
          'RPN_NMS_THRESH': 0.7,
          'RPN_POST_NMS_TOP_N': 300,
          'RPN_PRE_NMS_TOP_N': 6000,
          'RPN_TOP_N': 5000,
          'SCALES': [600],
          'SVM': False},
 'TRAIN': {'ASPECT_GROUPING': False,
           'BATCH_SIZE': 128,
           'BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'BBOX_NORMALIZE_MEANS': [0.0, 0.0, 0.0, 0.0],
           'BBOX_NORMALIZE_STDS': [0.1, 0.1, 0.2, 0.2],
           'BBOX_NORMALIZE_TARGETS': True,
           'BBOX_NORMALIZE_TARGETS_PRECOMPUTED': True,
           'BBOX_REG': True,
           'BBOX_THRESH': 0.5,
           'BG_THRESH_HI': 0.5,
           'BG_THRESH_LO': 0.0,
           'BIAS_DECAY': False,
           'BN_TRAIN': False,
           'DISPLAY': 20,
           'DOUBLE_BIAS': False,
           'FG_FRACTION': 0.25,
           'FG_THRESH': 0.5,
           'GAMMA': 0.1,
           'HAS_RPN': True,
           'IMS_PER_BATCH': 1,
           'LEARNING_RATE': 0.001,
           'MAX_SIZE': 1000,
           'MOMENTUM': 0.9,
           'PROPOSAL_METHOD': 'gt',
           'RPN_BATCHSIZE': 256,
           'RPN_BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'RPN_CLOBBER_POSITIVES': False,
           'RPN_FG_FRACTION': 0.5,
           'RPN_MIN_SIZE': 8,
           'RPN_NEGATIVE_OVERLAP': 0.3,
           'RPN_NMS_THRESH': 0.7,
           'RPN_POSITIVE_OVERLAP': 0.7,
           'RPN_POSITIVE_WEIGHT': -1.0,
           'RPN_POST_NMS_TOP_N': 2000,
           'RPN_PRE_NMS_TOP_N': 12000,
           'SCALES': [600],
           'SNAPSHOT_ITERS': 5000,
           'SNAPSHOT_KEPT': 3,
           'SNAPSHOT_PREFIX': 'res101_faster_rcnn',
           'STEPSIZE': [30000],
           'SUMMARY_INTERVAL': 180,
           'TRIM_HEIGHT': 600,
           'TRIM_WIDTH': 600,
           'TRUNCATED': False,
           'USE_ALL_GT': True,
           'USE_FLIPPED': True,
           'USE_GT': False,
           'WEIGHT_DECAY': 0.0001},
 'USE_GPU_NMS': True}
Loaded dataset `voc_2007_trainval` for training
Set proposal method: gt
Appending horizontally-flipped training examples...
voc_2007_trainval gt roidb loaded from /content/faster-rcnn_colab/faster-rcnn.pytorch/data/cache/voc_2007_trainval_gt_roidb.pkl
done
Preparing training data...
done
before filtering, there are 10022 images...
after filtering, there are 10022 images...
10022 roidb entries
Loading pretrained weights from data/pretrained_model/resnet101_caffe.pth
[session 1][epoch  1][iter    0/2505] loss: 4.4726, lr: 4.00e-03
			fg/bg=(95/417), time cost: 2.034769
			rpn_cls: 0.7698, rpn_box: 0.0947, rcnn_cls: 3.1212, rcnn_box 0.4869
[session 1][epoch  1][iter  100/2505] loss: 1.6058, lr: 4.00e-03
			fg/bg=(92/420), time cost: 282.182974
			rpn_cls: 0.2926, rpn_box: 0.1055, rcnn_cls: 0.5404, rcnn_box 0.3736
[session 1][epoch  1][iter  200/2505] loss: 1.3175, lr: 4.00e-03
			fg/bg=(83/429), time cost: 280.251949
			rpn_cls: 0.0973, rpn_box: 0.0432, rcnn_cls: 0.5531, rcnn_box 0.4124
[session 1][epoch  1][iter  300/2505] loss: 1.2110, lr: 4.00e-03
			fg/bg=(70/442), time cost: 279.217330
			rpn_cls: 0.1986, rpn_box: 0.0919, rcnn_cls: 0.2961, rcnn_box 0.3653
[session 1][epoch  1][iter  400/2505] loss: 1.1675, lr: 4.00e-03
			fg/bg=(111/401), time cost: 277.523335
			rpn_cls: 0.1142, rpn_box: 0.0291, rcnn_cls: 0.5117, rcnn_box 0.4730
[session 1][epoch  1][iter  500/2505] loss: 1.1075, lr: 4.00e-03
			fg/bg=(70/442), time cost: 281.644064
			rpn_cls: 0.0929, rpn_box: 0.1257, rcnn_cls: 0.2761, rcnn_box 0.3332
[session 1][epoch  1][iter  600/2505] loss: 1.1065, lr: 4.00e-03
			fg/bg=(59/453), time cost: 281.272812
			rpn_cls: 0.1279, rpn_box: 0.0456, rcnn_cls: 0.3245, rcnn_box 0.2569
[session 1][epoch  1][iter  700/2505] loss: 1.0399, lr: 4.00e-03
			fg/bg=(99/413), time cost: 280.469540
			rpn_cls: 0.2323, rpn_box: 0.0932, rcnn_cls: 0.5178, rcnn_box 0.3769
[session 1][epoch  1][iter  800/2505] loss: 1.0888, lr: 4.00e-03
			fg/bg=(101/411), time cost: 279.788152
			rpn_cls: 0.2390, rpn_box: 0.0681, rcnn_cls: 0.3894, rcnn_box 0.4226
[session 1][epoch  1][iter  900/2505] loss: 1.0514, lr: 4.00e-03
			fg/bg=(128/384), time cost: 279.094743
			rpn_cls: 0.1421, rpn_box: 0.0878, rcnn_cls: 0.3806, rcnn_box 0.4146
[session 1][epoch  1][iter 1000/2505] loss: 1.0105, lr: 4.00e-03
			fg/bg=(90/422), time cost: 277.871021
			rpn_cls: 0.1386, rpn_box: 0.0218, rcnn_cls: 0.4366, rcnn_box 0.3665
[session 1][epoch  1][iter 1100/2505] loss: 0.9438, lr: 4.00e-03
			fg/bg=(123/389), time cost: 279.990570
			rpn_cls: 0.2340, rpn_box: 0.1765, rcnn_cls: 0.5839, rcnn_box 0.5354
[session 1][epoch  1][iter 1200/2505] loss: 0.9365, lr: 4.00e-03
			fg/bg=(115/397), time cost: 283.719271
			rpn_cls: 0.1158, rpn_box: 0.0448, rcnn_cls: 0.2936, rcnn_box 0.3726
[session 1][epoch  1][iter 1300/2505] loss: 0.9621, lr: 4.00e-03
			fg/bg=(128/384), time cost: 281.506948
			rpn_cls: 0.2068, rpn_box: 0.0387, rcnn_cls: 0.7982, rcnn_box 0.4249
[session 1][epoch  1][iter 1400/2505] loss: 0.9196, lr: 4.00e-03
			fg/bg=(128/384), time cost: 278.097586
			rpn_cls: 0.1497, rpn_box: 0.0330, rcnn_cls: 0.3320, rcnn_box 0.3756
[session 1][epoch  1][iter 1500/2505] loss: 0.9093, lr: 4.00e-03
			fg/bg=(101/411), time cost: 275.748964
			rpn_cls: 0.1374, rpn_box: 0.0361, rcnn_cls: 0.2822, rcnn_box 0.2870
[session 1][epoch  1][iter 1600/2505] loss: 0.8810, lr: 4.00e-03
			fg/bg=(119/393), time cost: 276.830616
			rpn_cls: 0.1287, rpn_box: 0.0936, rcnn_cls: 0.4380, rcnn_box 0.3273
[session 1][epoch  1][iter 1700/2505] loss: 0.8307, lr: 4.00e-03
			fg/bg=(113/399), time cost: 280.342751
			rpn_cls: 0.1655, rpn_box: 0.0910, rcnn_cls: 0.2600, rcnn_box 0.3362
[session 1][epoch  1][iter 1800/2505] loss: 0.8967, lr: 4.00e-03
			fg/bg=(87/425), time cost: 281.167849
			rpn_cls: 0.1380, rpn_box: 0.1308, rcnn_cls: 0.3550, rcnn_box 0.2271
[session 1][epoch  1][iter 1900/2505] loss: 0.9052, lr: 4.00e-03
			fg/bg=(104/408), time cost: 280.726496
			rpn_cls: 0.1270, rpn_box: 0.1022, rcnn_cls: 0.3841, rcnn_box 0.3624
[session 1][epoch  1][iter 2000/2505] loss: 0.7873, lr: 4.00e-03
			fg/bg=(89/423), time cost: 277.209683
			rpn_cls: 0.1268, rpn_box: 0.0387, rcnn_cls: 0.2488, rcnn_box 0.3074
[session 1][epoch  1][iter 2100/2505] loss: 0.8663, lr: 4.00e-03
			fg/bg=(97/415), time cost: 280.117668
			rpn_cls: 0.1354, rpn_box: 0.0371, rcnn_cls: 0.4960, rcnn_box 0.3263
[session 1][epoch  1][iter 2200/2505] loss: 0.8516, lr: 4.00e-03
			fg/bg=(109/403), time cost: 280.427549
			rpn_cls: 0.1978, rpn_box: 0.0547, rcnn_cls: 0.3458, rcnn_box 0.3401
[session 1][epoch  1][iter 2300/2505] loss: 0.7974, lr: 4.00e-03
			fg/bg=(116/396), time cost: 277.409676
			rpn_cls: 0.1059, rpn_box: 0.0384, rcnn_cls: 0.2876, rcnn_box 0.3050
[session 1][epoch  1][iter 2400/2505] loss: 0.8045, lr: 4.00e-03
			fg/bg=(105/407), time cost: 279.156028
			rpn_cls: 0.1094, rpn_box: 0.0768, rcnn_cls: 0.2358, rcnn_box 0.2183
[session 1][epoch  1][iter 2500/2505] loss: 0.7850, lr: 4.00e-03
			fg/bg=(120/392), time cost: 277.117274
			rpn_cls: 0.1742, rpn_box: 0.0531, rcnn_cls: 0.3195, rcnn_box 0.3734
save model: models/res101/pascal_voc/faster_rcnn_1_1_2504.pth
[session 1][epoch  2][iter    0/2505] loss: 0.7364, lr: 4.00e-03
			fg/bg=(108/404), time cost: 1.689750
			rpn_cls: 0.1285, rpn_box: 0.0372, rcnn_cls: 0.2504, rcnn_box 0.3203
[session 1][epoch  2][iter  100/2505] loss: 0.7371, lr: 4.00e-03
			fg/bg=(92/420), time cost: 274.646219
			rpn_cls: 0.1005, rpn_box: 0.0450, rcnn_cls: 0.3673, rcnn_box 0.2630
[session 1][epoch  2][iter  200/2505] loss: 0.7200, lr: 4.00e-03
			fg/bg=(112/400), time cost: 276.095904
			rpn_cls: 0.1248, rpn_box: 0.0647, rcnn_cls: 0.1967, rcnn_box 0.3372
[session 1][epoch  2][iter  300/2505] loss: 0.7149, lr: 4.00e-03
			fg/bg=(102/410), time cost: 278.109113
			rpn_cls: 0.1085, rpn_box: 0.0473, rcnn_cls: 0.1914, rcnn_box 0.2414
[session 1][epoch  2][iter  400/2505] loss: 0.6890, lr: 4.00e-03
			fg/bg=(128/384), time cost: 273.537342
			rpn_cls: 0.0903, rpn_box: 0.0408, rcnn_cls: 0.3973, rcnn_box 0.4046
[session 1][epoch  2][iter  500/2505] loss: 0.6933, lr: 4.00e-03
			fg/bg=(126/386), time cost: 279.137722
			rpn_cls: 0.2608, rpn_box: 0.1434, rcnn_cls: 0.3289, rcnn_box 0.2678
[session 1][epoch  2][iter  600/2505] loss: 0.7324, lr: 4.00e-03
			fg/bg=(111/401), time cost: 276.018796
			rpn_cls: 0.1929, rpn_box: 0.0788, rcnn_cls: 0.2978, rcnn_box 0.3067
[session 1][epoch  2][iter  700/2505] loss: 0.6892, lr: 4.00e-03
			fg/bg=(87/425), time cost: 278.667384
			rpn_cls: 0.0499, rpn_box: 0.0211, rcnn_cls: 0.1220, rcnn_box 0.2021
[session 1][epoch  2][iter  800/2505] loss: 0.7280, lr: 4.00e-03
			fg/bg=(102/410), time cost: 278.389553
			rpn_cls: 0.0571, rpn_box: 0.0559, rcnn_cls: 0.2081, rcnn_box 0.1411
[session 1][epoch  2][iter  900/2505] loss: 0.6905, lr: 4.00e-03
			fg/bg=(114/398), time cost: 276.314513
			rpn_cls: 0.1066, rpn_box: 0.0391, rcnn_cls: 0.2746, rcnn_box 0.3154
[session 1][epoch  2][iter 1000/2505] loss: 0.6533, lr: 4.00e-03
			fg/bg=(82/430), time cost: 275.988713
			rpn_cls: 0.0883, rpn_box: 0.0371, rcnn_cls: 0.4136, rcnn_box 0.2456
[session 1][epoch  2][iter 1100/2505] loss: 0.6876, lr: 4.00e-03
			fg/bg=(128/384), time cost: 276.282769
			rpn_cls: 0.1137, rpn_box: 0.0518, rcnn_cls: 0.2628, rcnn_box 0.4541
[session 1][epoch  2][iter 1200/2505] loss: 0.6285, lr: 4.00e-03
			fg/bg=(99/413), time cost: 276.043559
			rpn_cls: 0.0643, rpn_box: 0.0375, rcnn_cls: 0.3397, rcnn_box 0.3405
[session 1][epoch  2][iter 1300/2505] loss: 0.7216, lr: 4.00e-03
			fg/bg=(82/430), time cost: 277.240751
			rpn_cls: 0.0897, rpn_box: 0.0131, rcnn_cls: 0.1557, rcnn_box 0.1644
[session 1][epoch  2][iter 1400/2505] loss: 0.7041, lr: 4.00e-03
			fg/bg=(117/395), time cost: 277.448369
			rpn_cls: 0.0938, rpn_box: 0.0334, rcnn_cls: 0.2144, rcnn_box 0.2643
[session 1][epoch  2][iter 1500/2505] loss: 0.6691, lr: 4.00e-03
			fg/bg=(114/398), time cost: 278.218134
			rpn_cls: 0.0648, rpn_box: 0.0403, rcnn_cls: 0.1703, rcnn_box 0.2494
[session 1][epoch  2][iter 1600/2505] loss: 0.6776, lr: 4.00e-03
			fg/bg=(101/411), time cost: 276.265288
			rpn_cls: 0.2302, rpn_box: 0.0796, rcnn_cls: 0.3031, rcnn_box 0.2957
[session 1][epoch  2][iter 1700/2505] loss: 0.6100, lr: 4.00e-03
			fg/bg=(111/401), time cost: 276.921033
			rpn_cls: 0.0445, rpn_box: 0.0589, rcnn_cls: 0.1895, rcnn_box 0.3049
[session 1][epoch  2][iter 1800/2505] loss: 0.6402, lr: 4.00e-03
			fg/bg=(99/413), time cost: 279.126111
			rpn_cls: 0.0976, rpn_box: 0.0408, rcnn_cls: 0.1940, rcnn_box 0.2101
[session 1][epoch  2][iter 1900/2505] loss: 0.6828, lr: 4.00e-03
			fg/bg=(115/397), time cost: 277.349934
			rpn_cls: 0.1912, rpn_box: 0.0540, rcnn_cls: 0.1890, rcnn_box 0.2691
[session 1][epoch  2][iter 2000/2505] loss: 0.6197, lr: 4.00e-03
			fg/bg=(90/422), time cost: 276.248681
			rpn_cls: 0.0222, rpn_box: 0.0638, rcnn_cls: 0.1732, rcnn_box 0.2191
[session 1][epoch  2][iter 2100/2505] loss: 0.6087, lr: 4.00e-03
			fg/bg=(113/399), time cost: 277.705678
			rpn_cls: 0.1838, rpn_box: 0.1351, rcnn_cls: 0.3173, rcnn_box 0.2759
[session 1][epoch  2][iter 2200/2505] loss: 0.6375, lr: 4.00e-03
			fg/bg=(91/421), time cost: 277.965877
			rpn_cls: 0.0758, rpn_box: 0.0216, rcnn_cls: 0.2189, rcnn_box 0.1767
[session 1][epoch  2][iter 2300/2505] loss: 0.6471, lr: 4.00e-03
			fg/bg=(107/405), time cost: 275.611051
			rpn_cls: 0.0862, rpn_box: 0.0442, rcnn_cls: 0.2505, rcnn_box 0.2988

注意:colab好像一次只能用12个小时,12个小时还没训练完的话会自动停止训练,并且资源会被谷歌回收,也就是说所有结果都会被清空,因此,请注意你的训练时长!

五、总结

1、可以把Colab看成是一台带有GPU的Ubuntu虚拟机,只不过我们只能用命令行的方式操作它。你可以选择执行系统命令,亦或是直接编写运行python代码。

2、挂载完Google Drive,会在虚拟机里生成一个drive文件夹,直接将Google Drive当成是一块硬盘即可。访问drive文件夹里的文件,就是在访问你的Google Drive里的文件。

3、Colab最多连续使用12小时,超过时间系统会强制掐断正在运行的程序并收回占用的虚拟机。(好像再次连接到虚拟机后,虚拟机是被清空的状态,需要重新配置和安装库等等)

4、请使用科学上网

参考资料

faster-rcnn pytorch项目地址

Google Colab——用谷歌免费GPU跑你的深度学习代码

官方教程

你可能感兴趣的:(colab)