tf2.1下生成yolo.h5文件

在完成吴恩达coursera上面深度学习第四门课卷积神经网络(Convolutional Neural Networks的第三周目标检测(Object detection)的编程作业使用YOLO算法完成车辆检测时,由于TensorFlow版本不兼容的关系,作业上使用的是TensorFlow1.x,而我现在学的是TensorFlow2.x,所以在加载作业中给出的预训练的YOLO模型时会出现如下报错:

# 加载
yolo_model = tf.keras.models.load_model("model_data/yolov2.h5")

# unfortunately,报错了
AttributeError: module 'tensorflow' has no attribute 'space_to_depth'
#(直接原因是tf2中space_to_depth函数的调用路径为tf.nn.space_to_depth,而tf1中直接使用tf.space_to_depth)

但是为了完成这个作业,体会下YOLO算法的美妙,在参考博客1参考博客2以及TensorFlow2.1官方API的帮助下,我重新生成了一个适用于tf2.0以上的一个yolov2.h5文件,以下是我的经验和步骤,互勉。
另外,这个步骤也是适用于其他开源的训练好的模型的导入,原理是一样的,这样就可以用预训练的模型来微调得到自己的模型或者使用别人的参数进行初始化。

1. 文件准备
  1. yad2k文件夹和yad2k.py
    去GitHub上下载YOLOv2的脚本https://github.com/allanzelener/YAD2K
    在这里插入图片描述
    然后你会得到一个YAD2K-master的文件夹,把其中yad2k文件夹和yad2k.py移到一个新的文件夹中先放在桌面,假设把这个新的文件夹命名为YOLO
    在这里插入图片描述

  2. 预训练的权重yolov2.weights和配置文件yolov2.cfg
    yolov2.weights:可以直接下载,但很慢http://pjreddie.com/media/files/yolo.weights
    yolov2.cfg:在cfg中选择yolov2.cfg下载https://github.com/pjreddie/darknet
    上述两个文件也可以直接使用课程的文件夹中的(我是这样做的,因为网速太慢),然后将这类两个文件放入刚刚的yad2k文件夹中。(然后还可以在YOLO文件夹中增加一个新的model_data文件夹来存放等下要生成的yolo.h5,以及数据类别、描框大小等标签,这个不影响生成,只是路径,如果不这样,等下改一下路径就可以)最后得到的文件夹如下:
    在这里插入图片描述

  3. 修改接口,将tf1的函数改为tf2的,并且用tf.keras来替代keras
    参考API,修改以下几个文件。这一步最为关键,也比较容易出错,不过没事,就算没改完等下终端会报错,再接着改然后重新执行即可。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2. 生成文件
  1. 打开终端进入TensorFlow2.1环境,并且进入YOLO目录
source activate TF2.1
cd Desktop/YOLO
  1. 生成文件
python yad2k.py yolov2.cfg yolov2.weights model_data/yolov2.h5

如果上述命令在终端报错那就根据提示继续修改,没问题的话就能得到一个yolov2.h5文件了。
在这里插入图片描述

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
"吴恩达yolo.h5" 是指由吴恩达等人开发的一个名为 YOLO (You Only Look Once) 的深度学习模型文件YOLO 是一种实时目标检测算法,尤其在计算机视觉领域广为使用。 吴恩达是一位在人工智能领域具有极高声望的学者和企业家,他在机器学习和深度学习方面有着丰富的经验和杰出的成就。他一直致力于推动人工智能的发展,并且是 Coursera 在线课程的创始人之一。 YOLO 是一种基于卷积神经网络的目标检测算法,其主要思想是将目标检测任务转化为一个回归问题。相比于其他目标检测算法,YOLO 的最大特点是实时性能,在保持较高准确率的同时,能够在实时视频流上实时检测出目标物体。 ".h5" 是指该模型文件的后缀名,代表着其使用 HDF5 (Hierarchical Data Format) 存储格式。HDF5 是一种用于存储和组织大量数据集的文件格式,广泛应用于科学计算、机器学习和人工智能领域。 吴恩达所发布的 YOLO 模型文件 "yolo.h5" 可以作为一个已经训练好的目标检测模型,在应用中可以直接加载并利用。这意味着开发者无需从头开始训练模型,而是可以直接使用吴恩达团队所提供的预训练模型,节省了大量的时间和计算资源。 总之,"吴恩达yolo.h5" 是一种由吴恩达开发的目标检测模型文件,基于深度学习算法,用于实时检测目标物体,并具有高效准确的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值