导入错误:无法导入convert_all_kernels_in_model名称

4

我正在尝试使用ImageAI的模型训练来训练一个AI模型。

这是代码:

 from imageai.Prediction.Custom import ModelTraining
 model_trainer = ModelTraining()
 model_trainer.setModelTypeAsResNet()
 model_trainer.setDataDirectory("idenprof")
 model_trainer.trainModel(num_objects=2, num_experiments=3, enhance_data=True, 
 batch_size=32, show_network_summary=True)

运行时出现的错误如下:

Traceback (most recent call last):
  File ".../FirstTraining.py", line 1, in <module>
    from imageai.Prediction.Custom import ModelTraining
  File ".../lib/python2.7/site-packages/imageai/Prediction/Custom/__init__.py", line 4, in <module>
    from ..DenseNet.densenet import DenseNetImageNet121
  File ".../PycharmProjects/bonez/venv/lib/python2.7/site-packages/imageai/Prediction/DenseNet/densenet.py", line 21, in <module>
    from tensorflow.python.keras.utils import convert_all_kernels_in_model
ImportError: cannot import name convert_all_kernels_in_model

我已经搜索了所有的内容,但是找不到相同的问题或解决问题的方法。我已安装以下依赖项:Tensorflow、OpenCV、Keras 和 ImageAI。

1个回答

6
更新:原来ImageAI尚不支持Tensorflow 2。这个问题可以通过安装以下版本的Tensorflow来解决:pip install tensorflow==1.15.2
我曾遇到同样的问题,并通过在ImageAI库中替换所有tensorflow.python.keras导入为tensorflow.keras来解决了该问题。之后,from imageai.Prediction.Custom import ModelTraining 导入工作正常。
如果你想要跟进,可以查看ImageAI的此开放问题:https://github.com/OlafenwaMoses/ImageAI/issues/494

嗨,阿里,你能详细解释一下你所说的“替换所有tensorflow.python.keras导入…”是什么意思吗?我不确定该怎么做。 - F16Falcon
1
@F16Falcon 基本上在你用 pip 安装的 ImageAI 代码中查找并替换每个 tensorflow.python.kerastensorflow.keras - Ali Cirik
1
@sydney 我在答案中添加了新信息。看起来将tensorflow降级到1.*版本可以解决这个问题。 - Ali Cirik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接