keras支持众多的后端,目前包括tensorflow,mxnet,theano,作为目前最火的tensorflow高级API,在github上的活跃程度一直居高不下,笔者在上文(http://www.jianshu.com/writer#/notebooks/11212452/notes/15821109)中配置了Ubuntu+tensorflow和cuda,cudnn.
并通过pip安装了keras了,pip install keras但在运行时发现报错:File “/home/mohandsamro/anaconda2/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py”, line 2856, in conv2d
x = tf.nn.convolution(input=x,AttributeError: ‘module’ object has no attribute ‘convolution’
经过查阅,在stackoverlow上给出的解释(https://stackoverflow.com/questions/42984819/tensorflow-tf-nn-convolution-error)是keras的版本不支持新的tensorflow版本。
于是将keras和tensrflow卸载,但安装最新版本的keras时发现调用tensorflow库时报错:
ImportError: No module named _pywrap_tensorflow
将keras和tensorflow再次清理(pip uninstall …或者conda remove …)。
经过查阅资料(http://www.cnblogs.com/darkknightzh/p/6592052.html)发现是由于在安装各种包过程中,安装了不同版本的protobuffer导致。
解决方案:通过pip install tensorflow-gpu 和pip install keras安装通过pip uninstall protobuf卸载,通过protoc –version命令查看protobuf的版本号,直到所有版本的protobuf都卸载完毕,然后通过pip install protobuf安装最新版本的protobuf库。调用tensorflow库,发现keras-gpu和tensorflow-gpu均可正常使用,完美解决。