????????这个yolo.h5文件走了不少弯路呐,不过最后终于搞好了,现在把最详细的脱坑过程记录下来,希望小伙伴们少走些弯路。
? ? ? ? 最初的代码是从下面这个大佬博主的百度网盘下载的,但是h5文件无法读取。(22条消息) 【中文】【吴恩达课后编程作业】Course 4 - 卷积神经网络 - 第三周作业_何宽的博客-CSDN博客
?
? ? ? ? 因为我用的tensorflow版本是2.0的,查了资料好些人的建议是把tensorflow版本降低,也有自己生成h5文件的。我就决定自己生成h5文件,参考了这篇博主的文章:
(22条消息) yolo.h5文件问题的解决 - 吴恩达深度学习:目标检测之YOLO算法_Steve Wang's blog-CSDN博客
从这篇博客里下载了YAD2K-master.zip
????????之前下载的作业文件夹model_data里已经有yolov2.cfg和yolov2.weights文件,因此只需将YAD2K的yad2k文件夹替换作业的yad2k文件夹。
然后把yolov2.weights 和yolov2.cfg 以及yad2k.py 三个文件移动到作业的model_data同名文件夹下,如图所示:
?然后打开Anaconda Prompt,进入到course4-week3文件下(每个人的文件地址不一样,需要适当修改,下面进入文件夹命令作为参考),命令如下:
1 G:
2 cd deep learning\Andrael Ng homework\course4-week3
? ? ? ? ?
然后输入命令:
python yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
但是运行的时候报错 AttributeError: module ‘tensorflow‘ has no attribute ‘space_to_depth‘
????????是因为yad2k文件夹下的yad2k\models\keras_yolo.py这个文件是基于1.0版本的tensorflow编写的,2.0以上的tensorflow需要把tf.space_to_depth改成tf.compat.v1.space_to_depth,再运行代码就可以了。tf.space_to_depth这句代码在keras_yolo.py的32行。
改好后就能成功运行啦!?
|