图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法

这个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文件夹。
图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法
文章图片

然后把yolov2.weightsyolov2.cfg以及yad2k.py三个文件移动到作业的model_data同名文件夹下,如图所示:
图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法
文章图片

然后打开Anaconda Prompt,进入到course4-week3文件下(每个人的文件地址不一样,需要适当修改,下面进入文件夹命令作为参考),命令如下:

1G: 2cd deep learning\Andrael Ng homework\course4-week3

图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法
文章图片


然后输入命令:
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行。
图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法
文章图片


改好后就能成功运行啦!

【图像处理|吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法】

    推荐阅读