分为以下两种方法:
1 将训练的模型保存为ckpt格式,训练时一次训练batch_size张图片(比如设为8,16,32等),测试时再重新设置不同的batch_size(比如一次只想测试一张图片,则将batch_size设为1),然后进行inference并restore保存的ckpt模型
2 如果将模型保存为pb格式,那么模型被固化,测试时数据的shape必须与训练时输入的数据shape保持一样,此时如果想实现测试时的batchsize大小随意设置, 那么在训练时, 输入的placeholder的shape应该设置为[None, H, W, C]. 训练和测试feed不同batchsize的数据就行了
个人比较推荐第二种方法,因为.ckpt方式保存模型,这种模型文件是依赖 TensorFlow 的,只能在其框架下使用。而 .pb文件里面保存了图结构+数据,加载模型时只需要这一个文件就好。它具有语言独立性,可独立运行,封闭的序列化格式,任何语言都可以解析它,它允许其他语言和深度学习框架读取、继续训练和迁移 TensorFlow 的模型。另外的好处是保存为 PB 文件时候,模型的变量都会变成固定的,导致模型的大小会大大减小。