使用Tensotflow同时加载多个模型
使用单个模型时,一种模型的保存和加载的方式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
使用单个模型时,一种模型的保存和加载的方式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
针对上述模型,恢复的方式如下:
1 2 3 4 5 6 7 |
|
对单个模型来说,这么做没有问题,但如果我们训练了多个相同结构的模型,我们期待以如下方式恢复它们:
1 2 3 4 5 6 7 8 9 |
|
使用上述恢复的session进行预测:
1 2 3 |
|
但这么做会导致参数错误,预测结果异常,原因是多个模型中的变量会发生冲突,原因是将所有的模型变量都加载到同一个线程的默认图中,解决方法是,针对不同的model使用不同的默认图:
1 2 3 4 5 6 7 8 9 10 |
|
上述方式是从博客看到的,在我的实验中,并有有成功地将多个模型恢复,我的恢复方式是:
1 2 3 4 5 6 |
|
重要的地方在于tf.reset_default_graph(),tf官方文档给出的解释是:
1 2 3 4 5 6 |
|