আমি কি জিপিইউতে কেরাস মডেল চালাতে পারি?


125

আমি কেরাস মডেলটি চালাচ্ছি, যার জমা দেওয়ার সময়সীমা ৩ 36 ঘন্টা রয়েছে, আমি যদি আমার মডেলকে সিপুতে প্রশিক্ষণ দিই তবে এটি প্রায় 50 ঘন্টা সময় লাগবে, জিপিইউতে কেরাস চালানোর কোনও উপায় আছে কি?

আমি টেনসরফ্লো ব্যাকএন্ড ব্যবহার করছি এবং এটি অ্যানাকোন্ডা ইনস্টল না করে আমার বৃহত্তর নোটবুকটিতে চালাচ্ছি।


আমি এটি খুঁজে পেয়েছি: মাঝারি.com / @kegui/… মনে হচ্ছে যে এখানে কেউ সরু ক্ষেত্রের মধ্যে উচ্চ মানের প্রশ্নগুলি অনুধাবন করতে পারে এবং তারপরে মাঝারি বিষয়ে একটি "উত্তর" তৈরি করতে এবং ভিউগুলি থেকে প্রকৃত অর্থ উপার্জন করতে পারে।
এনগ্রিস্টুডেন্ট

এএমডি জিপিইউর জন্য। এই পোস্টটি দেখুন। stackoverflow.com/a/60016869/6117565
বিক্রম

উত্তর:


175

হ্যাঁ আপনি জিপিইউতে কেরাস মডেল চালাতে পারেন। প্রথমে আপনাকে কয়েকটি জিনিস পরীক্ষা করতে হবে।

  1. আপনার সিস্টেমে জিপিইউ রয়েছে (এনভিডিয়া As এএমডি এখনও কাজ করে না)
  2. আপনি টেনসরফ্লো এর জিপিইউ সংস্করণ ইনস্টল করেছেন
  3. আপনি CUDA ইনস্টলেশন নির্দেশাবলী ইনস্টল করেছেন
  4. জিপিইউ কাজ করছে কিনা তা পরীক্ষা করে দেখুন যে জিপিইউ দিয়ে টেনসরফ্লো চলছে

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"
]

এই সমস্ত কাজ শেষ হয়ে গেলে আপনার মডেলটি জিপিইউতে চলবে:

কেরাস (> = 2.1.1) জিপিইউ ব্যবহার করছে কিনা তা পরীক্ষা করতে:

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

শুভকামনা.


এই অধিকারের জন্য আমি পাইথন 3.5 ইনস্টল করতে হবে? অন্যথায় টেনস্রোফ্লো কাজ করবে না?
রায়ান

জরুরী না. টিএফ 2.7 এবং 3.5 উভয়ের সাথে কাজ করে। টিএফ এর সঠিক সংস্করণটি বেছে নিন it
বিকাশ সিং

ঠিক আছে, অসুস্থ যান ২. with দিয়ে, হাওয়াইগ ইন্সটল করার বিষয়ে ইস্যুগুলি 3.5
রায়ান

আমি এই 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()টেনসরফ্লো ২.০ এ কাজ করে না।
nbro

21

অবশ্যই। আমি মনে করি আপনি ইতিমধ্যে জিপিইউর জন্য টেনসরফ্লো ইনস্টল করেছেন।

কেরাস আমদানি করার পরে আপনাকে নিম্নলিখিত ব্লকটি যুক্ত করতে হবে। আমি এমন একটি মেশিনে কাজ করছি যেখানে ৫ core টি কোর সিপিইউ এবং একটি জিপিইউ রয়েছে।

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)

অবশ্যই, এই ব্যবহারটি আমার মেশিনগুলিকে সর্বাধিক সীমাবদ্ধ করে তোলে। আপনি সিপিইউ এবং জিপিইউ খরচ মূল্য হ্রাস করতে পারেন।


ত্রুটিmodule 'tensorflow' has no attribute 'ConfigProto'
দিব্যংশু শ্রীবাস্তব

আপনি টেনসরফ্লো 2 ব্যবহার করছেন? আমি এটি টিএফ 1. এক্স এর জন্য পরীক্ষা করেছি
জনসকেসি

13

২.০ সামঞ্জস্যপূর্ণ উত্তর : উপরে উল্লিখিত উত্তরে কেরাস মডেলটিতে জিপিইউ কীভাবে ব্যবহার করতে হবে সে সম্পর্কে বিস্তারিত ব্যাখ্যা করা হয়েছে, তবে এটি কীভাবে করা যায় তা আমি ব্যাখ্যা করতে চাই Tensorflow Version 2.0

কয়টি জিপিইউ উপলব্ধ তা জানতে, আমরা নীচের কোডটি ব্যবহার করতে পারি:

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

আপনার ক্রিয়াকলাপ এবং টেনারগুলি কোন ডিভাইসে নিযুক্ত করা হয়েছে তা সন্ধান করার জন্য, tf.debugging.set_log_device_placement(True)আপনার প্রোগ্রামের প্রথম বিবৃতি হিসাবে রাখুন।

ডিভাইস প্লেসমেন্ট লগিং সক্ষম করার ফলে কোনও টেনসর বরাদ্দ বা ক্রিয়াকলাপ মুদ্রিত হতে পারে। উদাহরণস্বরূপ, নীচের কোডটি চালাচ্ছেন:

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 / ডিভাইস: জিপিইউ: 0 tf.Tensor ([[22. 28.] [49. 64.]], আকৃতি = (2, 2), dtype = float32)

আরও তথ্যের জন্য, এই লিঙ্কটি দেখুন


1

অবশ্যই. আপনি যদি টেনসরফ্লো বা সিএনটিকে ব্যাকহেন্ডে চলমান থাকেন তবে আপনার কোডটি আপনার জিপিইউ ডিভাইসগুলিতে ডিফল্টভাবে চলবে B তবে থিয়ানো যদি ব্যাকেন্ড হয় তবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন

থিয়ানো পতাকা:

"THEANO_FLAGS = ডিভাইস = জিপিইউ, ফ্লোটএক্স = ফ্লোট 32 পাইথন মাই_কেরা_সস্ক্রিপ্ট.পি"


0

আপনার স্ক্রিপ্টটি টাস্ক ম্যানেজারে জিপিইউ চলছে কিনা তা দেখুন। যদি তা না হয় তবে সন্দেহ হয় যে আপনার CUDA সংস্করণটি আপনি যে টেনসরফ্লো সংস্করণটি ব্যবহার করছেন তার জন্য সঠিক একটি, অন্য উত্তরগুলি ইতিমধ্যে প্রস্তাবিত হিসাবে।

অতিরিক্তভাবে, টুেন্সরফ্লো সহ জিপিইউ চালানোর জন্য সিইউডিএ সংস্করণের জন্য একটি উপযুক্ত সিইউডিএ ডিএনএন লাইব্রেরি প্রয়োজন। এখান থেকে এটি ডাউনলোড / এক্সট্রাক্ট করুন এবং সিডিডিএ বিন ফোল্ডারে ডিএলএল (উদাহরণস্বরূপ, cudnn64_7.dll) লাগান (উদাহরণস্বরূপ, সি: \ প্রোগ্রাম ফাইলগুলি ID এনভিআইডিএ জিপিইউ কম্পিউটিং টুলকিট \ সিইউডিএ \ v10.1 \ বিন)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.