پست وبلاگ

آموزش نصب Tensorflow

آموزش نصب Tensorflow

بسم الله الرحمن الرحیم

اخیرا عزیزان زیادی درخواست آموزش نصب تنسورفلو رو داده بودن. هرچند نصب تنسورفلو خصوصا برای پایتون کار سختی نیست و براحتی میشه با توجه به مستنداتی که در سایت اصلی وجود داره اون رو نصب کرد. اما به هر حال ممکنه برای بعضی ها سخت باشه .

این آموزش هم من چند ماه پیش نوشته بودم و فرصت نکردم بخوبی ویرایشش کنم. برای همین اگر جایی گنگه بفرمایید تا تکمیل تر و یا واضح تر بیان بشه: 
نکته ۱: اینجا رو من بروز میکنم تا مشکلی برای کسی نباشه لیست بروز رسانی ها در انتهای اموزش قرار داره.
نکته ۲: برای مشاهده آموزش نصب تنسورفلو در ویندوز هم اینجا کلیک کنید.

نصب تنسورفلو مبتنی بر پایتون ۳

توجه:در اوبونتو ۱۶٫۰۴ پایتون ۳٫۵ بصورت پیشفرض نصب هست و با Python3‌قابل فراخونی و استفاده است.

در اوبونتو ۱۴٫۰۴ پایتون ۳٫۴ بصورت پیشفرض نصب هست و با python3 قابل فراخونی هست. درصورتی که پایتون ۳٫۵ در ابونتوی شما نصب نیست
دستورات زیر رو بزنید :‌

بعد از انجام دستورات بالا باید بتونیم در ترمینال بنویسم python3.5 --version  و ببینیم که ورژن پایتون ما برابر Python 3.5.3  شده. از این به بعد هرجا که نیاز به استفاده از python35‌داشتیم باید بنویسم python3.5‌. اسامی مثل python به python2.7 و python3 به python3.4 اشاره دارن.

حالا برای نصب pip برای ورژن python3.5 دستورات زیر رو وارد کنید:

حالا برای اینکه هربار مجبور نباشیم بنویسیم python3.5 و بجاش از python3 استفاده کنیم مثل زیر عمل میکنیم (دقت کنید بصورت پیشفرض در اوبونتو ۱۴.۰۴ python3 پایتون ۳.۴ رو اجرا میکنه)

حالا در پنجره باز شده بنویسید alias python3=python3.5 و بعد save کنید. از این به بعد اگه در ترمینال بنویسید python3 پایتون ۳.۵ اجرا میشه.

 

نحوه نصب تنسورفلو 

ما میتونیم عملیات نصب رو به چند صورت انجام بدیم.
۱.همینطور عادی نصب کنیم(که پیشنهاد نمیشه خصوصا اگر قصد استفاده از فریم ورکهای دیگه و یا کتباخونه های دیگه رو هم داشته باشیم)
۲.از یک محیط مجازی استفاده کنیم تا تصب برنامه ها و کتابخونه های مختلف پایتون در سیستم عامل ما اختلال ایجاد کنه یکوقت که ما هم برای امنیت بیشتر از همین روش استفاده میکنیم.

قدم بعدی نصب virtualenv هست. تا تغییرات محلی باشه. یعنی برای نصب کتابخونه ها و نسخه مختلف پایتون نگرانی از بابت خراب شدن بقیه برنامه ها و… نداشته باشیم. برای نصب باید دقت کنیم که برای هر ورژن پایتون باید این جداگانه نصب بشه. دستور نصب هم به این صورت هست :‌

باید از دستور زیر برای نصب venv مربوط به پایتون ۳ استفاده کنیم(در ابونتو ۱۴) :‌

اگه اوبونتو ۱۶ باشه دستور زیر باید زده باشه.

بعد از انجام اینکار حالا این دستور رو میزنیم (دقت کنید مسیر رو عوض کنید! من خودم یک پوشه بنام tensorflow_vp3 تو درایوی بنام tmpstore ساختم و مسیرش رو دادم شما باید مسیر خودتون رو بدید!) :‌

ذکر این نکته هم خیلی مهمه که موقع نصب virtualenv باید مشخص کنید براساس کدوم ورژن پایتون نصب بشه.(که بالا انجام دادیم)
که متاسفانه در راهنمای گوگل نیومده و بدون مشخص کردن پایتون انجام شده (فرض اونجا اینه که کلا یه پایتون (یا ۲ یا ۳)‌بیشتر وجود نداره. اما مایی که ممکنه هر دو رو رو سیستم داشته باشیم باید ورژن پایتون رو هم قید کنیم. (پیشفرض گوگل پایتون ۲ هست البته. و  مراحل مشخص شده در مستندات تنسورفلو در سایت اصلی در بخش virtualenv کلا مبتنی بر پایتون ۲ هست و باید همه چیز هم مبتنی بر پایتون ۲ باشه – انتهای این اموزش دستورات برای پایتون ۲ رو هم نوشتم که فرق چندانی نداره با این اموزش-

خب حالا باید وارد محیط بشیم.(یا محیط رو فعال کنیم اصطلاحا) با دستور زیر این کارو میکنیم :‌

دقت داشته باشید که این دستور از جایی اجرا نشه که پوشه تنسورفلو توش هست. (مثلا من تو ترمینال نباید تو درایو tmpstore باشم چون تو این درایو پوشه تنسورفلو من هم وجود داره !)

حالا که وارد شدیم شروع به نصب خود تنسورفلو میکنیم.

نصب با conda :

خیلی راحت دستور زیر رو در ترمینال بزنید. با زدن این دستور تمامی پیش نیازهای شما از قبیل cuda و cudnn و هرچی که لازم باشه نصب و بعد از همین یک خط دستور همه چیز آماده کار هست .

دقت کنید که معمولا conda در لینوکس بروز هست اما در ویندوز من دیدم بعضیا بروز نیست ( هر وقت هم نصب کردید ورژن تنسورفلوی نصب شده رو چک کنید و با اخرین ورژن قیاس کنید تا اطمینان حاصل کنید اخرین ورژن رو دریافت کرده باشید. میتونید همیشه آخرین نسخه تنسورفلو رو از اینجا چک کنید)

 

نصب با pip: 

با دستور زیر آخرین نسخه تنسورفلو با پشتیبانی از GPU نصب میشه. یادتون باشه از ورژن ۱٫۳ از cuda 8.0 و cudnn v6.0 پشتیبانی میشه و باید از قبل اینها رو روی سیستمتون نصب کرده باشید.

برای نصب نسخه مبتنی بر CPU‌ (یعنی از کارت گرافیک پشتیبانی نمیشه و سرعتش خیلی کمتره) هم میتونید از دستور زیر استفاده کنید :

اگر با خطای premision denied مواجه شدید دستور بالا رو با sudo اجرا کنید. اما اگر به هر دلیل دیگه در نصب به شیوه بالا با مشکل مواجه شدید یا اگر نه قصد داشته باشیم از نسخه خاصی استفاده کنیم میتونیم به شکل زیر عمل کنیم . مثلا بنابه دلایلی ما از ورژن خیلی قدیمی ۰٫۱۲ میخواییم استفاده کنیم. میخواییم از ورژن مبتنی بر GPU استفاده میکنیم که نیازمند نصب بودن CUDA 8 و CUDNN 5.1 هست.(تا ورژن ۱٫۲ تنسورفلو همین نسخه کودا و cudnn کفایت میکنه)  از اونجایی که ورژن پایتون ما ۳٫۵ هست ما هم ورژن مربوط به پایتون ۳٫۵ برای نصب استفاده میکنیم (دقت کنید ورژن پایتون شما چنده و لینک مربوط به اون رو استفاده کنید.) :‌

ورژن های دیگه از اینجا قابل دیدن هستن و کافیه از لینک مورد نظرتون استفاده کنید و اون رو بجای لینک بالا جایگزین کنید
نکته :‌گوگل مارو فیلتر کرده اگر ارور داد و نصب نشد از فیلترشکن استفاده کنید.

بعدش خیلی راحت با استفاده از pip3 (یا conda)میتونید بقیه نیازمندی هامون رو نصب کنیم مثل jupyter و ipythonیا…. )

و هر چیز دیگه ای که لازم بود به این شکل نصب میکنیم.
بعد که همه چیز تموم شد . حالا یکبار deactivate میکنیم :‌

و بعد دوباره activate میکنیم :

در آخر هم اگر از ورژن GPU استفاده کرده باشیم (که کردیم و در ۹۹.۹۹ درصد اوقات همیشه باید بکنیم) باید دستور زیر رو هم به فایل bashrc اضافه کنیم. bashrc تو پوشه home شما هست و بصورت عادی مخفیه.برای دیدنش باید Ctrl-H رو بزنید. بعد که مشخص شد بازش کنید و این کدها رو در انتهاش وارد کنید و سیو کنید .

نیاز به گفتن نیست که cuda باید نصب شده باشه

خب اگه همه مراحل رو درست رفته باشید همه چیز باید الحمدالله اکی شده باشه و میتونید از تنسورفلو در پایتون یا ipython3 استفاده کنید.
برای تست هم میتونید نمونه زیر رو اجرا کنید :‌

خطهایی که علامت <<< دارن دستور هستن و باید وارد کنید. اگر دیدید پیام های اضافی زیادی هم نمایش داده میشه مثل زیر:نگران نباشید هیچ مشکلی وجود نداره. (تو صفحه کنسول فقط اینطوری میشه)

نکته دیگه هم اینکه برای اینکه بفهمید مسیر پکیج هاو… در تسنورفلو کجاس میتونید از دستور زیر بعنوان مثال استفاده کنید (ما چون از پایتون ۳ استفاده کردیم اینجا هم مینویسیم پایتون ۳):

و نشون داد که در همون پوشه ای که برای env ساختیم در پوشه site-packages تنسورفلو قرار داره.
خب الحمدالله نصب تنسورفلو هم تموم شد و میتونید به راحتی استفاده کنید. برای استفاده از ای نوت بوک هم کافیه بنویسیم :

اگر هم خواستیم از ipython3 تو کنسول استفاده کنیم خب خیلی راحت میتونیم بنویسیم :

خوبی ipython اینه که intelisense داره (همون code auto-completion ) که بعد نقطه tab بزنید خودش بقیه دستور رو مینویسه.

همچنین دقت کنیم که موقع نصب کتابخونه و… مورد نیازمون قبلش وارد محیط شده باشیم یعنی اعلان به شکل زیر باشه:‌

نکات:‌

اگر کتابخونه ای نصب نشد بدونید یه کامپایلری یا یه چیزی کمه مثلانصب scipy  چون کامپایلر فورترن رو نیاز داره اگر نباشه نصب نمیشه و خطا میده که البته با سرچ خطای داده شده هم میتونید متوجه مشکل بشید و رفعش کنید.

از داخل خود ipython هم میشه کتابخونه های مختلف رو نصب کرد . مثل زیر

علامت ! برای اجرای دستورها استفاده میشه .

اگر از سورس کد کامپایل کنید مشکل کودا ۸ برطرف میشه. کلا تنسورفلو از ورژن ۷ به بالا پشتیبانی میکنه. فقط ورژن های از قبل اماده (یا همون پری بیلد باینریها) کودا ۸ هست (از ورژن ۱۱ به بعد).

نصب تنسورفلو برای پایتون ۲

خب اگر بخواییم برای پایتون ۲ این کار رو انجام بدیم و تنسور فلو رو نصب کنیم خیلی راحت این دستورات رو میزنیم :‌
اول از همه نصب virtualenv :

حالا ایجاد محیط (قبلا پوشه tensorflow_vp2 رو ساختم اینجا مسیرش رو میدم) :‌

فعال سازی :‌

و نهایتا نصب :‌

نصب اخرین نسخه : به ترتیب اگر نیاز به نصب نسخه مبتنی بر CPU‌بود دستور اول و اگر نیاز به نسخه مبتنی بر GPU بود دستور دوم رو وارد میکنیم:‌

شیوه دوم نصب :‌ برای نصب نسخه ها بصورت دستی:

بعد هم یه غیرفعال سازی :

و حالا دوباره فعال سازی :‌

و حالا میتونید اگر خواستید ipython یا jupyter و هرچیز دیگه ای خواستید نصب کنید :‌
مثلا من ipython رو نصب میکنم :‌

یه نکته ای هم یادتون باشه . هرکدوم اینا نصب شد یکبار deactivate کنید بعد وارد شید و کار رو ادامه بدید .

اگر خطایی مثل

دی اکتیویت و دوباره اکتیویت کنید (شاید لازم باشه کلا ترمینال رو هم ببندید و دوباره باز کنید) تا مشکلتون برطرف بشه.

نکته  مهم دیگه اینکه اگر با خطای

یا

و یا کلا هرکدوم از دستورات تنسورفلو این خطا رو دادن باید بدونید که نباید تنسور فلو رو از جایی اجرا کنید که پوشه تنسورفلو توشه !‌ برای همین مثلا ما از پوشه home یکسره زدیم رفتیم فعال کردیم تنسورفلو رو


نهایتا هم این کل محتویات فایل bashrc من هست که برای نمونه میتونید ببینید. (اطلاعات مهم فقط بخشهای آخر هستند که بدرد شما میخورن چک کنید!با کامنت این بخشها مشخص شدن مثل محل اناکوندا و کودا و… ) :

سید حسین حسن پور متی کلایی دی ماه ۱۳۹۵

 

بروز رسانی اول انجام شد۲۸ شهریو ۹۶ :
اضافه کردن شیوه نصب آسان
اضافه کردن پایتون ۳٫۵ در اوبونتو ۱۴٫۰۴ بجای ۳٫۴ سابق
اضافه کردن نیازمندی های نسخه مبتنی بر GPU
اضافه کردن توضیحات تکمیلی

 

سید حسین حسن پور متی کلایی

درباره ی سید حسین حسن پور متی کلایی

موسس و مدیر سایت. اطلاعات در مورد فعالیت های کاری و تحصیلی : linkedIn . برای ارتباط از بخش تماس با ما یا در باره من استفاده کنید.

مقالات مرتبط

20 دیدگاه در “آموزش نصب Tensorflow

  1. سلام
    من یک دیتایی دارم که میزان انرژی الکتریکی مصرفی یک ناحیه رو در هر ساعت نشون میده.(دیتا فقط شامل اعداد است).
    میخام میزان انرژی مصرفی در ساعت بعد رو پیش بینی کنم.
    این کار رو قبلا با شبکه عصبی انجام دادم.
    حالا میخام این پیش بینی رو با استفاده از شبکه عصبی عمیق انجام بدم.
    آیا این کار امکان پذیره؟
    با چه نرم افزاری؟
    با تشکر

  2. با سلام
    من طبق گام های آموزش جلو رفتم. اما برای نصب faster-rcnn با تنسورفلو اکثر سایت ها از python2 استفاده میکنن. من تنسورفلو رو برای ‍پایتون ۲ هم نصب کردم. ( هم با دستور sudo pip install –upgrade tensorflow-gpu و هم با دستور pip install –upgrade tensorflow-gpu). حالا پایتون ۳ تنسورفلو رو تشخیص میدهُ اما پایتون ۲ تشخیص نمیده. وقتی import tensorflow میکنم خطای no module named tensorflow میده. راهی هست که برای پایتون ۲ هم تشخیص بده؟

    ممنون

    1. سلام . من دقیقا نمیدونم شما مسیرها رو بدرستی طی کردید یا نه . اما برای اینکه دردسر نداشته باشید بهترین کار ایجاد یه محیط جدید برای پایتون ۲ هست و زدن دستورات پایتون ۲ در داخل اون .
      اینطور دیگه بدون هیچ مشکلی میتونید کار نصب رو انجام بدید.

  3. سلام.
    من تنسورفلو ۱٫۲٫۱ را روی اوبونتو ۱۶٫۴ نصب کردم.
    بعد از فعال کردن تنسورفلو وقتی میخوام برنامه ام رو اجرا کنم، خطای زیر رو میده:
    Error importing tensorflow.  Unless you are using bazel,
    you should not try to import tensorflow from its source directory;
    please exit the tensorflow source tree, and relaunch your python interpreter
    from there.

  4. سلام آقای حسن پور
    متاسفانه سایتهایی مثل tensorflow و nvidia مارو فیلتر کرده و شما هم گفتید از فیلتر شکن استفاده کنیم. اما چجوری میشه برای ubuntu 16.04 فیلتر شکن نصب کرد؟ در واقع چه فیلتر شکن رایگانی برای اوبونتو ۱۶ هست؟

    1. سلام . برای پکیج های pip که مشکلی ندارید.
      اما برای بقیه موارد معمولا از هرجا وی پی ان تهیه میکنید میتونید راهنمای اتصال در سیستم عاملهای مختلف مثل لینوکس (ابونتو و…) رو بگیرید.
      مثلا من از openconnect استفاده میکنم . که برای نصبش میتونید بصورت زیر :
      sudo apt-get update
      sudo apt-get install openconnect
      عمل کنید.
      نحوه کارش هم فکر میکنم تو سایت پرسش و پاسخ یکی از کاربرا پرسیده بود توضیح دادم . میتونید همون رو چک کنید. (البته سر راسته ولی اگر یک درصد مشکل داشتید بخش پرسش و پاسخ رو سرچ کنید)

  5. ببخشید من یک فایل متلب دارم ، چه دستوری در پایتون بنویسم که فایل من رو از دایرکتوری موجود در لپ تاپم بخونه؟؟
    این دستور رو امتحان کردم ولی نمیشه:
    Data = sio.loadmat(‘C:/Users/emarahi/Desktop/bubble/data.mat’)

    ممنونم

      1. تو سایت پرسیدم حتی یکنفر هم باز نکرده ببینه، کلا از سایت پرسش و پاسخ ناامید شدم،
        این خطا هست:
        ‘dict’ object has no attribute ‘data’
        ممنونم

  6. سلام
    ببخشید من اون ماتریس بزرگی رو که داشتم با دستور reshape به ۱۲۰ تا ماتریس ۱۰۰۰۰۰ تایی تبدیل کردم مثلا با یک ماتریس خیلی کوچیک چنین خروجی داره:
    a = [1, 2, 3, 4, 5, 6]
    np.reshape(a, (3, 2))
    array([[1, 2],
    [۳, ۴],
    [۵, ۶]])
    array، خروجی میشه، حالا اگر من بخوام که ماتریس [۲ ,۱]، رو فراخوانی کنم، با په دستوری میتونم اینکار رو انجام بدم؟؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *