我正在尝试生成 YOLOv2 模型 yolo.h5,以便我可以加载这个预先训练的模型。我正在尝试将 Andrew Ng coursera Yolo 作业(在tensorflow 1.x 中运行)移植到tensorflow 2.3。由于tensorflow uprade( https://www.tensorflow.org/guide/upgrade),我能够干净地移植它,但我几乎没有意识到我无法下载 yolo.h5 文件(要么它被损坏,要么下载时间太长)出来),因此我认为我应该构建一个,并按照https://github.com/JudasDie/deeplearning.ai/issues/2的说明进行操作。当我克隆 YAD2k 存储库并下载 yolo.weights 和 yolo.cfg 时,它看起来非常简单。我按照说明运行了以下命令:python yad2k.py yolo.cfg yolo.weights model_data/yolo.h5但我收到以下错误:-Traceback (most recent call last): _main(parser.parse_args())File "yad2k.py", line 233, in _main Lambda(File "/home/sunny/miniconda3/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 925, in __call__ return self._functional_construction_call(inputs, args, kwargs,File "/home/sunny/miniconda3/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1117, in _functional_construction_call outputs = call_fn(cast_inputs, *args, **kwargs)File "/home/sunny/miniconda3/lib/python3.8/site-packages/tensorflow/python/keras/layers/core.py", line 903, in call result = self.function(inputs, **kwargs)File "/home/sunny/YAD2K/yad2k/models/keras_yolo.py", line 32, in space_to_depth_x2 return tf.space_to_depth(x, block_size=2)AttributeError: module 'tensorflow' has no attribute 'space_to_depth'从所有聊天中,我发现上述内容需要在tensorflow 1.x 中运行。然而,它让我回到了开始的地方,即在 TensorFlow 1.x 中运行它。我愿意坚持使用 TensorFlow 2.3。想知道是否有人可以在这里指导我。坦率地说,要让我继续下去,我所需要的只是一个 hd5 模型文件。但我认为生成一个比得到一个更好的学习。
1 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
当您将 yad2k 存储库下的所有代码(特别是 models 文件夹下的 yad2k.py 和 python 文件)升级到tensorflow 2.x 时,上述问题就会消失。tensorflow 提供的精美升级实用程序通过将原始调用替换为兼容的tf.compat.v1.space_to_depth(input=x, block_size=...)
因此,对于那些计划进行 TensorFlow 和 Keras 降级的艰苦工作的人,我建议他们尝试 TensorFlow 升级。这节省了大量时间。
这负责我的模型 h5 文件的创建。我的错——我问这个问题时没有考虑到这一点。
添加回答
举报
0/150
提交
取消