Python 如何正确启用keras fit()多处理?

Python 如何正确启用keras fit()多处理?,python,numpy,tensorflow,machine-learning,keras,Python,Numpy,Tensorflow,Machine Learning,Keras,当我使用multiprocessing=True运行fit()时,总是会出现死锁和以下警告: WARNING:tensorflow:multiprocessing can interact badly with TensorFlow, causing nondeterministic deadlocks. For high performance data pipelines tf.data is recommended. 如何正确运行它 由于上面写着“tf.data”,我想知道将我的数据转换

当我使用
multiprocessing=True运行
fit()
时,总是会出现死锁和以下警告:

WARNING:tensorflow:multiprocessing can interact badly with TensorFlow, causing nondeterministic deadlocks. For high performance data pipelines tf.data is recommended.
如何正确运行它

由于上面写着“
tf.data
”,我想知道将我的数据转换成这种格式是否会使多处理工作正常。具体是什么意思/如何转换

我的数据集:(可复制)

。它只会加速数据加载。当所有数据都已在内存中时,数据加载延迟不是问题

但是,您仍然可以使用多处理,但必须确保底层数据集是线程安全的,并且必须仔细设计数据管道。这相当耗时。因此,我建议你加快模型本身的速度

为此,您应该研究:

  • 将除最后一层激活之外的所有激活更改为RELU
  • 调整批量大小。(最佳数量取决于您的硬件,并且几乎总是如此)
  • 使用以加快收敛速度
  • 使用更高的学习率(注意不要过度此步骤)
  • 如果需要更快的卷积,考虑使用或启用GPU计算。
  • 最后但并非最不重要的一点是,尝试使用更简单、更小的模型

如果您有任何其他问题,请在此发表评论。

干杯。

我注意到,对于Deep Mind的AlphaZero(),他们使用了4096号的小批量产品。这只是他们在向我们炫耀他们的计算机能力,还是@Arkleseisure的一个例外?这是个好问题。我不确定,但也许他们使用了一个在同一年提倡大批量生产的结果。强化学习很难做到正确,我们甚至不知道如何找到正确的批量大小。
Input_shape, labels =(20,4), 6
LEN_X.LEN_Y = 20000.3000 
train_X,train_Y = np.asarray([np.random.random(Input_shape) for x in range(LEN_X )]), np.random.random((LEN_X ,labels))
validation_X,validation_Y = np.asarray([np.random.random(Input_shape) for x in range(LEN_Y)]), np.random.random((LEN_Y,labels))
sampleW = np.random.random((LEN_X ,1))