tensorflow读取pb文件推理

该博客展示了如何使用TensorFlow加载预训练的Lenet5模型,并进行预测。首先导入必要的库,然后加载MNIST数据集,配置会话,从文件中解析并导入模型定义。接着,获取输入和预测输出的张量,最后运行模型进行预测并计算时间。
摘要由CSDN通过智能技术生成
import tensorflow as tf
from tensorflow.python.platform import gfile
import numpy as np
import time
(x_train, y_train),(x_test, y_test) = tf.keras.datasets.mnist.load_data()
config = tf.ConfigProto()
sess = tf.Session(config=config)
with gfile.FastGFile('lenet5.pb', 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    sess.graph.as_default()
    tf.import_graph_def(graph_def, name='')
    opname = [tensor.name for tensor in tf.get_default_graph().as_graph_def().node] 
    print(opname)
# 获取输入tensor
x = tf.get_default_graph().get_tensor_by_name("input_1:0")    # 不知道输入名时通过节点名查,一般情况下是每一个节点tf.get_default_graph().as_graph_def().node[0].name,名字构成后有个:0
print("input:", x)
# 获取预测tensor
pred = tf.get_default_graph().get_tensor_by_name("dense_1/Softmax:0")  # tf.get_default_graph().as_graph_def().node[-1].name,有可能不是是最后一一个
print(pred)

start = time.time()
for tx,ty in zip(x_test,y_test):
    pre = sess.run(pred, feed_dict={x:tx.reshape(1,28,28,1)/255}) # 预测直接run输出,传入输入
    pre = np.argmax(pre)
  #  print("Test Case: " + str(ty))
  #  print("Prediction: " + str(pre))
print(time.time()-start)

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值