keras报错TypeError:softmax() got an unexpected keyword argument 'axis'的解决办法

 

出现错误情况

今天在使用keras的时候出现了如下错误:

TypeError:softmax() got an unexpected keyword argument 'axis'

google一下,发现主要是tensorflow与keras版本不匹配的问题,而tensorflow与cudnn之间也存在版本匹配的问题,要同时找到3个互相匹配的版本实在有点麻烦。

最后,我总结出了一个在Anaconda环境下的解决版本,强烈推荐使用Anaconda来安装各种环境,它能够允许你快速安装相同软件的不同版本,同时能够自动下载某些模块依赖的模块,正确使用Anaconda可以节省很多不必要的时间去解决错误。

解决过程

首先,卸载tensorflow和keras包,在conda环境下执行下列命令:

conda uninstall tensorflow-gpu
conda uninstall tensorflow
conda uninstall keras
pip uninstall tensorflow-gpu
pip uninstall tensorflow
pip uninstall keras

有人可能会问为什么这么做,其实主要是为了避免安装混乱,提前把所有包卸载一遍。

卸载完毕后,开始使用conda命令安装,而不使用pip命令安装,因为conda命令安装可以同时下载其依赖的包,大大减少错误的可能性。命令如下:

conda install tensorflow-gpu==1.8.0
conda install keras

以往由于cudnn版本的限制,我们只能安装tensorflow-gpu的低版本,但是低版本会带来各种问题,所以现在我们安装tensorflow-gpu==1.8.0,他会同时安装condad的高版本。

安装完毕后,就会发现,keras和tensorflow的使用没有问题了。