python - 如何在多核上运行 Keras?

标签 python multithreading python-3.x tensorflow keras

我在集群上使用 Keras 和 Tensorflow 后端(创建神经网络)。我如何在集群上(在多个内核上)以多线程方式运行它,还是由 Keras 自动完成?例如在 Java 中,可以创建多个线程,每个线程在一个核心上运行。

如果可能,应该使用多少核?

最佳答案

Tensorflow 自动在单台机器上可用的尽可能多的内核上运行计算。

如果您有分布式集群,请务必按照 https://www.tensorflow.org/how_tos/distributed/ 中的说明进行操作配置集群。 (例如正确创建 tf.ClusterSpec 等)

为了帮助调试,您可以在 session 中使用 log_device_placement 配置选项,让 Tensorflow 打印出计算实际放置的位置。 (注意:这适用于 GPU 和分布式 Tensorflow。)

# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

请注意,虽然 Tensorflow 的计算放置算法适用于小型计算图,但您可以通过手动将计算放置在特定设备中来在大型计算图上获得更好的性能。 (例如,使用 with tf.device(...): block 。)

关于python - 如何在多核上运行 Keras?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41588383/

相关文章:

jquery - Selenium wait.until 检查 ajax 请求完成是抛出错误

iphone - 在 Cocoa 中使用 NSThreads?

python - 如何使用 SQLAlchemy 只创建一张表?

python-3.x - 如何在 pymongo 文档中观察更新的 bool 值?

python-3.x - ValueError:无法将字符串转换为 float ,Python

python - Librosa动态时间规整中的最小距离

python - 如何正确清理 Python 对象?

python - 为什么Python中的命名参数具有一致的内存?

python - 使用 threading.Timer 与基于异步的函数

java - 当另一端无法接收时处理队列中的项目