我在训练阶段在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 了解一些提示。
我在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 了解一些提示。