我已经使用tesnorflow构建了一个分类器。我从图像生成提案区域,这些提案由我的分类器单独分类。
我的问题是,评估模型时我的批量大小不固定。因为每个图像的投标数量都不相同,所以每个图像要评估的投标数量不是恒定的。
现在,我已将批处理大小设置为1,但这效率低下,并限制了分类器的处理速度。
以下是模型输入的占位符
self.image_op = tf.placeholder(tf.float32, shape=[batch_size, 48, 48, 3], name='input_image')
这就是我将输入输入模型的方式
def predict(self,image):
cls_prob = self.sess.run([self.cls_prob], feed_dict={self.image_op: image})
return cls_prob
有什么方法可以将批处理大小设置为动态值,而不必为每个图像恢复模型?
答案 0 :(得分:0)
您只需设置tf.Variable(validate_shape=False)
这将在迭代时禁用形状验证,因此您将能够使用动态批处理大小。
由于tf.placeholder被贬值,您不应该使用它,但是如果您仍然想使用tf.placeholder,那么您需要禁用TF 2.x行为
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()