2016-06-18 16 views
31

में मेरे पास दो GPU हैं और एक साथ ipynb के माध्यम से दो अलग-अलग नेटवर्क चलाने की इच्छा रखते हैं, हालांकि पहली नोटबुक हमेशा GPUs को आवंटित करता है।Tensorflow सेट करें CUDA_VISIBLE_DEVICES jupyter

CUDA_VISIBLE_DEVICES का उपयोग करके, मैं पाइथन फ़ाइलों के लिए डिवाइस छुपा सकता हूं, हालांकि मुझे नोटबुक के भीतर ऐसा करने के बारे में अनिश्चितता है।

क्या वही सर्वर पर चल रहे नोटबुक में विभिन्न GPU को छिपाने के लिए वैसे भी है?

उत्तर

64

आप os.environ का उपयोग कर नोटबुक में पर्यावरण चर सेट कर सकते हैं। पहले GPU पर TensorFlow को सीमित करने के लिए TensorFlow को प्रारंभ करने से पहले निम्न कार्य करें।

import os 
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152 
os.environ["CUDA_VISIBLE_DEVICES"]="0" 

दोबारा जांचना आप TF को दिखाई सही उपकरणों

from tensorflow.python.client import device_lib 
print device_lib.list_local_devices() 

मैं की तरह notebook_util

import notebook_util 
notebook_util.pick_gpu_lowest_memory() 
import tensorflow as tf 
+1

मैंने कुछ दस्तावेज उदाहरणों में विभिन्न उत्तरों (आपके सहित) को एकत्रित करने (और उद्धृत करने) की स्वतंत्रता ली है https://stackoverflow.com/documentation/tensorflow/10621 मुझे आशा है कि आपको कोई फर्क नहीं पड़ता। इसे संपादित करने के लिए स्वतंत्र महसूस करें। – npf

11

उपयोगिता मॉड्यूल से इसका इस्तेमाल करते हैं कि आप यह तेजी से बिना कर सकते हैं कर सकते हैं magics का उपयोग करके कोई भी आयात:

%env CUDA_DEVICE_ORDER=PCI_BUS_ID 
%env CUDA_VISIBLE_DEVICES=0 

ध्यान दें कि सभी एनवी चर तार हैं, इसलिए " का उपयोग करने की आवश्यकता नहीं है। आप यह सत्यापित कर सकते हैं कि env-variable को चलाकर सेट किया गया है: %env <name_of_var>। या उन सभी को %env के साथ जांचें।