Python 如何使恢复的Tensorflow模型的输入大小适应批量大小1,以进行测试时间评估?

Python 如何使恢复的Tensorflow模型的输入大小适应批量大小1,以进行测试时间评估?,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我试图在推理阶段使用一个经过训练的张量流模型。在培训期间,我使用了通过shuffle_batch函数获得的8个批量: image_batch, label_batch = \ tf.train.shuffle_batch([image, label], batch_size=8, capacity=2000, num_threads=2, min_after_dequeue=1

我试图在推理阶段使用一个经过训练的张量流模型。在培训期间,我使用了通过shuffle_batch函数获得的8个批量:

image_batch, label_batch = \
    tf.train.shuffle_batch([image, label], batch_size=8, 
                           capacity=2000, num_threads=2, 
                           min_after_dequeue=1000)
以下是推理阶段的相关部分:

with tf.Session() as sess:
    saver = tf.train.import_meta_graph('model_enc_dec-0.meta')
    saver.restore(sess, tf.train.latest_checkpoint('./'))

    graph = tf.get_default_graph()
    pred = tf.get_collection('logits_key')[0]

    image_batch_tensor = tf.get_collection('image_batch_key')[0]
    .......
    .......
    # image_loaded_from_disk is of size (1, 384, 384, 3)
    feed_dict = {image_batch_tensor:image_loaded_from_disk}
    pred_np = sess.run([pred], feed_dict=feed_dict)
以下是我在恢复的模型上运行推断时在sess.run()行获得的错误:

ValueError:无法为Tensor u'shuffle_批次:0'提供形状(1384384,3)的值,该批次具有形状'(8384384,3)'


如何调整经过训练的模型,使其接受单个图像以在模型中向前移动?

您是否对占位符的形状使用了
None
?如果是这样的话,也许可以用形状(1384384,3)号的新占位符替换
image\u batch\u tensor
shuffle\u batch
刚刚返回了一个大小的张量(batch\u size,384384,3)。我无法选择
。但是,我在
shuffle\u batch
中找到了一个名为
allow\u smaller\u final\u batch=True的选项。我想知道这是否会导致训练速度变慢。将
allow_minger_final_batch=True
添加到
tf.train.shuffle_batch
会冻结训练代码。它甚至不训练。重要的问题是:变量
image\u batch\u tensor
如何声明?在训练阶段,我将tensor
image\u batch
添加到名为
'image\u batch\u key'
的集合中,如下所示:
tf.add\u to\u collection('image\u batch\u key',image\u batch)
。这与加载元图后获得的张量相同。