【tensorflow 错误解决】Tensor Tensor("predictions/Softmax:0",shape=(?,4),dtype=float32) is not an element

错误描述:

ValueError : Tensor Tensor("predictions/Softmax:0",shape=(?,4),dtype=float32) is not an element of this graph

在进行加载模型进行预测时报这个错误。

问题描述:
在keras+tensorflow框架下训练神经网络并得到权重h5文件。
在之后需要调用的python代码中读取权重和图片并预测时出现以下报错
“ValueError : Tensor Tensor(“predictions/Softmax:0”, shape=(?, 2), dtype=float32) is not an element of this graph

解决方法:
主要是在读取权重后增加一行graph = tf.get_default_graph()

model = load_model()
graph = tf.get_default_graph()
并在需要预测时前加 with graph.as_default():

# -*- coding: utf-8 -*-
# 加载模型
import tensorflow as tf
graph = tf.get_default_graph()

def resnet_50_predict_from_path(img_path,prediction):
    """
    :param image_path: 本地图片路径
    :param prediction: prediction 对象
    :return: 返回预测类别以及概率值
    """
    with graph.as_default():
        predictions, probabilities = prediction.predictImage(img_path, result_count=1)
        if predictions[0] != 'normal' and int(probabilities[0]) > 95:
            return predictions[0],round(float(probabilities[0]),3)
        else:
            predictions='normal'
            probabilities='99.99'
            return predictions,probabilities


def resnet_50_predict_from_img_data(img_data,prediction):
    """
    :param image_data: 图片数据
    :param prediction: prediction 对象
    :return: 返回预测类别以及概率值
    """
    with graph.as_default():
        predictions, probabilities = prediction.predictImage(img_data, result_count=1, input_type='stream')
        if predictions[0] != 'normal' and int(probabilities[0]) > 95:
            return predictions[0],round(float(probabilities[0]),3)
        else:
            predictions='normal'
            probabilities='99.99'
            return predictions,probabilities




已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页