无法从保存的较高批量大小的模型中恢复批量大小1的权重以进行预测

时间:2018-02-05 17:36:34

标签: python tensorflow

所以我想现在使用该模型进行预测。整个模型中使用的批量大小可以在训练之前配置,但现在出于预测目的,我希望我的批量大小为1,并且我想使用在不同批量大小(16)上训练的已保存模型。我尝试在batch_size 1上恢复模型,但它给出了以下错误:

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [1,1,75] rhs shape= [1,16,75]

我可以通过哪些方式实现这一目标?

1 个答案:

答案 0 :(得分:1)

我猜你在输入占位符中使用了定义的形状。在这种情况下,您可以先加载元图(如果您保存了它),然后创建新形状的新占位符并将它们添加到此图中。

但解决此问题的更好方法是将占位符中的batch_size值更改为None。这意味着以后您可以将任何批量输入提供给您的NN。 e.g:

x_input = tf.placeholder(tf.float32, shape=[None, 32,32,3], name='InputData')
y_target = tf.placeholder(tf.int32, shape=[None], name='LabelData')