スポンサーリンク

tensorflow1.15.0 で Shuffle buffer filled. になったときの対応

tensorflow 1.15.0でRetrain SSD MobileNet V1 detector for the Edge TPU (TF1) を試しているときにこちらのエラーが発生して強制終了してしまいました。

こちらの記事に対応方法が載っていました。どうやら大きいサイズのデータをトレーニングすると上記の状態になってしまうことが多いようです。

Tensorflow object detection API killed – OOM. How to reduce shuffle buffer size?

上記の記事によると「batch_size」と「shuffle_buffer_size」のサイズを小さくしてあげるといいようでした。「shuffle_buffer_size」は以下のファイルで「default = 2048」となっています。

・models/research/object_detection/protos/input_reader.proto

「batch_size」と「shuffle_buffer_size」の値を変更するために以下の手順を実施します。

・models\research\learn_bottle\ckpt\pipeline.config

① batch_sizeの値を小さくする。自分の場合は「batch_size: 5」にしました。デフォルトは「batch_size: 128」になっています。

② shuffle_buffer_sizeを挿入します。自分の場合は「shuffle_buffer_size: 1024」を挿入しました。これを設定しない場合、デフォルトでは「2048」が設定されてしまいます。

③ コンパイルして①と②の設定を反映する

・models/research/ に移動する

これで解決できました。