python - 无法在 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')
解决方案
如here所述,这似乎是 keras 和 tensorflow1.4
版本的一个已知问题。您可能希望将两者都更新到最新版本以解决此问题。
推荐阅读
- python - 使用python重命名多个文件,文件名为儒略日期,需要重命名为日历日期
- python - 从 python 执行 LibreOffice Calc Basic 宏
- mysql - 构建系统以检查文件是否已存在并获取它的最佳方法
- php - 在同一页面的另一个 div 中打开链接时更改 href
- mongodb - 连接到在 Docker 中运行的 MongoDb
- javascript - 为其他站点创建嵌入应用程序
- java - 如何更改 application.properties 中的属性?
- javascript - 填充 3 个动态选择框的 PHP/Jquery 问题
- algorithm - 您可以使用火车或公共汽车的城市之间的最短路径 动态编程
- ubuntu - 如何在 ubuntu 终端中使用“head”查看前 10 行手册