import tensorflow as tf
import os
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt


lines = tf.gfile.GFile('F:/Projects/PycharmProjects/test/retrain/output_labels.txt').readlines()
uid_to_human = {}
# 一行一行读取数据
for uid, line in enumerate(lines):
    # 去掉换行符
    line = line.strip('\n')
    uid_to_human[uid] = line


def id_to_string(node_id):
    if node_id not in uid_to_human:
        return ""
    return uid_to_human[node_id]


# 创建一个图来存放google训练好的模型
with tf.gfile.FastGFile('F:/Projects/PycharmProjects/test/retrain/output_graph.pb', 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    tf.import_graph_def(graph_def, name='')


with tf.Session() as sess:
    softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')
    # 遍历目录
    for root, dirs, files in os.walk('F:/Projects/PycharmProjects/opencvtest/Food_classification/test'):
        for file in files:
            # 载入图片
            image_data = tf.gfile.FastGFile(os.path.join(root, file), 'rb').read()
            predictions = sess.run(softmax_tensor, {'DecodeJpeg/contents:0': image_data})# 图片格式是jpg格式
            predictions = np.squeeze(predictions)# 把结果转为1维数据

            # 打印图片路径名称
            image_path = os.path.join(root, file)
            print(image_path)
            # 排序
            top_k = predictions.argsort()[::-1]
            print(top_k)
            for node_id in top_k:
                # 获取分类名称
                human_string = id_to_string(node_id)
                # 获取该分类的置信度
                score = predictions[node_id]
                print('%s (score = %0.5f)' % (human_string, score))

            # 显示图片
            img = Image.open(image_path)
            plt.imshow(img)
            plt.axis('off')
            plt.show()
            print()

import tensorflow as tf
import os
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt


lines = tf.gfile.GFile('F:/Projects/PycharmProjects/test/retrain/output_labels.txt').readlines()
uid_to_human = {}
# 一行一行读取数据
for uid, line in enumerate(lines):
    # 去掉换行符
    line = line.strip('\n')
    uid_to_human[uid] = line


def id_to_string(node_id):
    if node_id not in uid_to_human:
        return ""
    return uid_to_human[node_id]


# 创建一个图来存放google训练好的模型
with tf.gfile.FastGFile('F:/Projects/PycharmProjects/test/retrain/output_graph.pb', 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    tf.import_graph_def(graph_def, name='')


with tf.Session() as sess:
    softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')
    # 遍历目录
    for root, dirs, files in os.walk('F:/Projects/PycharmProjects/opencvtest/Food_classification/test'):
        for file in files:
            # 载入图片
            image_data = tf.gfile.FastGFile(os.path.join(root, file), 'rb').read()
            predictions = sess.run(softmax_tensor, {'DecodeJpeg/contents:0': image_data})# 图片格式是jpg格式
            predictions = np.squeeze(predictions)# 把结果转为1维数据

            # 打印图片路径名称
            image_path = os.path.join(root, file)
            print(image_path)
            # 排序
            top_k = predictions.argsort()[::-1]
            print(top_k)
            for node_id in top_k:
                # 获取分类名称
                human_string = id_to_string(node_id)
                # 获取该分类的置信度
                score = predictions[node_id]
                print('%s (score = %0.5f)' % (human_string, score))

            # 显示图片
            img = Image.open(image_path)
            plt.imshow(img)
            plt.axis('off')
            plt.show()
            print()

# 一行一行读取数据 # 去掉换行符 # 创建一个图来存放google训练好的模型 # 遍历目录 # 载入图片 # 图片格式是jpg格式 # 把结果转为1维数据 # 打印图片路径名称 # 排序 # 获取分类名称 # 获取该分类的置信度 # 显示图片