web-dev-qa-db-ja.com

use_multiprocessing = Trueで生成された警告でmodel.fit_generatorでtf.keras.utils.Sequenceを使用する

これは私が受け取った警告です:

警告:tensorflow:multiprocessingはTensorFlowと不適切に相互作用し、非決定的なデッドロックを引き起こす可能性があります。高性能データパイプラインの場合、tf.dataをお勧めします。

私が作成したSequenceサブクラスは、読み込みとI/O jpgファイルの読み取りを厳密に実行します。 2つのスレッドが同じファイルに対して同時に実行しない限り、問題はないはずです。

私はいくつかのエポックについて訓練しましたが、これまでのところエラーはありません。しかし、起こり得る潜在的に悪い何かがある場合は、フィードバックを得たいと思います。

3
kawingkelvin

最初はTensorFlow 2.0バージョンで、keras.utils.Sequenceに問題があり、multiprocessing=Trueでデッドロックが原因でハングが発生していました。後でTensorflow 2.1でこの警告が追加され、この懸念に対処しました。

# use_multiprocessing=False works.
# use_multiprocessing=True hangs in a deadlock situation.
model.fit_generator(generator, use_multiprocessing=True, workers=2)  

デッドロック状態を引き起こす処理を行っていないので、この警告は無視できます。

1