【问题标题】:how to user tensorflow MNIST mode for inference如何使用 TensorFlow MNIST 模式进行推理
【发布时间】:2017-12-22 06:04:43
【问题描述】:

我正在学习张量流。在完成 TensorFlow 教程 MNist 专家 (https://www.tensorflow.org/get_started/mnist/pros) 后,我正在尝试使用经过训练的模型进行推理。我复制了两个 [28x28] 图像并将它们放入 [28x28x2] 数组并保存了一个 matlab 文件。然后我使用以下代码运行推理:

data = sio.loadmat("data/test/testdig.mat")
data = tf.reshape(data["testdig"], [-1, 28, 28, 1])

x = tf.placeholder(tf.float32, shape=[None, 28, 28, 1]);

W_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])
h_conv1 = tf.nn.relu(conv2d(x, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

....CNN network stuff

y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2

prediction = tf.argmax(y_conv, 1)

saver = tf.train.Saver()
with tf.Session() as sess:
    saver.restore(sess, "model/mnist.ckpt") //restored the saved model
    print(prediction.eval(feed_dict={x: data, keep_prob: 1.0}))

但是,上面的代码在最后一行给了我一个错误:

raise TypeError('feed 的值不能是 tf.Tensor 对象。' TypeError:提要的值不能是 tf.Tensor 对象。可接受的提要值包括 Python 标量、字符串、列表、numpy ndarray 或 TensorHandles。

为什么?

【问题讨论】:

    标签: tensorflow mnist inference


    【解决方案1】:

    在您的代码中:

    data = tf.reshape(data["testdig"], [-1, 28, 28, 1])
    

    这意味着数据是稍后要计算的张量。您不能将其用作输入,因为您不知道该值。

    您需要在 x(您的占位符)上应用重塑,以便它在模型中发生,

    或使用 numpy 操作来重塑数据以匹配 tensorflow 的预期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2016-11-13
      • 2016-10-09
      • 2019-11-12
      • 2019-06-12
      相关资源
      最近更新 更多