首页 > 解决方案 > 无法在 Keras 中实例化 Xception 模型

问题描述

我在多 GPU 机器上的 NVIDIA Docker 容器中运行 Keras。我想实例化一个相当标准的模型(Xception),但我不断收到奇怪的错误。MRE:

import tensorflow as tf
from keras.applications import Xception

height = 299
width = 299
num_classes = 1000

# Instantiate model
model = Xception(weights=None, input_shape=(height, width, 3), classes=num_classes)

我得到错误:

Traceback (most recent call last):
  File "basic_test.py", line 9, in <module>
    model = Xception(weights=None, input_shape=(height, width, 3), classes=num_classes)
  File "/usr/local/lib/python2.7/dist-packages/keras/applications/xception.py", line 235, in Xception
    x = Dense(classes, activation='softmax', name='predictions')(x)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 619, in __call__
    output = self.call(inputs, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keras/layers/core.py", line 881, in call
    output = self.activation(output)
  File "/usr/local/lib/python2.7/dist-packages/keras/activations.py", line 29, in softmax
    return K.softmax(x)
  File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 2963, in softmax
    return tf.nn.softmax(x, axis=axis)
TypeError: softmax() got an unexpected keyword argument 'axis'

Python、Keras 和 Tensorflow 的版本:

python -c 'import keras; import tensorflow; import sys; print(sys.version, 'keras.__version__', 'tensorflow.__version__')'
Using TensorFlow backend.
('2.7.12 (default, Nov 20 2017, 18:23:56) \n[GCC 5.4.0 20160609]', '2.1.6', '1.4.0')

标签: pythontensorflowkeras

解决方案


如here所述,这似乎是 keras 和 tensorflow1.4版本的一个已知问题。您可能希望将两者都更新到最新版本以解决此问题。


推荐阅读