ImportError:无法从keras导入名称'_obtain_input_shape'

时间:2018-03-05 14:52:23

标签: keras keras-layer keras-2

在Keras,

我正在尝试导入_obtain_input_shape,如下所示:

from keras.applications.imagenet_utils import _obtain_input_shape

但是,我收到以下错误:

  

ImportError:无法导入名称'_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)`

请帮忙? 提前致谢。

7 个答案:

答案 0 :(得分:29)

您不必降级Keras 2.2.2。

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

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

keras.applications.imagenet_utils

from keras.applications.imagenet_utils import _obtain_input_shape

答案 1 :(得分:9)

我找到了一种行之有效的方法。您只需使用

from keras_applications.imagenet_utils import _obtain_input_shape 

注意:它是keras_applications而不是keras.application

答案 2 :(得分:6)

发生此问题的原因是keras版本。

在我的情况下,我将keras 2.2.2降级到2.2.0,问题已解决。

答案 3 :(得分:1)

在 Colab 中,我通过导入 Keras 并安装来解决它:

import keras
!pip install keras_applications
from keras_applications.imagenet_utils import _obtain_input_shape

答案 4 :(得分:0)

对于keras 2.2.4: 更改如下所示的行以使其起作用。

from keras_applications.imagenet_utils import _obtain_input_shape

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

答案 5 :(得分:0)

不推荐使用keras_applications.imagenet_utils

回溯(最近通话最近): 在第36行的文件“ inception_v3.py”中 从keras_applications.imagenet_utils导入_obtain_input_shape ModuleNotFoundError:没有名为“ keras_application”的模块

答案 6 :(得分:0)

from keras.applications.imagenet_utils import obtain_input_shape

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