2017-01-11 5 views
2

클러스터 (신경망 생성)에서 Tensorflow 백엔드가있는 Keras를 사용하고 있습니다. 클러스터 (여러 코어에서)에서 다중 스레드 방식으로 실행하거나 Keras에서 자동으로 수행하는 방법은 무엇입니까? 예를 들어 Java에서는 여러 스레드를 만들 수 있으며 각 스레드는 코어에서 실행됩니다.여러 코어에서 Keras를 실행하는 방법은 무엇입니까?

가능한 한 몇 개의 코어를 사용해야합니까?

답변

6

Tensorflow는 단일 시스템에서 사용할 수있는만큼의 코어에서 자동으로 계산을 실행합니다.

분산 클러스터가있는 경우 https://www.tensorflow.org/how_tos/distributed/의 지침에 따라 클러스터를 구성해야합니다. (예 : tf.ClusterSpec을 올바르게 작성하는 등)

디버그를 돕기 위해 세션의 log_device_placement 구성 옵션을 사용하여 Tensorflow가 계산이 실제로 배치되는 위치를 인쇄 할 수 있습니다. (참고 :이 분산 Tensorflow뿐만 아니라 모두 GPU를 작동합니다.) Tensorflow의 계산 배치 알고리즘은 작은 계산 그래프의 잘 작동하는 동안, 당신은 수동으로 큰 계산 그래프에 더 나은 성능을 얻을 수있을 것으로

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

주 특정 장치에 계산을 배치합니다. (예 : with tf.device(...): 블록 사용)

관련 문제