如何将darknet yolo模型转为keras?
How to convert the darknet yolo model to keras?
我正在使用 yad2k 将暗网 YOLO 模型转换为 keras .h5 格式。我在包含 yad2k 脚本的目录上方的目录中有 yolov3-voc.cfg、yolov3.weights 和 yolov3.cfg。当我运行以下命令时:
python3 yad2k.py -p ../yolov3-voc.cfg ../yolov3.weights model_data/yolov3.h5
或:
python3 yad2k.py -p ../yolov3.cfg ../yolov3.weights model_data/yolov3.h5
我收到以下错误:
Traceback (most recent call last):
File "yad2k.py", line 271, in <module>
_main(parser.parse_args())
File "yad2k.py", line 90, in _main
cfg_parser.read_file(unique_config_file)
File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 718, in read_file
self._read(f, source)
File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 1080, in _read
raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: '<???>', line: 7
'<!DOCTYPE html>\n'
我该如何解决这个问题?
您的暗网 .cfg
文件可能不正确。它们应该看起来像这样:
[net]
batch=128
subdivisions=1
height=227
width=227
channels=3
momentum=0.9
decay=0.0005
max_crop=256
learning_rate=0.01
policy=poly
power=4
max_batches=800000
angle=7
hue = .1
saturation=.75
exposure=.75
aspect=.75
[convolutional]
filters=96
...
(取自https://github.com/pjreddie/darknet/blob/master/cfg/alexnet.cfg)
您的 .cfg
文件似乎包含 HTML。
您无法使用 YAD2K 将 YOLOv3 转换为 Keras 模型。这是因为YOLOv3的配置文件有一个[shortcut]
header。 yad2k.py 文件没有处理这个 header 的方法,因为它是在 YOLOv2 时代编写的(没有这个 layer/header)。
但是,在您的情况下,您似乎正在读取另一种配置文件,该文件显然具有 <!DOCTYPE html>\n
标记。但无论如何,即使你用 YOLOv3 cfg 尝试它,它也不会因为我上面提到的原因而起作用。自己试过了!
您应该尝试此 Github repository 中的说明,这是 "A Keras implementation of YOLOv3"
git clone https://github.com/qqwweee/keras-yolo3.git
cd keras-yolo3
wget https://pjreddie.com/media/files/yolov3.weights
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
python yolo.py OR python yolo_video.py [video_path] [output_path(optional)]
我正在使用 yad2k 将暗网 YOLO 模型转换为 keras .h5 格式。我在包含 yad2k 脚本的目录上方的目录中有 yolov3-voc.cfg、yolov3.weights 和 yolov3.cfg。当我运行以下命令时:
python3 yad2k.py -p ../yolov3-voc.cfg ../yolov3.weights model_data/yolov3.h5
或:
python3 yad2k.py -p ../yolov3.cfg ../yolov3.weights model_data/yolov3.h5
我收到以下错误:
Traceback (most recent call last):
File "yad2k.py", line 271, in <module>
_main(parser.parse_args())
File "yad2k.py", line 90, in _main
cfg_parser.read_file(unique_config_file)
File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 718, in read_file
self._read(f, source)
File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 1080, in _read
raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: '<???>', line: 7
'<!DOCTYPE html>\n'
我该如何解决这个问题?
您的暗网 .cfg
文件可能不正确。它们应该看起来像这样:
[net]
batch=128
subdivisions=1
height=227
width=227
channels=3
momentum=0.9
decay=0.0005
max_crop=256
learning_rate=0.01
policy=poly
power=4
max_batches=800000
angle=7
hue = .1
saturation=.75
exposure=.75
aspect=.75
[convolutional]
filters=96
...
(取自https://github.com/pjreddie/darknet/blob/master/cfg/alexnet.cfg)
您的 .cfg
文件似乎包含 HTML。
您无法使用 YAD2K 将 YOLOv3 转换为 Keras 模型。这是因为YOLOv3的配置文件有一个[shortcut]
header。 yad2k.py 文件没有处理这个 header 的方法,因为它是在 YOLOv2 时代编写的(没有这个 layer/header)。
但是,在您的情况下,您似乎正在读取另一种配置文件,该文件显然具有 <!DOCTYPE html>\n
标记。但无论如何,即使你用 YOLOv3 cfg 尝试它,它也不会因为我上面提到的原因而起作用。自己试过了!
您应该尝试此 Github repository 中的说明,这是 "A Keras implementation of YOLOv3"
git clone https://github.com/qqwweee/keras-yolo3.git
cd keras-yolo3
wget https://pjreddie.com/media/files/yolov3.weights
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
python yolo.py OR python yolo_video.py [video_path] [output_path(optional)]