आप उपयोग कर सकते हैं tf.config.set_visible_devices
। एक संभावित फ़ंक्शन जो आपको यह निर्धारित करने की अनुमति देता है कि क्या और कौन सा GPU उपयोग करना है:
import tensorflow as tf
def set_gpu(gpu_ids_list):
gpus = tf.config.list_physical_devices('GPU')
if gpus:
try:
gpus_used = [gpus[i] for i in gpu_ids_list]
tf.config.set_visible_devices(gpus_used, 'GPU')
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPU")
except RuntimeError as e:
# Visible devices must be set before GPUs have been initialized
print(e)
मान लीजिए कि आप 4 GPU के साथ एक सिस्टम पर हैं और आप केवल दो GPU का उपयोग करना चाहते हैं, एक के साथ id = 0
और एक के साथ id = 2
, फिर आपके कोड की पहली कमांड, पुस्तकालयों को आयात करने के तुरंत बाद होगी:
set_gpu([0, 2])
आपके मामले में, केवल सीपीयू का उपयोग करने के लिए, आप खाली सूची के साथ फ़ंक्शन को लागू कर सकते हैं :
set_gpu([])
पूर्णता के लिए, यदि आप बचना चाहते हैं कि रनटाइम आरंभीकरण डिवाइस पर सभी मेमोरी को आवंटित करेगा, तो आप उपयोग कर सकते हैं tf.config.experimental.set_memory_growth
। अंत में, GPU को स्मृति में गतिशील रूप से कब्जा करने के लिए कौन से उपकरणों का उपयोग करना है, यह कार्य बनता है:
import tensorflow as tf
def set_gpu(gpu_ids_list):
gpus = tf.config.list_physical_devices('GPU')
if gpus:
try:
gpus_used = [gpus[i] for i in gpu_ids_list]
tf.config.set_visible_devices(gpus_used, 'GPU')
for gpu in gpus_used:
tf.config.experimental.set_memory_growth(gpu, True)
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPU")
except RuntimeError as e:
# Visible devices must be set before GPUs have been initialized
print(e)