虽然我是在一台40核计算机上建模的,但在使用Keras建模时,我只使用了其中的几个。我想知道如何调用所有CPU内核进行计算。我试图以以下方式实现并行计算,但失败了。学者们,请给我一些其他的方法。
library(doParallel)
cl <- makeCluster(detectCores())
registerDoParallel(cl)
history <- model %>% fit(xtrain, ytrain,
epochs = 200, batch_size=100, verbose = 1)发布于 2022-07-05 13:40:45
Tensorflow/Keras负责fit()中的并行性,如果手动尝试分叉父进程或管理PSOCK集群,它通常不会工作。与R一起提供的{并行}包与Tensorflow/Keras不兼容。
如果看起来Tensorflow/Keras没有使用默认设置的所有CPU核心,那么您可以在这里调整线程池大小:https://www.tensorflow.org/api_docs/python/tf/config/threading (但在我的经验中,更有可能是IO限制的,或者CPU正在等待GPU,可能不是线程池大小太小)。
如果您对使用Tensorflow进行分布式计算感兴趣,那么下面是一个很好的起点:https://www.tensorflow.org/api_docs/python/tf/distribute
https://stackoverflow.com/questions/72869818
复制相似问题