Tf.train.import_meta_graphTensorFlowメモリオーバーフローの問題



Tf Train Import_meta_graph Tensorflow Memory Overflow Problem



TensorFlowがプログラムを実行すると、メモリ使用量が非常に怖いことがわかります。短時間実行した後、メモリは一度に99%に達します。 sess.graph.finalize() このメソッドはグラフをロックして読み取り専用にすることができ、実行中のプロセス中にノードが追加されるとエラーが報告されます。

最初に元の問題のあるコードを見てください



def restore_test_model(data): sess = tf.Session() Sess.graph.finalize() #Lock the graph, not allowed to add nodes model_file = tf.train.latest_checkpoint('ckpt/') Saver = tf.train.import_meta_graph(model_file+'.meta') #Report error saver.restore(sess, model_file) graph = tf.get_default_graph() out = graph.get_tensor_by_name('out:0') X = graph.get_tensor_by_name('input_data/X:0') y_num = sess.run(out, feed_dict={X: data[:, 1:]}) sess.close() return y_num

コードは実行されています セーバー= tf.train.import_meta_graph(model_file + ’。meta’) この文は誤って報告され、新しいノードがここに追加されたことを示しています。

私自身の解決策は、モデルのロードのアクションをwithステートメントに書き込むことです。



graph = tf.Graph() with graph.as_default(): model_file = tf.train.latest_checkpoint('ckpt/') saver = tf.train.import_meta_graph(str(model_file) + '.meta') with tf.Session() as sess: saver.restore(sess, model_file)
メモリオーバーフローの問題については、sess.graph.finalize()を試してエラーのトラブルシューティングを行ってください。

参考資料: https://blog.csdn.net/ferriswym/article/details/77996555