ImportError: cannot import name '_obtain_input_shape' from keras

ImportError: cannot import name '_obtain_input_shape' from keras

在 Keras 中,

我正尝试按如下方式导入 _obtain_input_shape

from keras.applications.imagenet_utils import _obtain_input_shape

但是,我收到以下错误:

ImportError: cannot import name '_obtain_input_shape'

我尝试导入 _obtain_input_shape 的原因是我可以确定输入形状(以便加载 VGG-Face 如下:

我用它来确定输入张量的正确输入形状,如下所示:

input_shape = _obtain_input_shape(input_shape,
                                  default_size=224,
                                  min_size=48,
                                  data_format=K.image_data_format(),
                                  require_flatten=include_top)`

请帮忙? 提前致谢。

这个问题是因为keras的版本问题。

就我而言,我是将keras 2.2.2降级到2.2.0,问题就解决了。

我找到了一个很有效的方法。您只需使用

from keras_applications.imagenet_utils import _obtain_input_shape 

注意:是keras_applications而不是keras.application

您不必降级 Keras 2.2.2。

Keras 2.2.2中,keras.applications.imagenet_utils模块中没有_obtain_input_shape方法。您可以在 keras-applications 下使用模块名称 keras_applications(下划线)找到它。

因此您不必将 Keras 降级到 2.2.0,只需更改:

from keras.applications.imagenet_utils import _obtain_input_shape

from keras_applications.imagenet_utils import _obtain_input_shape

对于 keras 2.2.4: 像下面这样更改行以使其工作。

from keras_applications.imagenet_utils import _obtain_input_shape

注意:它是从 keras_applications 导入的,而不是像以前那样从 keras.applications 导入。

keras_applications.imagenet_utils 已弃用

回溯(最近调用最后): 文件“inception_v3.py”,第 36 行,位于 从 keras_applications.imagenet_utils 导入 _obtain_input_shape ModuleNotFoundError: 没有名为 'keras_application

的模块

在 Colab 中,我通过导入 Keras 并安装 :

解决了这个问题
import keras
!pip install keras_applications
from keras_applications.imagenet_utils import _obtain_input_shape
from keras.applications.imagenet_utils import obtain_input_shape

不是_obtain_input_shape。这适用于 keras==2.5.0rc0 (pip install keras==2.5.0rc0)