我在集群上使用Keras和Tensorflow后端(创建神经网络).我如何在集群上(在多个内核上)以多线程方式运行它,或者这是由Keras自动完成的?例如,在Java中,可以创建几个线程,每个线程运行在一个内核上.
如果可能,应该使用多少芯?
我在集群上使用Keras和Tensorflow后端(创建神经网络).我如何在集群上(在多个内核上)以多线程方式运行它,或者这是由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(...):
个区块.)