TypeError: softmax() got an unexpected keyword argument axis解决办法

因为换了一台机器,又重新装了一遍环境,运行之前的项目却出现了TypeError: softmax() got an unexpected keyword argument ‘axis’ 错误。

根据错误提示可知softmax方法中不包含axis参数,因此导致出错;虽然说输入的代码中并没有用到错误中出现的方法,但是既然出现这个问题,就说明安装的keras库可能跟TensorFlow库不兼容。

根据错误提示找到tensorflow_backend.py中第3149行,发现此处调用了tensorflow的nn中的softmax方法,参数问题就出在这里。

那么解决方案就来了,找到这个方法声明的位置(nn_ops.py 1459行,版本不同,位置可能不同,如果使用PyCharm可以通过按住Ctrl然后点击softmax后便会跳转到对应位置),发现声明中的参数确实没有axis,但是有一个dim是跟axis类型相似的。

所以将tensorflow_backend.py中第3149行中axis=axis改成dim=axis即可解决问题。