电脑配置
系统:Ubuntu 16.04
GPU型号:RTX-2070
代码来源
我这里采用的Tensorflow版本的Faster R-CNN来训练自己的数据集.
tf-faster-rcnn代码链接
按照链接中的方式,install 好自己的工程.
环境配置
将自己的环境存成yaml文件,用于移植环境到另一台电脑。
终端进入自己的环境,执行指令
conda env export > environment.yaml
environment.yaml 为生成的yaml文件名
在另一台电脑安装环境需要终端执行代码:
conda env create -f environment.yaml
此处需要注意的是,网友说这只是将conda安装的包移植过来了,pip安装的需要重新安装,这点未考究,不确定。
此处踩坑:
刚开始运用的环境是之前比赛用的环境,
主要配置如下
- cudatoolkit=8.0=3
- cudnn=6.0.21=cuda8.0_0
- py-opencv=3.4.2=py36hb342d67_1
- python=3.6.8=h0371630_0
- tensorflow-gpu=1.4.1=0
- tensorflow-gpu-base=1.4.1=py36ha7e2fe3_0
- tensorflow-tensorboard=0.4.0=py36hf484d3e_0
但是,上边的配置试用于显卡为1080,1070等型号
我是RTX 2070,应该是不支持cuda=8.0
的 这就导致运行demo.py
时,只能运用cpu来做nms操作。运用GPU版的nms会报错。这样一来,一是运用模型测试的时候cpu运行会很慢。二来可能会影响模型效果
另外: tensorflow各个版本的CUDA以及Cudnn版本对应关系
最后采用的环境配置如下:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_tflow_select 2.1.0 gpu defaults
absl-py 0.8.1 py36_0 defaults
astor 0.8.0 py36_0 defaults
blas 1.0 mkl defaults
c-ares 1.15.0 h7b6447c_1001 defaults
ca-certificates 2019.11.27 0 defaults
certifi 2019.11.28 py36_0 defaults
cudatoolkit 10.0.130 0 defaults
cudnn 7.6.4 cuda10.0_0 defaults
cupti 10.0.130 0 defaults
cycler 0.10.0 pypi_0 pypi
cython 0.29.14 py36he6710b0_0 defaults
easydict 1.9 pypi_0 pypi
gast 0.3.2 py_0 defaults
grpcio 1.14.1 py36h9ba97e2_0 defaults
h5py 2.9.0 py36h7918eee_0 defaults
hdf5 1.10.4 hb1b8bf9_0 defaults
intel-openmp 2019.4 243 defaults
keras-applications 1.0.8 py_0 defaults
keras-preprocessing 1.1.0 py_1 defaults
kiwisolver 1.1.0 pypi_0 pypi
libgcc-ng 9.1.0 hdf63c60_0 defaults
libgfortran-ng 7.3.0 hdf63c60_0 defaults
libprotobuf 3.11.2 hd408876_0 defaults
libstdcxx-ng 9.1.0 hdf63c60_0 defaults
markdown 3.1.1 py36_0 defaults
matplotlib 3.1.2 pypi_0 pypi
mkl 2019.4 243 defaults
mkl-service 2.3.0 py36he904b0f_0 defaults
mkl_fft 1.0.15 py36ha843d7b_0 defaults
mkl_random 1.1.0 py36hd6b4f25_0 defaults
mock 3.0.5 py36_0 defaults
numpy 1.17.4 py36hc1035e2_0 defaults
numpy-base 1.17.4 py36hde5b4d6_0 defaults
opencv-python 4.1.2.30 pypi_0 pypi
openssl 1.0.2t h7b6447c_1 defaults
pillow 6.2.1 pypi_0 pypi
pip 19.3.1 py36_0 defaults
protobuf 3.11.2 py36he6710b0_0 defaults
pyparsing 2.4.5 pypi_0 pypi
python 3.6.0 0 defaults
python-dateutil 2.8.1 pypi_0 pypi
readline 6.2 2 defaults
scipy 1.3.2 py36h7c811a0_0 defaults
setuptools 42.0.2 py36_0 defaults
six 1.13.0 py36_0 defaults
sqlite 3.13.0 0 defaults
tensorboard 1.13.1 py36hf484d3e_0 defaults
tensorflow 1.13.1 gpu_py36h3991807_0 defaults
tensorflow-base 1.13.1 gpu_py36h8d69cac_0 defaults
tensorflow-estimator 1.13.0 py_0 defaults
tensorflow-gpu 1.13.1 h0d30ee6_0 defaults
termcolor 1.1.0 py36_1 defaults
tk 8.5.18 0 defaults
werkzeug 0.16.0 py_0 defaults
wheel 0.33.6 py36_0 defaults
xz 5.2.4 h14c3975_4 defaults
zlib 1.2.11 h7b6447c_3 defaults
demo测试
按照代码链接工程中的README
修改setup.py
文件中的arch=61
(按照自己显卡情况来)
执行完
make clean
make
cd ..
以及:
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
准备date以及pre-trained models
date:按照此链接格式准备数据集
下载预训练模型
# Resnet101 for voc pre-trained on 07+12 set
./data/scripts/fetch_faster_rcnn_models.sh
建立模型与文件夹的软链接
NET=res101
TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
mkdir -p output/${
NET}/${
TRAIN_IMDB}
cd output/${
NET}/${
TRAIN_IMDB}
ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default
cd ../../..
此步未做会报以下错误
Traceback (most recent call last):
File "./tools/demo.py", line 126, in <module>
'our server and place them properly?'