我在tensorflow中训练了一个神经网络。在训练时,我明确定义了输入占位符的形状,批次大小为20,如下所示 [20,224,224,3]
。我明确定义了批次大小,因为网络中有一个 split
层,如果将批次大小设为 None
会导致错误。有什么方法可以在推理时更改输入占位符的形状,以便我可以对单张图像进行推理吗?
回答:
如果你有保存的检查点的*.meta文件,你可以重置图的输入。
# 设置正确的数据类型和形状;形状也可以是(None, 224, 224, 3)
new_placeholder = tf.placeholder(tf.float32, shape=(1, 224, 224, 3), name='inputs_new_name') # 这里你需要声明你在原始输入占位符中使用的占位符名称
saver = tf.import_graph_def(path/to/.meta, input_map={"original_inputs_placeholder_name:0": new_placeholder})
saver.restore(/path/to/your_checkpoint)