क्या मैं गेरु पर केरस मॉडल चला सकता हूं?


125

मैं 36 घंटों की सबमिशन समय सीमा के साथ एक केरस मॉडल चला रहा हूं, अगर मैं सीपीयू पर अपने मॉडल को प्रशिक्षित करता हूं तो लगभग 50 घंटे लगेंगे, क्या केयूएस को जीपीयू पर चलाने का एक तरीका है?

मैं Tensorflow backend का उपयोग कर रहा हूँ और इसे अपने Jupyter नोटबुक पर चला रहा हूँ, बिना anaconda के।


मैंने यह पाया: medium.com/@kegui/… ऐसा महसूस होता है कि यहाँ एक संकीर्ण क्षेत्र में अत्यधिक मूल्यांकित प्रश्नों का उपयोग किया जा सकता है, और फिर मध्यम पर एक पूर्ण "उत्तर" बना सकते हैं, और विचारों से वास्तविक धन कमा सकते हैं।
एंग्रीस्टूडेंट

AMD GPU के लिए। इस पोस्ट को देखें। stackoverflow.com/a/60016869/6117565
बिक्रम

जवाबों:


175

हाँ आप GPU पर keras मॉडल चला सकते हैं। कुछ चीजें जिन्हें आपको पहले जांचना होगा।

  1. आपके सिस्टम में GPU (एनवीडिया है। जैसे AMD अभी तक काम नहीं करता है)
  2. आपने टेंसोफ़्लो का GPU संस्करण स्थापित किया है
  3. आपने CUDA इंस्टॉलेशन निर्देश स्थापित किए हैं
  4. सत्यापित करें कि GPU काम कर रहा है, तो GPU चेक के साथ टेंसरफ़्लो चल रहा है

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

या

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

आउटपुट कुछ इस तरह होगा:

[
  name: "/cpu:0"device_type: "CPU",
  name: "/gpu:0"device_type: "GPU"
]

यह सब हो जाने के बाद आपका मॉडल GPU पर चलेगा:

जाँच करने के लिए कि क्या keras (> = 2.1.1) GPU का उपयोग कर रहा है:

from keras import backend as K
K.tensorflow_backend._get_available_gpus()

शुभकामनाएं।


मैं इस अधिकार के लिए अजगर 3.5 स्थापित करना होगा? और टेंसरफ़्लो काम नहीं करेगा?
रयान

आवश्यक नहीं। TF 2.7 और 3.5 दोनों के साथ काम करता है। टीएफ का सही संस्करण चुन लें।
विकाश सिंह

ठीक है, बीमार 2.7 के साथ चलते हैं,
रयान

मुझे यह त्रुटि मिलती है -Could not find any downloads that satisfy the requirement tensorflow in /usr/local/lib/python2.7/dist-packages Downloading/unpacking tensorflow Cleaning up... No distributions at all found for tensorflow in /usr/local/lib/python2.7/dist-packages Storing debug log for failure in /home/hyperworks/.pip/pip.log
रयान

12
K.tensorflow_backend._get_available_gpus()TensorFlow 2.0 में काम नहीं करता है।
nbro

21

ज़रूर। मुझे लगता है कि आप पहले से ही GPU के लिए TensorFlow स्थापित कर चुके हैं।

केरस आयात करने के बाद आपको निम्नलिखित ब्लॉक जोड़ना होगा। मैं एक मशीन पर काम कर रहा हूं जिसमें 56 कोर सीपीयू, और एक जीपीयू है।

import keras
import tensorflow as tf


config = tf.ConfigProto( device_count = {'GPU': 1 , 'CPU': 56} ) 
sess = tf.Session(config=config) 
keras.backend.set_session(sess)

बेशक, यह उपयोग मेरी मशीनों को अधिकतम सीमा तक लागू करता है। आप सीपीयू और जीपीयू खपत मूल्यों को कम कर सकते हैं।


1
त्रुटिmodule 'tensorflow' has no attribute 'ConfigProto'
दिव्यांशु श्रीवास्तव

आप टेंसरफ़्लो 2 का उपयोग कर रहे हैं? मैंने इसे tf 1.X के लिए परीक्षण किया।
जोहानिस

13

2.0 संगत जवाब : जबकि उपर्युक्त उत्तर में केरस मॉडल पर GPU का उपयोग करने के तरीके के बारे में विस्तार से बताया गया है, मैं यह बताना चाहता हूं कि यह कैसे किया जा सकता है Tensorflow Version 2.0

कितने जीपीयू उपलब्ध हैं, यह जानने के लिए हम नीचे दिए गए कोड का उपयोग कर सकते हैं:

print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

यह पता लगाने के लिए कि tf.debugging.set_log_device_placement(True)आपके प्रोग्राम और टेंसर को कौन से डिवाइस असाइन किए गए हैं, आपके प्रोग्राम के पहले स्टेटमेंट के रूप में दिए गए हैं।

डिवाइस प्लेसमेंट लॉगिंग को सक्षम करने से किसी भी Tensor आवंटन या संचालन को मुद्रित किया जा सकता है। उदाहरण के लिए, नीचे दिया गया कोड:

tf.debugging.set_log_device_placement(True)

# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

नीचे दिखाया गया आउटपुट देता है:

डिवाइस / जॉब में ओपिनिंग माटमूल: लोकलहोस्ट / रेप्लिका: 0 / टास्क: 0 / डिवाइस: GPU: 0 tf.Tensor ([[22. 28.] [49. 64.]], शेप = (2, 2)। dtype = float32)

अधिक जानकारी के लिए, इस लिंक को देखें


1

बेशक। यदि आप Tensorflow या CNTk बैकएंड पर चल रहे हैं, तो आपका कोड आपके GPU उपकरणों पर डिफ़ॉल्ट रूप से चलेगा। लेकिन यदि थीनो बैकएंड करता है, तो आप निम्नलिखित का उपयोग कर सकते हैं

थीनो झंडे:

"TheANO_FLAGS = डिवाइस = gpu, floatX = float32 python my_keras_script.py"


0

यह देखें कि टास्क मैनेजर में आपकी स्क्रिप्ट जीपीयू चल रही है या नहीं। यदि नहीं, तो संदेह है कि आपका CUDA संस्करण आपके द्वारा उपयोग किए जा रहे टेंसरफ़्लो संस्करण के लिए सही है, क्योंकि अन्य उत्तर पहले से ही सुझाए गए हैं।

इसके अतिरिक्त, CUDA संस्करण के लिए एक उचित CUDA DNN पुस्तकालय को टेंसरफ़्लो के साथ GPU चलाने के लिए आवश्यक है। इसे यहां से डाउनलोड करें / निकालें और DLL (जैसे, cudnn64_7.dll) को CUDA बिन फ़ोल्डर में डालें (जैसे, C: \ Program Files \ NVIDIA GPU कम्प्यूटिंग टूलकिट \ CUDA \ v10.1 \ bin)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.