解决tensorflow报错:AttributeError: module 'tensorflow.keras.backend' has no attribute 'get_session' 问题
文章目录:
先说明以下我自己的环境:
Ubuntu18.04tensorflow-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
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠