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

Tsh*_*dau 19 keras keras-layer keras-2

在Keras,

我正在尝试导入_obtain_input_shape如下:

from keras.applications.imagenet_utils import _obtain_input_shape
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

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)`
Run Code Online (Sandbox Code Playgroud)

请协助?提前致谢.

Gee*_*ode 38

您不必降级Keras 2.2.2.

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

所以你不必将你的Keras降级到2.2.0就可以改变:

from keras.applications.imagenet_utils import _obtain_input_shape
Run Code Online (Sandbox Code Playgroud)

from keras_applications.imagenet_utils import _obtain_input_shape
Run Code Online (Sandbox Code Playgroud)

  • @Geeocode 我可以从 TensorFlow 1.12 导入 _obtain_input_shape 吗? (2认同)

小智 9

我找到了一种效果很好的方法.你刚才用

from keras_applications.imagenet_utils import _obtain_input_shape 
Run Code Online (Sandbox Code Playgroud)

注意:它keras_applications不是keras.application.


小智 6

由于keras的版本,出现了这个问题.

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