我正在群集中使用带有Tensorflow后端的Keras(创建神经网络).如何在群集上(在多个核心上)以多线程方式运行它,还是由Keras自动完成?例如,在Java中,可以创建多个线程,每个线程在核心上运行.
如果可能,应该使用多少个核心?
Tensorflow会在单个计算机上可用的核心上自动运行计算.
如果您有分布式群集,请务必按照https://www.tensorflow.org/how_tos/distributed/上的说明配置群集.(例如正确创建tf.ClusterSpec等)
为了帮助调试,您可以使用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(...):
块.)