実現したいこと・問題
tensorflowでsaverを用いて学習済みモデルの読み込みをし、新たなネットワークを付加して学習したいのですが、モデルの読み込みの際にgpuのほとんどすべてのメモリを確保してしまい、新たなネットワークを動かせません。(読み込むモデルはgpuメモリの3割程度でも動きます。)
###やってみたこと
使用するメモリを制限する方法(ここでは3割)として以下のようにsessionを定義してみました。モデル自体の読み込みはできていましたが、後続のネットワークも共通のsessionを使うのでメモリが制限されたままになってしまい、ResourceExhaustedErrorが出ます。
python
1config = tf.ConfigProto(gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.3)) 2sess =tf.Session(config=config) 3saver.restore(sess, model)
###質問
どうすれば、読み込んだモデルと後続のネットワークでgpuメモリの割り当てができますか?
いい方法やヒントがあれば教えてください。。
分かりにくいところも積極的に聞いていただけるとありがたいです。
###補足:エラー
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[300,64,256,256] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/26 06:40