ubuntu 18.04+Faster RCNN+pytorch

本文详细指导如何从GitHub获取Faster-RCNN模型代码,创建数据文件夹,下载和解压数据,配置预训练模型,使用虚拟环境,安装依赖,以及进行模型训练的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 模型代码下载:

github地址:GitHub - jwyang/faster-rcnn.pytorch at pytorch-1.0

2.创建数据文件夹

创建文件夹experiment,专门用来搭建Faster-RCNN模型,所有的配置文件均在此目录下进行。下载faster-rcnn.pytorch at pytorch-1.0文件,解压在experiment文件夹下。

cd faster-rcnn.pytorch-pytorch-1.0
mkdir data

3.下载数据

cd 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

执行下方命令解压数据到data/VOCdevkit(其实解压后会自动生成一个名为VOCdevkit的文件夾)

tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar

cd 进入data文件夹下,创建软链接

ln -s VOCdevkit的绝对路径 VOCdevkit2007

我的路径:

 xu@xu-RedmiBook-16:~/faster-rcnn.pytorch-pytorch-1.0/data$ pwd
/home/xu/faster-rcnn.pytorch-pytorch-1.0/data
xu@xu-RedmiBook-16:~/faster-rcnn.pytorch-pytorch-1.0/data$ ln -s /home/xu/faster-rcnn.pytorch-pytorch-1.0/data/VOCdevkit VOCdevkit2007

4.下载预训练模型

在data中创建一个名为pretrained_model文件

cd data

mkdir pretrained_model     //sudo mkdir pretrained_model

Pytorch离线下载预训练模型方法(VGG,RESNET等)

其他的学习模型也可以用类似的方法下载,或者可以参看下面的下载网址。
‘resnet18’: ‘https://download.pytorch.org/models/resnet18-5c106cde.pth’
‘resnet34’: ‘https://download.pytorch.org/models/resnet34-333f7ec4.pth’
‘resnet50’: ‘https://download.pytorch.org/models/resnet50-19c8e357.pth’
‘resnet101’: ‘https://download.pytorch.org/models/resnet101-5d3b4d8f.pth’
‘resnet152’: ‘https://download.pytorch.org/models/resnet152-b121ed2d.pth’

‘densenet121’: ‘https://download.pytorch.org/models/densenet121-a639ec97.pth’
‘densenet169’: ‘https://download.pytorch.org/models/densenet169-b2777c0a.pth’
‘densenet201’: ‘https://download.pytorch.org/models/densenet201-c1103571.pth’
‘densenet161’: ‘https://download.pytorch.org/models/densenet161-8d451a50.pth’

‘vgg11’: ‘https://download.pytorch.org/models/vgg11-bbd30ac9.pth’
‘vgg13’: ‘https://download.pytorch.org/models/vgg13-c768596a.pth’
‘vgg16’: ‘https://download.pytorch.org/models/vgg16-397923af.pth’
‘vgg19’: ‘https://download.pytorch.org/models/vgg19-dcbb9e9d.pth’
‘vgg11_bn’: ‘https://download.pytorch.org/models/vgg11_bn-6002323d.pth’
‘vgg13_bn’: ‘https://download.pytorch.org/models/vgg13_bn-abd245e5.pth’
‘vgg16_bn’: ‘https://download.pytorch.org/models/vgg16_bn-6c64b313.pth’
‘vgg19_bn’: ‘https://download.pytorch.org/models/vgg19_bn-c79401a0.pth’

‘alexnet’: ‘https://download.pytorch.org/models/alexnet-owt-4df8aa71.pth’

下载预训练:VGG16,ResNet101的预训练模型到/data/pretrained_model中

5.编译

返回工程根目录中如我的是../faster-rcnn.pytorch-pytorch-1.0下

使用pip安装所有python依赖包

pip install -r requirements.txt

编译CUDA依赖环境

cd lib
sudo python setup.py build develop

6. 训练

在训练之前需要根据自己的环境将trainval_net.py和test_net.py中的save_dir和load_dir参数进行更改。(这一步我没有操作)
使用VGG16在pascal_voc上训练faster R-CNN使用如下命令:(中断的话,重新使用训练命令就行)

CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \
                   --dataset pascal_voc --net vgg16 \
                   --bs $BATCH_SIZE --nw $WORKER_NUMBER \
                   --lr $LEARNING_RATE --lr_decay_step $DECAY_STEP \
                   --cuda

或者

CUDA_VISIBLE_DEVICES=0,1 python trainval_net.py --dataset pascal_voc --net res101 --cuda 

“CUDA_VISIBLE_DEVICES”指代了gpu的id,这得看你实验室服务器哪块gpu是闲置的。(命令: nvidia-smi)
“–dataset”指代你跑得数据集名称,我们就以pascal-voc为例。
“–net”指代你的backbone网络是啥,我们以vgg16为例。
"–bs"指的batch size。
“–nw”指的是worker number,取决于你的Gpu能力,我用的是1050ti,所以选择4。稍微差一些的gpu可以选小一点的值。
“–cuda”指的是使用gpu。

训好的model会存到models文件夹底下,此处暂时使用默认的训练参数。

如我的命令为

CUDA_VISIBLE_DEVICES=0 python trainval_net.py \
                   --dataset pascal_voc --net vgg16 \
                   --bs 1 --nw 4 \
                   --lr 0.00001 \
                   --cuda

搭建虚拟环境
我们在第一步安装anaconda的时候已经将conda默认的下载源换成了清华源。这里我们需要对pip也进行换源,将其换成豆瓣源。

在终端输入如下代码:主目录下新建一个名字为pip的隐藏文件夹,并在此文件夹内新建一个名字为pip.conf的文件

mkdir ~/.pip
cd ~/.pip
gedit pip.conf
在pip.conf文件中添加如下代码,保存并退出,换源完毕。

[global] 
index-url = https://pypi.douban.com/simple 
[install] 
trusted-host=pypi.douban.com
打开终端输入以下命令,创建一个名字为pytorch1.0的虚拟环境,python使用3.6版本

conda create -n pytorch1.0 python=3.6
创建完成后,激活该虚拟环境

conda activate pytorch1.0
安装Pytorch1.0.0

conda install pytorch=1.0.0
安装torchvision0.2.0

conda install torchvision=0.2.0
安装其它依赖包。进入requirements.txt所在目录,执行如下命令:

pip install -r requirements.txt

注意:scipy要安装1.2版本,否则后面训练的时候可能会出现ImportError: cannot import name 'imread'错误。

创建run.sh文件并开始训练
在代码主目录下创建run.sh文件,并输入以下内容。执行该文件即可开始训练

CUDA_VISIBLE_DEVICES=0 python trainval_net.py \
                   --dataset pascal_voc --net vgg16 \
                   --bs 1  \
                   --cuda
总结
1、所有操作都要基于第三步创建的pytorch1.0虚拟环境进行,否则会出错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值