YAD2K: Yet Another Darknet 2 Keras

匿名 (未验证) 提交于 2019-12-02 23:26:52
版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_31347869/article/details/88919165

yolov2 论文地址:YOLO9000: Better, Faster, Stronger
github 项目地址:YAD2K

YAD2K 的实现用了 90% 的 Keras 和 10% Tensorflow

环境配置

可以使用 anaconda 环境或者在全局安装。

(1)下载项目 git clone https://github.com/allanzelener/yad2k.git,也可以先下载好放入目录地址下

(2)安装项目所需包,直接运行 conda env create -f environment.yml,该文件会创建一个名为 yad2k 的环境,并在该环境下将需要的包一次性进行安装

(3)激活项目环境 conda activate yad2k

(4)[ 可选 ] 如果选择在全局环境下安装 numpyh5pypillow 等一系列包,可执行:

pip install numpy h5py pillow pip install tensorflow-gpu  # CPU-only: conda install -c conda-forge tensorflow pip install keras # Possibly older release: conda install keras 

转换项目模型

(1)下载 Darknet 模型的 cfg 文件和 weights

(2)将 Darknet YOLO_v2 模型转换为 Keras 模型:

./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5 

输出这样就说明转换成功了,这时 model_data 文件夹下也会多一个 yolo.h5 文件:


(3)在 image\ 里的小型测试集上测试一下模型是否转换成功:
./test_yolo.py model_data/yolo.h5  # output in images/out/ 

输出这样就说明转换没有问题,/images/out 文件夹下会有 imgaes/ 下几张图片的测试结果:







遇到的问题

1. 下载 cfg 和 weights 文件

项目说明里并没有提及,但是最好用 yolov2 的 weights 和 cfg,不要直接用最新版的 yolo.weights,不然转换模型时很可能报错!
yolov2 官网:yolov2 website

2. 转换模型或执行测试时报错

执行语句:
./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5

./test_yolo.py model_data/yolo.h5

报错:bash: ./*.py: Permission denied

尝试使用管理员命令运行:$ sudo ./*.py,但仍然得到 error sudo: ./tools/demo.py: command not found

解决
$ chmod +x ./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
或者
$ python ./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
哪个管用用哪个。

3. 执行测试时报错 * 1

packages/tensorflow/python/_pywrap_t ensorflow.so: undefined symbol: cudnnCreate Aborted (core dumped) 

一般是 CUDA 和 tensorflow-gpu 的版本对不上,在这里看到 CUDA、cuDNN 和 tensorflow-gpu 版本的推荐配置:configure page

截个图,方便查看:



查看自己的 CUDA 和 cudnn 的版本:

1)直接用 nvcc --version 查看:


2)CUDA 一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了 CUDA 的版本信息,执行语句:
cat /usr/local/cuda/version.txt  

3)cuDNN 的信息在其头文件里,执行语句:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 


这里可以到看到 CUDA 版本是 9.0,cuDNN 版本是 7.0.5,官方推荐的 tensorflow 对应版本是:1.5 / 1.6 / 1.7

解决

pip uninstall tensorflow-gup==1.0.1 pip install tensorflow-gpu==1.5.0 

4. 执行测试时报错 * 2

numpy.core.umath failed to import

解决:仍然是 Tensorflow-gpu 的版本问题,命令行输入:

pip install -U numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ 

5. 执行测试时报错 * 3

PermissionError: [Errno 13] Permission denied: 'images/out/dog.jpg'

解决:是因为 /image 目录下已经有了 out 文件夹,导致冲突,删除 out 文件夹即可。

文章来源: https://blog.csdn.net/qq_31347869/article/details/88919165
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!