'tensorflow' has no attribute 'space_to_depth' 当运行 yad2k生成模型h5文件时tensorflow 2.3出错

'tensorflow' has no attribute 'space_to_depth' error with tensorflow 2.3 when running yad2k to generate model h5 file

我正在尝试生成 YOLOv2 模型 yolo.h5,以便我可以加载这个预训练模型。我正在尝试将 Andrew Ng coursera Yolo 作业(tensorflow 运行s 1.x)移植到 tensorflow 2.3.

由于 tensorflow uprade (https://www.tensorflow.org/guide/upgrade), But little did I realize that I cannot download the yolo.h5 file ( either its get corrupted or the download times out) and therefore I thought I should build one and I followed instructions from 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, i
n 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'

从所有聊天中我发现上面需要 运行 in tensorflow 1.x 。然而,它让我回到了我开始的地方,即 运行 在 tensorflow 1.x 中。我愿意坚持使用 tensorflow 2.3。

想知道是否有人可以在这里指导我。 F运行kly,要让我开始,我只需要一个模型 hd5 文件。但我认为生成一个比获得一个更好的学习。

当您将 yad2k 存储库下的所有代码(特别是模型文件夹下的 yad2k.py 和 python 文件升级到 tensorflow 2.x 时,上述问题就会消失。提供的漂亮的升级实用程序by tensorflow 通过替换对兼容 tf.compat.v1.space_to_depth(input=x, block_size=...)[=17= 的原始调用来为您施展魔法]

因此,对于那些计划努力降级 tensorflow 和 keras 的人,我建议他们尝试 tensorflow 升级。这样可以节省很多时间。

这负责创建我的模型 h5 文件。我的错 - 我问问题的时候没有考虑它。