2015-12-23 13 views
6

पर सीआईएफएआर -10 ट्यूटोरियल पर, मैंने देखा कि चर को CPU मेमोरी में रखा गया है, लेकिन यह cifar10-train.py में कहा गया है कि इसे एक जीपीयू के साथ प्रशिक्षित किया जाता है।सीपीयू पर प्रशिक्षण, जीपीयू

मैं काफी उलझन में हूं .. क्या GPU में संग्रहीत परत/सक्रियण हैं? या वैकल्पिक रूप से, जीपीयू में संग्रहित ग्रेडियेंट हैं? अन्यथा, ऐसा लगता है कि सीपीयू पर स्टोरेज वैरिएबल जीपीयू का उपयोग नहीं करेगा - सबकुछ सीपीयू मेमोरी में संग्रहीत है, इसलिए सीपीयू का इस्तेमाल आगे/पिछड़े प्रचार के लिए किया जाता है।

यदि जीपीयू का उपयोग एफ/बी प्रचार के लिए किया गया था, तो यह डेटा सीपीयू < -> जीपीयू को लापरवाही के कारण बर्बाद नहीं होगा?

उत्तर

5

वास्तव में, सीफायर 10-ट्रेन में सक्रियण और ग्रेडियेंट GPU पर हैं, केवल पैरामीटर CPU पर हैं। आप सही हैं कि सीपीयू और जीपीयू के बीच पैरामीटर की प्रतिलिपि बनाने की लागत के कारण एकल-जीपीयू प्रशिक्षण के लिए यह इष्टतम नहीं है। मुझे संदेह है कि ऐसा करने का कारण यह है कि बहु-जीपीयू मामले में सिंगल-जीपीयू और बहु-जीपीयू मॉडल के लिए एक लाइब्रेरी है, सीपीयू पर पैरामीटर होने के लिए शायद तेज़ है। आप GPU में सभी चर को स्थानांतरित करके आसानी से परीक्षण कर सकते हैं, cifar10.py में "_variable_on_cpu" में "tf.device ('/ cpu: 0')" के साथ बस "हटाएं।

संबंधित मुद्दे