tensorflow
TensorFlow GPU सेटअप
खोज…
परिचय
यह विषय TensorFlow में GPU की स्थापना और प्रबंधन के बारे में है।
यह मानता है कि TensorFlow का GPU संस्करण इंस्टॉल किया गया है (GPU स्थापना पर अधिक जानकारी के लिए https://www.tensorflow.org/install/ देखें)।
आप आधिकारिक दस्तावेज़ पर भी नज़र डालना चाह सकते हैं: https://www.tensorflow.org/tutorials/using_gpu
टिप्पणियों
मुख्य स्त्रोत:
केवल CPU पर TensorFlow चलाएँ - `CUDA_VISIBLE_DEVICES` पर्यावरण चर का उपयोग करके।
यह सुनिश्चित करने के लिए कि एक GPU संस्करण TensorFlow प्रक्रिया केवल CPU पर चलती है:
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
import tensorflow as tf
CUDA_VISIBLE_DEVICES
बारे में अधिक जानकारी के लिए, इस उत्तर पर या CUDA प्रलेखन पर एक नज़र डालें।
TensorFlow ग्राफ़ को केवल CPU पर - `tf.config` का उपयोग करके चलाएँ
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))
ध्यान रखें कि यह विधि TensorFlow ग्राफ़ को GPU का उपयोग करने से रोकती है लेकिन TensorFlow अभी भी GPU डिवाइस को लॉक करता है, जैसा कि इस पद्धति में खोले गए एक मुद्दे में वर्णित है। CUDA_VISIBLE_DEVICES
का उपयोग यह सुनिश्चित करने का सबसे अच्छा तरीका है कि TensorFlow को GPU कार्ड से दूर रखा जाए (यह उत्तर देखें)।
GPU उपकरणों के एक विशेष सेट का उपयोग करें
GPU उपकरणों के एक विशेष सेट का उपयोग करने के लिए, CUDA_VISIBLE_DEVICES
पर्यावरण चर का उपयोग किया जा सकता है:
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0" # Will use only the first GPU device
os.environ["CUDA_VISIBLE_DEVICES"]="0,3" # Will use only the first and the fourth GPU devices
(इस जवाब से उद्धृत; CUDA पर्यावरण चर पर अधिक जानकारी यहाँ ।)
स्थानीय प्रक्रिया में TensorFlow द्वारा उपलब्ध उपकरणों की सूची बनाएं।
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
GPU मेमोरी आवंटन को नियंत्रित करें
डिफ़ॉल्ट रूप से, TensorFlow GPU कार्ड की पूरी मेमोरी को पूर्व-आवंटित करता है (जो CUDA_OUT_OF_MEMORY
चेतावनी का कारण CUDA_OUT_OF_MEMORY
सकता है)।
इसे बदलने के लिए, यह संभव है
per_process_gpu_memory_fraction
कॉन्फ़िगरेशन विकल्प का उपयोग करते हुए, पूर्व-आवंटित मेमोरी का प्रतिशत बदलें,0 और 1 के बीच का एक मान जो इंगित करता है कि किस अंश का है
प्रत्येक प्रक्रिया के लिए पूर्व-आवंटित करने के लिए उपलब्ध GPU मेमोरी। 1 का मतलब है
GPU मेमोरी के सभी को प्री-आवंटित करने के लिए, 0.5 का अर्थ है प्रक्रिया
उपलब्ध GPU मेमोरी का ~ 50% आवंटित करता है।allow_growth
config विकल्प का उपयोग करके पूर्व-आवंटन को अक्षम करें। जैसे-जैसे उपयोग बढ़ता जाएगा मेमोरी आवंटन बढ़ता जाएगा।यदि सही है, तो आवंटितकर्ता पूरे निर्दिष्ट को पूर्व-आवंटित नहीं करता है
GPU मेमोरी क्षेत्र, आवश्यकतानुसार छोटे और बढ़ते हुए शुरू होता है।
उदाहरण के लिए:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config) as sess:
या
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess= tf.Session(config=config):
यहाँ पर विन्यास विकल्प के बारे में अधिक जानकारी।