اجرای jupyter notebook بر روی gpu با استفاده از Tensorflow

سلام!از اینکه اولین نوشته من رو در ویرگول می‌خونین خوشحال و ممنونمبا توجه به اینکه این در مورد شبکه‎های عصبی و تشخیص اعداد از روی دست خط پروژه داشتم و برای اینکار محاسبات خیلی خیلی زیادی لازم بود که با cpuای که لپتاپ من داره انجام این محاسبات تقریبا 1 روز طول میکشید و این باعث شد که من به gpu پناه ببرم و کد پروژه رو تقریبا توی یک ساعت ران کنم.جالبه برای اینکه jupyter notebook رو روی gpu ران کنیم منابع تقریبا زیادی هست ولی خیلیاشون یه جوری این کار ساده رو پیچیده کردن که باعث میشه آدم بیخیال این قضیه شه کلا! من بعد از 3 بار نصب برنامه و تنظیمات موفق نشدم کد رو روی gpu اجرا کنم تا اینکه یه فایل pdf ازیک کانال تلگرامی در زمینه هوش مصنوعی پیدا کردم که این مراحل رو به شکل ساده توضیح داده بود که متاسفنه اسم نویسنده تو pdf نبود.کل کاری که ما باید بکنیم میشه گفت 4 مرحله هست و تقریبا 3 گیگ لازمه که دانلود کنیم و لازمه که بگم که این مراحل برای windows 10 و سیستم هایی هست که کارت گرافیک nvidia دارن و اینکه اگه آناکوندا رو ندارین از این لینک دانلودش کنین.مرحله صفر : نیازمندی‌هاقبل از شروع هر کاری بایید اول چک کنین ببینین که کارت گرافیک شما از Tensorflow پشتیبانی میکنه یا نه برای این کار توی این لینک توی قسمت CUDA-Enabled GeForce and TITAN Products اول مدل کارت گرافیک خودتون رو پیدا کنید . اگرعددی که مقابل مدل کارت گرافیکتون هست بالای 3.5 بود که خیالتون راحت کارت گرافیک شما از Tensorflow پشتیبانی میکنه و اگرم کمتر از 3.5 بود که چیزی از ارزش‌های شما کم نمیشه و فقط کارت گرافیکتون از Tensorflow پشتیبانی نمیکنه و باید بیخیال این داستان بشین.کار دیگه‌ای که باید بکنید اینه که درایورهای کارت گرافیکتون رو په onboard و چه nvidia آپدیت کنینبرای آپدیت کردن کارت گرافیک onboard کافیه توی سایت برند لپ‎‌تاپتون مدل لپ‌تاب خودتون رو پیدا کنین و در قسمت درایورهاش برای windows 10 درایور intel VGA رو پیدا کنین و آخرین نسخه رو دانلود و نصب کنین. میتونین از نرم افزار easy drive هم برای آپدیت درایورهاتون استفاده کنین.برای آپدیت کارت گرافیک nvidia هم می‌تونین از این لینک استفاده کنین. فقط قبل نصب آخرین ورژن درایور کارت گرافیک ورژن قبلی رو حذف کنین. مرحله اول : نصب visual studioاول باید visual studio 2019 ورژن community رو دانلود و نصب کنیم که اصلا نگران نباشین چون قرار نیست کل visual studio رو دانلود کنیم.اول از این لینک installer رو دانلود کنین و بعدش با اجرا کردن installer اول یه 60 مگابایت خود installer دانلود داره بعد از اون پنجره زیر نمایش داده میشه که گزینه install رو باید انتخاب کنین و اینجا هم یه 160 مگابیتی دانلود داریم طبیعتا اگه visual studio رو دارین این مرحله لازم نیستمرحله دوم : نصب CUDA toolkit میتونین CUDA toolkit 10.1 یا CUDA toolkit 9.0 رو از لینکایی که گذاشتم دانلود کنین فقط توجه کنین که اگه ورژن 9 رو نصب میکنین 4 تا فایل path هم هست که اونارو هم به ترتیب بعد از نصب CUDA دانلود و نصب کنین.برای نصب CUDA هم حتما گزینه custom رو بزنین و همه گزینه ها به غیر از CUDA رو غیر فعال کنین ورژن 10.1 مثل اینکه روی بعضی از سیستما جواب نمیده اگر میخواین خیالتون راحت شه ورژن 9 رو نصب کنین.مرحله 3: نصب CUDNN نسخه 7.2 به بالااز این لینک آخرین ورژن کتابخونه cudnn رو( با توجه به ورژن CUDA toolkit که نصب کردین ) دانلود کنین.برای دانلود nvidia ازتون میخواد که یه اکانت هم بسازین اگه اکانت دارین که هیچی و اگر اکانت ندارین هم یه اکانت بسازین.بعد از دانلود cudnn فایل زیپ رو extract کنین و با باز کردن فولدر 3 تا فولدر با اسمای lib و include و bin میبینین.کاری که شما باید بکنین اینه که به ترتیب فایل‌های داخل هر پوشه رو در پوشه‌هایی که با همین اسم توی مسیر نصب CUDA toolkit هستن copy and replace کنین دقیقا مثل کاری که برای کرک کردن بازیا میکنیم! مسیر نصبی CUDA معمولا مسیر زیر هستش:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v 10.1فقط این کارو برای هر پوشه جداگانه انجام بدین چون اگه همزمان برای 3 پوشه این کارو انجام بدین فایل‌‌های لازم کپی نمیشن.بعد از انجام این کارا حالا تو قسمت سرچ استارت منو ویندوز edit the system environment variables رو سرچ کنین و تنظیمات رو طبق عکسای زیر انجام بدین:در قسمت system variables مسیری که CUDA رو نصب کردین پیداش کنید و گزینه editرو بزنین پنجره زیر باز میشه که با زدن گزینه new مسیر های زیر رو بهش اضافه کنینC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v 10.1/binC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v 10.1/ libnvvpبعد اضافه کردن مسیرا هی اوکی رو بزنید تا بنچره‎‌ها بسته شنلازم به ذکره که اگه این مسیرا از قبل بودن دیگه لازم به اضافه کردن چیزی نیسمرحله چهار:ایجاد enviroment برای gpu در Anaconda برنامه Anaconda prompt رو باز کنین و کد زیر رو وارد کنین ( میدونید که باید vpn هم روشن باشه!) تا یه محیط جدید برای gpu در آناکوندا ساخته بشهconda create -n tensorflow_gpuenv tensorflow-gpuconda activate tensorflow_gpuenvبعد از اینکه آناکوندا پیکیج‌ها رو دانلود و نصب کرد حالا anaconda navigator رو باز کنین و توی قسمت environments میبینید که tensorflow-gpuenv به environment هاتون اضافه شده روش کلیک کنید چند لحظه منتظر بمونین تا محیط رو عوض کنه بعد اینکه آماده شد home رو انتخاب کنید و میبینین که بر خلاف محیط قبلی هیچ کدوم از برنامه‌ها نصب نیستن الان کافیه هر برنامه‌ای رو که خواستین گزینه install رو بزنین تا روی محیط جدید براتون نصب کنه که فقط jupyter notebook برای من لازم بود و بقیه به کارم نمیومدمنتظر شین تا jupyter notebook رو براتون دانلود و نصب کنه و بعد از نصب میتونین notebook جدید باز کنین و ازش استفاده کنینبرای اینکه کدتون روی gpu اجرا بشه حتما باید کتابخونه tensorflow رو با کد زیرimport کنینimport tensorflow as tfو حالا میتونین از سرعت لذت ببرین کدی که در 500 ثاینه برای من اجرا میشد حالا روی gpu در30 ثاینه انجام میشهفقط نکته‌ای که هست اینه که اگه محاسبات زیاد باشه gpu خیلی داغ میکنه و این برای لپ‌تاپ خیلی مضر هست و ممکنه gpu شما اگه قوی نباشه بسوزهمیتونین از سرویس‌های آنلاین که gpu در اختیار کاربرا قرار میدن مثل google colab استفاده کنین.در آخر بازم تشکر میکنم از این که اولین نوشته من رو توی ویرگول خوندین ( معلومه خیلی ذوق زدم?)اگر اشتباهی یا کم و کسری بود ممنون میشم بهم بگین تا نوشته رو بروز کنم