質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

556閲覧

大量画像を扱う時のtf.train.shuffle_batchの設定値について

trafalbad

総合スコア303

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/07/05 06:14

tfrecordファイルがtrain_1.tfrecords~train_43.tfrecordsまであり、
tfrecordファイルに一つに3万枚入っています
合計枚数は1290000枚です。

そこでtf.train.shuffle_batch()を使っていますが、パラメータ設定がわかりません。
ベストな設定値はどのような値すれば良いのでしょうか?
ご教授お願いします。

python

1tf.train.shuffle_batch( 2 tensors, 3 batch_size, 4 capacity, 5 min_after_dequeue, 6 num_threads=1,)

caifar-10のチュートリアルのように以下のように設定しました

python

1NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN = 1290000 2min_fraction_of_examples_in_queue = 0.4 3min_queue_examples = int(NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN * 4 min_fraction_of_examples_in_queue) 5 6batch_size = 128 7num_preprocess_threads = 16

そしたらメモリのエラーが出てしまいました。

python

12018-07-05 03:24:32.078342: E tensorflow/stream_executor/cuda/cuda_driver.cc:967] failed to alloc 34359738368 bytes on host: CUDA_ERROR_OUT_OF_MEMORY 22018-07-05 03:24:32.078411: W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 34359738368 32018-07-05 03:24:32.078477: E tensorflow/stream_executor/cuda/cuda_driver.cc:967] failed to alloc 30923763712 bytes on host: CUDA_ERROR_OUT_OF_MEMORY 42018-07-05 03:24:32.078494: W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 30923763712 52018-07-05 03:24:32.078526: E tensorflow/stream_executor/cuda/cuda_driver.cc:967] failed to alloc 27831386112 bytes on host: CUDA_ERROR_OUT_OF_MEMORY 62018-07-05 03:24:32.078571: W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 27831386112 7Killed

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CUDA関連のエラーが出ているので、GPUのメモリが足りていません。

バッチサイズを下げるほかないでしょう。

バッチサイズを半分にして更に、1080ti使っても足りていません。

16枚ずつでやってみてください。


遅くなりますがCPUで64GB積めばやれそうです。


もはやモデル変わっちゃいますが、モデルのパラメータ数を減らすことも考えられます。

投稿2018/07/05 22:36

編集2018/07/05 22:38
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trafalbad

2018/07/05 23:02

awsのp2インスタンスをつかってるんですが、メモリをどのくらいまで増やせばいいのでしょうか?
mkgrei

2018/07/05 23:25

エラーを見ると35gb確保しようとしていませんか?
trafalbad

2018/07/06 00:15

バッチを下げるか、p2.8xlargeに変更することで解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問