2017-01-17 1 views
1

私はcaffeのデータにfcnを実行しようとしていました。イメージセットをlmdbconvert_imagesetで組み込みました。私はnetを訓練したかったしかし、一度、それは私に次のエラーを与えた:convert_imageset.cppの一括してイメージ数を減らしてGPUのメモリ不足を解消することはできますか?

Check failed: error == cudaSuccess (2 vs. 0) out of memory 
*** Check failure stack trace: *** 
..... 
Aborted (core dumped) 

私はメモリ障害を解決するために、多くのオンラインリソースを経て、それらのほとんどは、バッチサイズを減らすことを示唆しています。さらに、画像のサイズを256x256に縮小しました。私はまだこの問題に取り組むことができませんでした。 このコマンドでGPUのメモリを確認しましたnvidia-smi、モデルはNvidia GT 730、メモリは1998 MiBです。 train_val.prototxtのバッチサイズは1なので、train_val.prototxtには何もできません。だから、私の質問は以下のとおりです。ターミナルでログファイルを見ることによって

  1. が、私はconvert_imagesetがLMDBにデータを変換する時はいつでも、それはグループで1000年画像を取っていることに気づきました。この数値を143151convert_imageset.cppに変更することは可能ですか?convert_imagesetを使用してcaffeを再コンパイルしてイメージをlmdbに変換することはできますか?それは理にかなっていますか?
  2. 1の質問への答えは、私は再びカフェをコンパイルする方法、 私はbuildフォルダを削除して、もう一度 最初からカフェのインストールを行う必要があり、そうであるならば?
  3. どのようにcaffeがLMDBデータを処理しますか? convert_imagenetを実行している間に1000個の画像を一括して表示するのは好きですか?

本当にありがとうございます。 おかげで...

答えて

0
  1. 私の知る限りでは、メモリのうちCUDA上の各トランザクション(txn->Commit();)でlmdbすることを約束したエントリの数には影響はありません。

  2. 何らかの理由でcaffeを再コンパイルしたい場合は、単にmake cleanを実行します。これですべてがクリアされ、最初から再コンパイルできます。

  3. また、データセットの書き込み時に使用されるトランザクションサイズのサイズに関係なく、AFAIK、caffe access lmdb batch_sizeイメージを一度に表示できます。

あなたはbatch_sizeが両方 TRAINとTESTフェーズのために1に設定されていますか?

+0

ありがとうございました。はい、バッチサイズが1のFCNセマンティックセグメンテーションです。私の問題の解決策はありますか? –

+0

@ S.EBは、より大きなメモリを備えた新しいGPUを購入します。 :| – Shai

+0

ご協力いただきありがとうございます –

関連する問題