You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow MNIST CNN模型:加载SavedModel进行图片预测求助

解决TensorFlow CNN模型加载后找不到输出张量的问题

我明白你遇到的麻烦了——跟着官方教程搭好CNN模型训练完,想拿单张图片测试却卡在找不到输出张量这一步。别慌,我给你一步步拆解解决方案:

第一步:先搞清楚你的模型里有哪些张量

加载完meta图之后,你可以先打印出所有操作的名称,这样就能轻松定位到输入和输出张量了。代码如下:

import tensorflow as tf

# 加载模型图
sess = tf.Session()
saver = tf.train.import_meta_graph('/tmp/mnist_convnet_model/model.ckpt-2000.meta')
saver.restore(sess, tf.train.latest_checkpoint('/tmp/mnist_convnet_model/'))

# 获取当前默认图
graph = tf.get_default_graph()

# 打印所有操作名称,方便你筛选输入输出张量
for op in graph.get_operations():
    print(op.name)

运行这段代码后,你会看到一堆类似Placeholder、reshape/Reshape、logits/BiasAdd、ArgMax这样的名称,这些就是你模型里所有操作的标识。

第二步:定位输入和输出张量

根据官方MNIST卷积教程的默认结构:

  • 输入张量:教程里定义的输入占位符一般是x = tf.placeholder(tf.float32, [None, 784]),对应的操作名称是Placeholder;如果你定义时给它加了自定义名称(比如x = tf.placeholder(..., name='input_x')),那就是input_x。注意要在名称后面加:0,代表该操作的第一个输出张量。
  • 输出张量:教程最后一层是logits = tf.layers.dense(inputs=pool2_flat, units=10, name='logits'),对应的输出张量名称是logits/BiasAdd:0;如果之后你定义了预测结果predictions = tf.argmax(input=logits, axis=1, name='predictions'),那直接用predictions:0会更方便,拿到的就是直接的类别预测值。

第三步:加载图片并预处理

MNIST模型接受的是28x28的灰度图,所以要把你的测试图片转换成对应格式:

import cv2  # 用PIL也可以,这里以OpenCV为例

# 加载单张测试图片(灰度模式)
img = cv2.imread('your_test_image.png', cv2.IMREAD_GRAYSCALE)
# 调整尺寸到模型要求的28x28
img = cv2.resize(img, (28, 28))
# 归一化到0-1之间(和训练时的预处理逻辑保持一致)
img = img / 255.0
# 转换成模型需要的形状:如果输入是flatten后的784维,就转成(1, 784);如果是图片张量,就转成(1,28,28,1)
img_input = img.reshape(1, 784)

第四步:运行预测

根据你找到的张量名称,执行预测:

# 获取输入和输出张量
input_tensor = graph.get_tensor_by_name('Placeholder:0')
output_tensor = graph.get_tensor_by_name('predictions:0')  # 或者用'logits/BiasAdd:0'

# 喂入图片数据,得到预测结果
pred_result = sess.run(output_tensor, feed_dict={input_tensor: img_input})

print(f"这张图片的预测类别是:{pred_result[0]}")

小提示

  • 建议你在定义模型时,给关键的占位符、输出层加显式自定义名称(比如name='model_input'、name='model_output'),这样后续加载时不用猜默认名称,更不容易出错。
  • 注意tf.train.latest_checkpoint的参数是模型所在的文件夹路径,不是具体的ckpt文件名,别写错路径导致加载失败。

内容的提问来源于stack exchange,提问作者Sandeep Alur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:38:22