Python get_session()和keras.backend.get_session()返回不同的会话对象

Python get_session()和keras.backend.get_session()返回不同的会话对象,python,tensorflow,keras,Python,Tensorflow,Keras,我注意到tf.keras.backend.get_session()和keras.backend.get_session()返回不同的会话对象 以确保它们返回相同的对象?我有一些代码使用tf.keras.backend.get_session()将keras模型保存为tf.saved_model.simple_save,但如果模型来自使用keras而不是tensorflow.keras的库,则会抛出未初始化错误 示例代码: import tensorflow as tf from keras.a

我注意到tf.keras.backend.get_session()和keras.backend.get_session()返回不同的会话对象

以确保它们返回相同的对象?我有一些代码使用tf.keras.backend.get_session()将keras模型保存为tf.saved_model.simple_save,但如果模型来自使用keras而不是tensorflow.keras的库,则会抛出未初始化错误

示例代码:

import tensorflow as tf
from keras.applications import ResNet50
import keras.backend as K
import tensorflow.keras.backend as J

model = ResNet50()
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

print(K.get_session())
print(J.get_session())

你有更大的问题,你不应该混合使用
keras
tf.keras
,这些模块是不兼容的,如果你混合使用它们,你会得到奇怪的错误


如果您确实有很好的理由更改会话,可以使用
K.set\u session
将会话手动设置为其他实现返回的对象。

我没有混合代码。我只是不想重复使用backend.get_session()保存模型的低级代码。(例如,当有人共享keras中的某个模型代码而不是tf.keras)@几何图形请参阅更新,但仍应小心,因为可能发生意外情况。@MatiasValdenegro:为什么调用
tf.get\u default\u session
,同时使用
tf.keras
在之后抛出错误,如果我使用它而不是
tf.keras.backend.get_session
?如果
tensorflow
tf.keras
不兼容,我似乎在另一个地方使用
tf.get\u default\u graph
,我没有看到任何错误。