使用 tf.keras.utils.Sequence 和 model.fit_generator with use_multiprocessing=True 生成警告

kaw*_*vin 6 python multiprocessing tensorflow tf.keras

这是我收到的警告:

WARNING:tensorflow:multiprocessing can interact badly with TensorFlow, causing nondeterministic deadlocks. For high performance data pipelines tf.data is recommended.
Run Code Online (Sandbox Code Playgroud)

我写的 Sequence 子类严格执行加载和读取 I/O jpg 文件。我想只要没有 2 个线程在同一个文件上同时执行,事情应该没问题。

我训练了几个 epoch,到目前为止,没有错误。但是如果有可能发生的潜在不好的事情,我想获得反馈。

小智 4

最初在该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)  
Run Code Online (Sandbox Code Playgroud)

您可以忽略此警告,因为您没有进行任何会造成死锁情况的处理。