首先backend使用的是tensorflow1.9.0,由于最近在使用keras,因此需要安装一下keras.
由于安装时忽略了tensorflow与keras版本之间的对应关系,直接使用命令行安装的keras
sudo pip2 install keras
默认安装最新版本的keras 2.3.1,对应的是高版本的tensorflow,因此使用时出现下述错误:
Using TensorFlow backend.
Traceback (most recent call last):
File "mnist_test.py", line 8, in <module>
import keras
File "/usr/local/lib/python2.7/dist-packages/keras/__init__.py", line 3, in <module>
from . import utils
File "/usr/local/lib/python2.7/dist-packages/keras/utils/__init__.py", line 6, in <module>
from . import conv_utils
File "/usr/local/lib/python2.7/dist-packages/keras/utils/conv_utils.py", line 9, in <module>
from .. import backend as K
File "/usr/local/lib/python2.7/dist-packages/keras/backend/__init__.py", line 1, in <module>
from .load_backend import epsilon
File "/usr/local/lib/python2.7/dist-packages/keras/backend/load_backend.py", line 90, in <module>
from .tensorflow_backend import *
File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 54, in <module>
get_graph = tf_keras_backend.get_graph
AttributeError: 'module' object has no attribute 'get_graph'
可以发现model无法获得tensorflow的graph,当时的解决方法是不使用keras第三方,直接使用tensorflow自带的keras library
如:
import keras
替代为:
import tensorflow.keras as keras
from keras.layer import Conv2D,Dense
替代为:
from tensorflow.keras.layer import Conv2D,Dense
....
后来无意间想到应该是版本的对应关系导致的问题,因为tensorflow的后续版本发生了很大的改变,那么keras每个版本之间应该也是有着很大的区别,因此查了下tensorflow和keras之间的版本对应关系。
链接:版本对应关系
重新安装keras,现电脑的配置为:
tensorflow:1.9.0
keras: 2.2.0
使用正常,不再出现问题。
其中keras教程网站为:https://keras.io/zh/
在尝试使用keras时遇到了与tensorflow版本不兼容的错误,原本backend为tensorflow1.9.0,直接安装的keras 2.3.1导致问题。通过查阅资料发现,keras和tensorflow之间存在版本对应关系。解决方案是降级keras到2.2.0,与tensorflow 1.9.0匹配,现在问题已解决并能正常使用。
315

被折叠的 条评论
为什么被折叠?



