解决tensorflow报错:AttributeError: module 'tensorflow.keras.backend' has no attribute 'get_session' 问题
文章目录:
先说明以下我自己的环境:
Ubuntu18.04
tensorflow-gpu2.2.0
1 错误原因分析
我是在代码中调用了sess = tf.keras.backend.get_session()
报的这个错误
导致这错误的原因是由于tensorflow版本的问题
,在tensorflow2.x
中已经弃用该函数,如果你改为tensorflow.1
版本应该就可以跳过这个错误。但是,我本意并不想改变tensorflow的版本,而且还要使用这个函数,应该怎么办呢
,请继续看下文!!!
2 错误解决方式
这错误是可以解决的,在tensorflow2.x
中有个API就是为了兼容(compat)
某些tensorflow1.x版本
和某些tensorflow2.x版本
,该API就是:
tf.compat.v1
和tf.compat.v2
-
tf.compat.v1
:是为了兼容tensorflow1.x
中的某些API -
tf.compat.v2
:是为了兼容tensorflow2.x
中的某些API
因此只要把:
sess = tf.keras.backend.get_session()
改为如下即可:
sess = tf.compat.v1.keras.backend.get_session
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠