前提・実現したいこと
TensorFlowでautoencoderのコードを書いています。
forで、指定フォルダ内のファイルを一つずつ読み込み結果を出すことを、繰り返すコードです。
ファイルが小さいときはうまくいくのですが、ファイルが大きくなると、ファイル読み込み時にメモリ不足になります。
そこで、メモリを解放したいのですが、うまくいかないのでご教授お願い致します。
発生している問題・エラーメッセージ
一度以上結果を出した後、次のファイルを読み込むとき、前のファイルの処理時のメモリが解放できておらず以下のエラーメッセージが出ます。
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[4096,16384] [[Node: gradients_1/MatMul_24_grad/MatMul_1 = MatMul[T=DT_FLOAT, transpose_a=true, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Tanh_23, gradients_1/Add_24_grad/tuple/control_dependency)]]
該当のソースコード
該当のソースコードに誤りがあったので訂正いたします。
大きなメモリの使用が発生するのは、学習途中の値を保存するコードで起きます。
このコードによる使用メモリの解放ができません。
np.save(path, data)
訂正前
~~
大きなメモリの使用が発生するのは、学習モデルを保存するコードで起きます。
このコードによる使用メモリの解放ができません。
~~
tf.train.Saver.save(sess, path)
試したこと
sess.close()
を使用しましたが、メモリの解放はできませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 09:49 編集
2020/04/30 10:04