我训练了一个具有固定批量大小的 RNN,但现在我想修改我保存的图形tf.train.Saver
以具有批量大小 1 以进行推理。我该怎么办?
session = tf.InteractiveSession()
saver = tf.train.import_meta_graph('model.ckpt.meta')
saver.restore(session, 'model.ckpt')
实现这一目标的一种方法是在测试时重建一个不同的(尽管兼容)网络,并将恢复限制为仅权重。
在训练中,
net = make_my_net(batch_size)
...
saver.save(session, model_name)
在测试过程中,
net = make_my_net(1)
...
saver.restore(session, model_name)
后者将用之前保存的值替换变量值(包括网络权重)。您不必根据文档初始化要覆盖的变量,尽管我相信并非总是如此。
请注意,重建不同的网络使您有机会构建更清晰的测试网络,例如通过删除诸如 dropout 之类的层。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句