python - टेंसरफ़्लो ने जुडिटर के भीतर CUDA_VISIBLE_DEVICES सेट किया




environment-variables tensorflow (2)

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

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

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


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

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

आप यह देख सकते हैं कि आपके पास टीएफ को दिखाई देने वाले सही उपकरण हैं

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

मैं इसका उपयोग नोटबुक_ यूटिल जैसे उपयोगिता मॉड्यूल से करता हूं

import notebook_util
notebook_util.pick_gpu_lowest_memory()
import tensorflow as tf

आप इसे बिना किसी आयात के सिर्फ magics का उपयोग करके तेजी से कर सकते हैं:

%env CUDA_DEVICE_ORDER=PCI_BUS_ID
%env CUDA_VISIBLE_DEVICES=0

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





tensorflow