You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras实例化Xception模型报错TypeError:softmax参数axis异常求助

解决Keras实例化Xception模型时的TypeError: softmax() got an unexpected keyword argument 'axis'错误

这个问题我之前也碰到过,核心是Keras和TensorFlow的版本不兼容,具体原因很明确:

  • 你用的Keras 2.1.6在调用TensorFlow后端的softmax函数时,用了axis这个参数名
  • 但你的TensorFlow 1.4.0版本里,tf.nn.softmax只认dim参数(axis是TensorFlow 1.5及以后才新增的参数名)

下面给你几个可行的解决办法,按推荐程度排序:

1. 升级TensorFlow到兼容版本

最省心的方式就是把TensorFlow升级到1.5.0或更高版本,完美匹配Keras 2.1.6的API:

# CPU版本
pip install tensorflow==1.5.0 --upgrade

# GPU版本
pip install tensorflow-gpu==1.5.0 --upgrade

2. 降级Keras适配现有TensorFlow

如果因为环境限制不能升级TensorFlow,那就把Keras降级到2.1.5版本——这个版本的Keras在调用softmax时会用dim参数,刚好适配TF1.4.0:

pip install keras==2.1.5 --upgrade

3. 临时修改Keras后端代码(应急用,不推荐)

要是暂时没法升级/降级,可以手动改Keras的后端代码凑合用:
找到你环境里的/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py文件,定位到softmax函数的定义(大概在2963行):

return tf.nn.softmax(x, axis=axis)

把它改成:

return tf.nn.softmax(x, dim=axis)

⚠️ 注意:这种修改只是临时的,下次重新安装Keras就会失效,仅作为应急方案。

验证修复

改完之后再跑你的测试代码:

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)

应该就能顺利实例化Xception模型了。

内容的提问来源于stack exchange,提问作者DeltaIV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:48:25