【Kerasエラー】Your generator is NOT thread-safe.Keras requires a thread-safe generator when`use_multiprocessing=False, workers > 1`.For more information see issue #1638.

環境

  • Ubuntu: 16.04
  • Python: 3.6
  • Tensorflow: 1.9.0
  • Keras: 2.2.0
  • NVIDIA Driver: 410.72
  • CUDA: 10.0

エラー内容

GCPで学習していたら、他のサーバでは出なかったエラーに遭遇した。
Epoch1の重みを保存した後にEpoch2〜38に以下のエラーが一気に出力され、Epoch39からはまた普通に学習し始めた。

Epoch 38/38
Your generator is NOT thread-safe.Keras requires a thread-safe generator when`use_multiprocessing=False, workers > 1`.For more information see issue #1638.

解決方法

fit_generatorの引数にuse_multiprocessing=Trueを追加して解決。

self.model.fit_generator(
                    generator,
                    epochs=self.current_epoch+1,
                    initial_epoch=self.current_epoch,
                    use_multiprocessing=True, # Add here
                    *args, **kwargs
                )

詳しくは以下サイトで。

tech.wonderpla.net

参考