मैं _model_fn
को Estimator
के लिए एक बहु GPU समाधान में बदलना चाहता हूं।मल्टी जीपीयू/टॉवर सेटअप टेन्सफोर्लो 1.2 अनुमानक
क्या एसिटमेटर एपीआई के भीतर ऐसा करने का कोई तरीका है या क्या मुझे डिवाइस प्लेसमेंट और सिंक्रनाइज़ेशन को स्पष्ट रूप से कोड करना है।
मुझे पता है कि मैं अपने मॉडल को GPU X
पर रखने के लिए tf.device('gpu:X')
का उपयोग कर सकता हूं। मुझे यह भी पता है कि मैं अपने जीपीयू नामों में अपने मॉडल को दोहराने के लिए उपलब्ध जीपीयू नामों पर लूप कर सकता हूं। मुझे यह भी पता है कि मैं एकाधिक जीपीयू के लिए एक इनपुट कतार का उपयोग कर सकता हूं।
मुझे नहीं पता कि कौन से हिस्से (ऑप्टिमाइज़र, हानि गणना), मैं वास्तव में एक जीपीयू में जा सकता हूं और जहां मुझे गणना को सिंक्रनाइज़ करना है।
Cifar10
उदाहरण से मुझे लगता है कि मुझे केवल ढाल को सिंक्रनाइज़ करना है।
खासकर जब
train_op = tf.contrib.layers.optimize_loss(
loss=loss,
global_step=tf.contrib.framework.get_global_step(),
learning_rate=learning_rate,
learning_rate_decay_fn=_learning_rate_decay_fn,
optimizer=optimizer)
का उपयोग कर रहा optimizer.compute_gradients()
या optimizer.apply_gradients()
मैन्युअल अब और के रूप में इस आंतरिक रूप से नियंत्रित किया जाता है कॉल नहीं कर सकते .optimize_loss(..)
से मैं ढ़ाल औसत करने के लिए कैसे की तरह यह cifar10 में किया जाता है सोच रहा हूँ उदाहरण Cifar10-MultiGPU या यदि यह Estimator
के लिए भी सही दृष्टिकोण है।