问题描述:ValueError: bad marshal data (unknown type code)
前提背景说明:
在完成吴恩达coursera上面深度学习第四门课卷积神经网络(Convolutional Neural Networks的第三周目标检测(Object detection)的编程作业使用YOLO算法完成车辆检测时,由于TensorFlow版本不兼容的关系,作业上使用的是TensorFlow1.x,而我现在学的是TensorFlow2.x,所以在加载作业中给出的预训练的YOLO模型时出错
问题解决:重新生成h5文件
1、文件准备
-
准备yad2k文件夹、yad2k.py
获取地址:allanzelener/YAD2K: YAD2K: Yet Another Darknet 2 Keras (github.com)
下载下来将得到YAD2K-master,将其中的yad2k文件夹、yad2k.py移入一个新的文件夹中(这里我放到桌面上创建的YOLO中文件夹中)
-
预训练权重yolov2.weights和配置文件yolov2.cfg
这里我直接复制了课程文件夹中的
在YOLO文件夹中新增一个model_data文件夹,等会用来存放生成的yolo.h5
-
将keras_yolo.py中的,tf1的函数改为tf2的函数:
将import tensorflow as tf 改为 import tensorflow.compat.v1 as tf tf.disable_v2_behavior()
2、生成文件
在YOLO目录下
python yad2k.py yolov2.cfg yolov2.weights model_data/yolov2.h5