我在训练阶段在tensorflow中使用batch = 5,为什么我不能在tensorflowjs中只使用batch = 1测试?

I use batch = 5 in tensorflow during training phase, why I cant use only batch = 1 test in tensorflowjs?

我在tensorflow中训练GAN模型,batchsize=5,所以生成器输入大小为[5,imagesize,imagesize,3]。训练后,我将tensorflow模型转换成tensorflowjs模型。

所以,我通过loadFrozenModel加载模型。然后使用model.predict预测一个image.However,[=21]中提供的dict['concat']的形状=](dict) 必须是 [5,512,512,12],但是是 [1,512,512,12]。 如何解决这个问题?我在 tensorflow 的训练阶段使用 mini-batch,并且在 tensorflowjs 中只预测一个输入而不是 5 个输入的图像

Figure 1. the error

听起来您在训练作业中将批量大小明确设置为输入形状的一部分,例如

x = tf.placeholder("float", shape=[5, 512, 512, 12])

相反,您应该不指定批量大小,如下所示:

x = tf.placeholder("float", shape=[None, 512, 512, 12])

这样,无论在训练时还是推理时,无论您给它多少批量大小,该图都可以工作。

如果您的代码需要明确知道批量大小,请参阅 here 了解一些提示。