好吧,在经历了许多痛苦和折磨之后,我发现了以下内容:
尽管模型具有Session和Graph,但在某些张量流方法中,仍使用默认的Session和Graph。为了解决这个问题,我必须明确地说我想同时使用Session和Graph作为默认值:
with session.as_default(): with session.graph.as_default():
完整代码:
from tensorflow import kerasimport tensorflow as tfimport numpy as npimport logconfig = tf.ConfigProto( device_count={'GPU': 1}, intra_op_parallelism_threads=1, allow_soft_placement=True)config.gpu_options.allow_growth = Trueconfig.gpu_options.per_process_gpu_memory_fraction = 0.6session = tf.Session(config=config)keras.backend.set_session(session)seatbelt_model = keras.models.load_model(filepath='./seatbelt.h5')SEATBEL_INPUT_SHAPE = (-1, 120, 160, 1)def predict_seatbelt(image_arr): try: with session.as_default(): with session.graph.as_default(): image_arr = np.array(image_arr).reshape(SEATBEL_INPUT_SHAPE) predicted_labels = seatbelt_model.predict(image_arr, verbose=1) return predicted_labels except Exception as ex: log.log('Seatbelt Prediction Error', ex, ex.__traceback__.tb_lineno)


