بسم الله الرحمن الرحیم
اخیرا عزیزان زیادی درخواست آموزش نصب تنسورفلو رو داده بودن. هرچند نصب تنسورفلو خصوصا برای پایتون کار سختی نیست و براحتی میشه با توجه به مستنداتی که در سایت اصلی وجود داره اون رو نصب کرد. اما به هر حال ممکنه برای بعضی ها سخت باشه .
این آموزش هم من چند ماه پیش نوشته بودم و فرصت نکردم بخوبی ویرایشش کنم. برای همین اگر جایی گنگه بفرمایید تا تکمیل تر و یا واضح تر بیان بشه:
نکته ۱: اینجا رو من بروز میکنم تا مشکلی برای کسی نباشه لیست بروز رسانی ها در انتهای اموزش قرار داره.
نکته ۲: برای مشاهده آموزش نصب تنسورفلو در ویندوز هم اینجا کلیک کنید.
نصب تنسورفلو مبتنی بر پایتون ۳
توجه:در اوبونتو ۱۶٫۰۴ پایتون ۳٫۵ بصورت پیشفرض نصب هست و با Python3قابل فراخونی و استفاده است.
در اوبونتو ۱۴٫۰۴ پایتون ۳٫۴ بصورت پیشفرض نصب هست و با python3 قابل فراخونی هست. درصورتی که پایتون ۳٫۵ در ابونتوی شما نصب نیست
دستورات زیر رو بزنید :
1 2 3 4 5 |
sudo add-apt-repository ppa:jonathonf/python-3.5 sudo apt-get update sudo apt-get install python3.5 |
بعد از انجام دستورات بالا باید بتونیم در ترمینال بنویسم python3.5 --version و ببینیم که ورژن پایتون ما برابر Python 3.5.3 شده. از این به بعد هرجا که نیاز به استفاده از python35داشتیم باید بنویسم python3.5. اسامی مثل python به python2.7 و python3 به python3.4 اشاره دارن.
حالا برای نصب pip برای ورژن python3.5 دستورات زیر رو وارد کنید:
1 2 3 4 |
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python3.5 get-pip.py |
حالا برای اینکه هربار مجبور نباشیم بنویسیم python3.5 و بجاش از python3 استفاده کنیم مثل زیر عمل میکنیم (دقت کنید بصورت پیشفرض در اوبونتو ۱۴.۰۴ python3 پایتون ۳.۴ رو اجرا میکنه)
1 2 3 4 |
cd ~ gedit .bash_aliases |
حالا در پنجره باز شده بنویسید alias python3=python3.5 و بعد save کنید. از این به بعد اگه در ترمینال بنویسید python3 پایتون ۳.۵ اجرا میشه.
نحوه نصب تنسورفلو
ما میتونیم عملیات نصب رو به چند صورت انجام بدیم.
۱.همینطور عادی نصب کنیم(که پیشنهاد نمیشه خصوصا اگر قصد استفاده از فریم ورکهای دیگه و یا کتباخونه های دیگه رو هم داشته باشیم)
۲.از یک محیط مجازی استفاده کنیم تا تصب برنامه ها و کتابخونه های مختلف پایتون در سیستم عامل ما اختلال ایجاد کنه یکوقت که ما هم برای امنیت بیشتر از همین روش استفاده میکنیم.
قدم بعدی نصب virtualenv هست. تا تغییرات محلی باشه. یعنی برای نصب کتابخونه ها و نسخه مختلف پایتون نگرانی از بابت خراب شدن بقیه برنامه ها و… نداشته باشیم. برای نصب باید دقت کنیم که برای هر ورژن پایتون باید این جداگانه نصب بشه. دستور نصب هم به این صورت هست :
باید از دستور زیر برای نصب venv مربوط به پایتون ۳ استفاده کنیم(در ابونتو ۱۴) :
1 2 3 |
sudo apt-get install python3.5-venv |
اگه اوبونتو ۱۶ باشه دستور زیر باید زده باشه.
1 2 3 |
sudo apt-get install python3-venv |
بعد از انجام اینکار حالا این دستور رو میزنیم (دقت کنید مسیر رو عوض کنید! من خودم یک پوشه بنام tensorflow_vp3 تو درایوی بنام tmpstore ساختم و مسیرش رو دادم شما باید مسیر خودتون رو بدید!) :
1 2 3 |
python3 -m venv --system-site-packages /media/hossein/tmpstore/tensorflow_vp3/ |
ذکر این نکته هم خیلی مهمه که موقع نصب virtualenv باید مشخص کنید براساس کدوم ورژن پایتون نصب بشه.(که بالا انجام دادیم)
که متاسفانه در راهنمای گوگل نیومده و بدون مشخص کردن پایتون انجام شده (فرض اونجا اینه که کلا یه پایتون (یا ۲ یا ۳)بیشتر وجود نداره. اما مایی که ممکنه هر دو رو رو سیستم داشته باشیم باید ورژن پایتون رو هم قید کنیم. (پیشفرض گوگل پایتون ۲ هست البته. و مراحل مشخص شده در مستندات تنسورفلو در سایت اصلی در بخش virtualenv کلا مبتنی بر پایتون ۲ هست و باید همه چیز هم مبتنی بر پایتون ۲ باشه – انتهای این اموزش دستورات برای پایتون ۲ رو هم نوشتم که فرق چندانی نداره با این اموزش-
خب حالا باید وارد محیط بشیم.(یا محیط رو فعال کنیم اصطلاحا) با دستور زیر این کارو میکنیم :
1 2 3 |
source /media/hossein/tmpstore/tensorflow_vp3/bin/activate |
دقت داشته باشید که این دستور از جایی اجرا نشه که پوشه تنسورفلو توش هست. (مثلا من تو ترمینال نباید تو درایو tmpstore باشم چون تو این درایو پوشه تنسورفلو من هم وجود داره !)
حالا که وارد شدیم شروع به نصب خود تنسورفلو میکنیم.
نصب با conda :
خیلی راحت دستور زیر رو در ترمینال بزنید. با زدن این دستور تمامی پیش نیازهای شما از قبیل cuda و cudnn و هرچی که لازم باشه نصب و بعد از همین یک خط دستور همه چیز آماده کار هست .
1 2 3 |
conda install tensorflow-gpu |
دقت کنید که معمولا conda در لینوکس بروز هست اما در ویندوز من دیدم بعضیا بروز نیست ( هر وقت هم نصب کردید ورژن تنسورفلوی نصب شده رو چک کنید و با اخرین ورژن قیاس کنید تا اطمینان حاصل کنید اخرین ورژن رو دریافت کرده باشید. میتونید همیشه آخرین نسخه تنسورفلو رو از اینجا چک کنید)
نصب با pip:
با دستور زیر آخرین نسخه تنسورفلو با پشتیبانی از GPU نصب میشه. یادتون باشه از ورژن ۱٫۳ از cuda 8.0 و cudnn v6.0 پشتیبانی میشه و باید از قبل اینها رو روی سیستمتون نصب کرده باشید.
1 2 3 |
pip3 install --upgrade tensorflow-gpu |
برای نصب نسخه مبتنی بر CPU (یعنی از کارت گرافیک پشتیبانی نمیشه و سرعتش خیلی کمتره) هم میتونید از دستور زیر استفاده کنید :
1 2 3 |
pip3 install --upgrade tensorflow |
اگر با خطای premision denied مواجه شدید دستور بالا رو با sudo اجرا کنید. اما اگر به هر دلیل دیگه در نصب به شیوه بالا با مشکل مواجه شدید یا اگر نه قصد داشته باشیم از نسخه خاصی استفاده کنیم میتونیم به شکل زیر عمل کنیم . مثلا بنابه دلایلی ما از ورژن خیلی قدیمی ۰٫۱۲ میخواییم استفاده کنیم. میخواییم از ورژن مبتنی بر GPU استفاده میکنیم که نیازمند نصب بودن CUDA 8 و CUDNN 5.1 هست.(تا ورژن ۱٫۲ تنسورفلو همین نسخه کودا و cudnn کفایت میکنه) از اونجایی که ورژن پایتون ما ۳٫۵ هست ما هم ورژن مربوط به پایتون ۳٫۵ برای نصب استفاده میکنیم (دقت کنید ورژن پایتون شما چنده و لینک مربوط به اون رو استفاده کنید.) :
1 2 3 |
(tensorflow_vp3) hossein@hossein-pc:~$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp35-cp35m-linux_x86_64.whl |
1 2 3 |
(tensorflow_vp3) hossein@hossein-pc:~$ pip3 install --upgrade $TF_BINARY_URL |
ورژن های دیگه از اینجا قابل دیدن هستن و کافیه از لینک مورد نظرتون استفاده کنید و اون رو بجای لینک بالا جایگزین کنید
نکته :گوگل مارو فیلتر کرده اگر ارور داد و نصب نشد از فیلترشکن استفاده کنید.
بعدش خیلی راحت با استفاده از pip3 (یا conda)میتونید بقیه نیازمندی هامون رو نصب کنیم مثل jupyter و ipythonیا…. )
1 2 3 4 5 |
(tensorflow_vp3) hossein@hossein-pc:~$ pip3 install jupyter (tensorflow_vp3) hossein@hossein-pc:~$ pip3 install numpy (tensorflow_vp3) hossein@hossein-pc:~$ pip3 install matplotlib |
و هر چیز دیگه ای که لازم بود به این شکل نصب میکنیم.
بعد که همه چیز تموم شد . حالا یکبار deactivate میکنیم :
1 2 3 |
(tensorflow_vp3) hossein@hossein-pc:~$ deactivate |
و بعد دوباره activate میکنیم :
1 2 3 |
hossein@hossein-pc:~$ source /media/hossein/tmpstore/tensorflow_vp3/bin/activate |
در آخر هم اگر از ورژن GPU استفاده کرده باشیم (که کردیم و در ۹۹.۹۹ درصد اوقات همیشه باید بکنیم) باید دستور زیر رو هم به فایل bashrc اضافه کنیم. bashrc تو پوشه home شما هست و بصورت عادی مخفیه.برای دیدنش باید Ctrl-H رو بزنید. بعد که مشخص شد بازش کنید و این کدها رو در انتهاش وارد کنید و سیو کنید .
1 2 3 4 |
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda |
نیاز به گفتن نیست که cuda باید نصب شده باشه
خب اگه همه مراحل رو درست رفته باشید همه چیز باید الحمدالله اکی شده باشه و میتونید از تنسورفلو در پایتون یا ipython3 استفاده کنید.
برای تست هم میتونید نمونه زیر رو اجرا کنید :
1 2 3 4 5 6 7 8 9 10 11 |
>>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) Hello, TensorFlow! >>> a = tf.constant(10) >>> b = tf.constant(32) >>> print(sess.run(a + b)) 42 |
خطهایی که علامت <<< دارن دستور هستن و باید وارد کنید. اگر دیدید پیام های اضافی زیادی هم نمایش داده میشه مثل زیر:نگران نباشید هیچ مشکلی وجود نداره. (تو صفحه کنسول فقط اینطوری میشه)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
(tensorflow_vp3) hossein@hossein-pc:~$ python3 Python 3.4.3 (default, Nov 17 2016, 01:08:31) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally >>> hello = tf.constant('In the name of Allah') >>> sess = tf.Session() I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so o I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 0 with properties: name: GeForce GTX 980 major: 5 minor: 2 memoryClockRate (GHz) 1.329 pciBusID 0000:01:00.0 Total memory: 3.93GiB Free memory: 227.25MiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:972] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 980, pci bus id: 0000:01:00.0) >>> print(sess.run(hello)) b'In the name of Allah' >>> |
نکته دیگه هم اینکه برای اینکه بفهمید مسیر پکیج هاو… در تسنورفلو کجاس میتونید از دستور زیر بعنوان مثال استفاده کنید (ما چون از پایتون ۳ استفاده کردیم اینجا هم مینویسیم پایتون ۳):
1 2 3 4 5 6 7 8 9 |
(tensorflow_vp3) hossein@hossein-pc:~$ python3 -c 'import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))' I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally /media/hossein/tmpstore/tensorflow_vp3/lib/python3.4/site-packages/tensorflow |
و نشون داد که در همون پوشه ای که برای env ساختیم در پوشه site-packages تنسورفلو قرار داره.
خب الحمدالله نصب تنسورفلو هم تموم شد و میتونید به راحتی استفاده کنید. برای استفاده از ای نوت بوک هم کافیه بنویسیم :
1 2 3 |
(tensorflow_vp3) hossein@hossein-pc:~$ jupyter notebook |
اگر هم خواستیم از ipython3 تو کنسول استفاده کنیم خب خیلی راحت میتونیم بنویسیم :
1 2 3 |
(tensorflow_vp3) hossein@hossein-pc:~$ ipython3 |
خوبی ipython اینه که intelisense داره (همون code auto-completion ) که بعد نقطه tab بزنید خودش بقیه دستور رو مینویسه.
همچنین دقت کنیم که موقع نصب کتابخونه و… مورد نیازمون قبلش وارد محیط شده باشیم یعنی اعلان به شکل زیر باشه:
1 2 3 |
(tensorflow_virtenv_p3)seyyedhossein@hossein:~$ |
نکات:
اگر کتابخونه ای نصب نشد بدونید یه کامپایلری یا یه چیزی کمه مثلانصب scipy چون کامپایلر فورترن رو نیاز داره اگر نباشه نصب نمیشه و خطا میده که البته با سرچ خطای داده شده هم میتونید متوجه مشکل بشید و رفعش کنید.
از داخل خود ipython هم میشه کتابخونه های مختلف رو نصب کرد . مثل زیر
1 2 3 |
!pip install 'numpy>=1.11.0' 'matplotlib>=1.5.1' 'scikit-image>=0.11.3' 'scikit-learn>=0.17' |
علامت ! برای اجرای دستورها استفاده میشه .
اگر از سورس کد کامپایل کنید مشکل کودا ۸ برطرف میشه. کلا تنسورفلو از ورژن ۷ به بالا پشتیبانی میکنه. فقط ورژن های از قبل اماده (یا همون پری بیلد باینریها) کودا ۸ هست (از ورژن ۱۱ به بعد).
نصب تنسورفلو برای پایتون ۲
خب اگر بخواییم برای پایتون ۲ این کار رو انجام بدیم و تنسور فلو رو نصب کنیم خیلی راحت این دستورات رو میزنیم :
اول از همه نصب virtualenv :
1 2 3 |
sudo apt-get install python-virtualenv |
حالا ایجاد محیط (قبلا پوشه tensorflow_vp2 رو ساختم اینجا مسیرش رو میدم) :
1 2 3 |
virtualenv --system-site-packages /media/hossein/tmpstore/tensorflow_vp2/ |
فعال سازی :
1 2 3 |
source /media/hossein/tmpstore/tensorflow_vp2/bin/activate |
و نهایتا نصب :
نصب اخرین نسخه : به ترتیب اگر نیاز به نصب نسخه مبتنی بر CPUبود دستور اول و اگر نیاز به نسخه مبتنی بر GPU بود دستور دوم رو وارد میکنیم:
1 2 3 4 |
pip install --upgrade tensorflow pip install --upgrade tensorflow-gpu |
شیوه دوم نصب : برای نصب نسخه ها بصورت دستی:
1 2 3 4 |
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl pip install --upgrade $TF_BINARY_URL |
بعد هم یه غیرفعال سازی :
1 2 3 |
deactivate |
و حالا دوباره فعال سازی :
1 2 3 |
source /media/hossein/tmpstore/tensorflow_vp2/bin/activate |
و حالا میتونید اگر خواستید ipython یا jupyter و هرچیز دیگه ای خواستید نصب کنید :
مثلا من ipython رو نصب میکنم :
1 2 3 |
pip install ipython |
یه نکته ای هم یادتون باشه . هرکدوم اینا نصب شد یکبار deactivate کنید بعد وارد شید و کار رو ادامه بدید .
اگر خطایی مثل
1 2 3 |
ImportError: /media/hossein/tmpstore/tensorflow_vp2/lib/python2.7/site-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf |
دی اکتیویت و دوباره اکتیویت کنید (شاید لازم باشه کلا ترمینال رو هم ببندید و دوباره باز کنید) تا مشکلتون برطرف بشه.
نکته مهم دیگه اینکه اگر با خطای
1 2 3 |
AttributeError: 'module' object has no attribute 'constant' |
یا
1 2 3 |
AttributeError: 'module' object has no attribute 'Session' |
و یا کلا هرکدوم از دستورات تنسورفلو این خطا رو دادن باید بدونید که نباید تنسور فلو رو از جایی اجرا کنید که پوشه تنسورفلو توشه ! برای همین مثلا ما از پوشه home یکسره زدیم رفتیم فعال کردیم تنسورفلو رو
1 2 3 |
seyyedhossein@hossein:/media/seyyedhossein/tmpstore$ source /media/seyyedhossein/tmpstore/tensorflow_virtenv/bin/activate |
نهایتا هم این کل محتویات فایل bashrc من هست که برای نمونه میتونید ببینید. (اطلاعات مهم فقط بخشهای آخر هستند که بدرد شما میخورن چک کنید!با کامنت این بخشها مشخص شدن مثل محل اناکوندا و کودا و… ) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 HISTFILESIZE=2000 # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ ' else PS1='${debian_chroot:+($debian_chroot)}u@h:w$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi #cuda8 export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH #Anaconda 2 export PATH=/home/hossein/anaconda2/bin:$PATH export CAFFE_ROOT=/media/hossein/tmpstore/caffe export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH #tensorflow export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda |
بروز رسانی اول انجام شد۲۸ شهریو ۹۶ :
اضافه کردن شیوه نصب آسان
اضافه کردن پایتون ۳٫۵ در اوبونتو ۱۴٫۰۴ بجای ۳٫۴ سابق
اضافه کردن نیازمندی های نسخه مبتنی بر GPU
اضافه کردن توضیحات تکمیلی
سلام.
بی نهایت ممنون و سپاس گزارم
با ارزوی سلامتی و توفیق رزو افزون
سلام
لطفا لینک دانلود نرم افزار تنسور فلو رو قرار دهید.
سلام.
همه لینکهای مورد نیاز برای نصب تنسورفلو در متن آموزش وجود دارن.
سلام
من یک دیتایی دارم که میزان انرژی الکتریکی مصرفی یک ناحیه رو در هر ساعت نشون میده.(دیتا فقط شامل اعداد است).
میخام میزان انرژی مصرفی در ساعت بعد رو پیش بینی کنم.
این کار رو قبلا با شبکه عصبی انجام دادم.
حالا میخام این پیش بینی رو با استفاده از شبکه عصبی عمیق انجام بدم.
آیا این کار امکان پذیره؟
با چه نرم افزاری؟
با تشکر
سلام .بله
در مورد شبکه های Lstm تحقیق کنید و برای پیاده سازی میتونید از تنسورفلو و یا تورچ و یا deeplearning4j هم استفاده کنید.
سلام،
امکان داره نصب تنسرفلو روی ویندوز و cpu رو هم توضیح بدید؟
طبق خود وبسیت تنسرفلو، نمیتونم اینستال کنم
سلام .
CPU ش که کار خاصی نداره . میتونید یه سوال تو بخش پرسش و پاسخ ایجاد کنید و توضیح بدید چه مراحی رو رفتید و چطور و چه خطایی میگیرید که انشاالله بتونیم اونجا دقیقتر کمکتون کنیم.
[…] آموزش قبلی ما نحوه نصب تنسورفلو در لینوکس رو داشتیم و در اینجا میخوایم نحوه نصب تنسورفلو و کراس […]
با سلام
من طبق گام های آموزش جلو رفتم. اما برای نصب faster-rcnn با تنسورفلو اکثر سایت ها از python2 استفاده میکنن. من تنسورفلو رو برای پایتون ۲ هم نصب کردم. ( هم با دستور sudo pip install –upgrade tensorflow-gpu و هم با دستور pip install –upgrade tensorflow-gpu). حالا پایتون ۳ تنسورفلو رو تشخیص میدهُ اما پایتون ۲ تشخیص نمیده. وقتی import tensorflow میکنم خطای no module named tensorflow میده. راهی هست که برای پایتون ۲ هم تشخیص بده؟
ممنون
سلام . من دقیقا نمیدونم شما مسیرها رو بدرستی طی کردید یا نه . اما برای اینکه دردسر نداشته باشید بهترین کار ایجاد یه محیط جدید برای پایتون ۲ هست و زدن دستورات پایتون ۲ در داخل اون .
اینطور دیگه بدون هیچ مشکلی میتونید کار نصب رو انجام بدید.
تشکر آقای حسن پور?
سلام
خواهش میکنم
سلام.
من تنسورفلو ۱٫۲٫۱ را روی اوبونتو ۱۶٫۴ نصب کردم.
بعد از فعال کردن تنسورفلو وقتی میخوام برنامه ام رو اجرا کنم، خطای زیر رو میده:
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.
سلام
ترمینال شما نباید تو پوشه ای بنام tensorflow باز باشه . یعنی وقتی دستور import رو میزنید نباید در پوشه ای باشید که اسمش تنسورفلو هست
سلام آقای حسن پور
متاسفانه سایتهایی مثل tensorflow و nvidia مارو فیلتر کرده و شما هم گفتید از فیلتر شکن استفاده کنیم. اما چجوری میشه برای ubuntu 16.04 فیلتر شکن نصب کرد؟ در واقع چه فیلتر شکن رایگانی برای اوبونتو ۱۶ هست؟
سلام . برای پکیج های pip که مشکلی ندارید.
اما برای بقیه موارد معمولا از هرجا وی پی ان تهیه میکنید میتونید راهنمای اتصال در سیستم عاملهای مختلف مثل لینوکس (ابونتو و…) رو بگیرید.
مثلا من از openconnect استفاده میکنم . که برای نصبش میتونید بصورت زیر :
sudo apt-get update
sudo apt-get install openconnect
عمل کنید.
نحوه کارش هم فکر میکنم تو سایت پرسش و پاسخ یکی از کاربرا پرسیده بود توضیح دادم . میتونید همون رو چک کنید. (البته سر راسته ولی اگر یک درصد مشکل داشتید بخش پرسش و پاسخ رو سرچ کنید)
ببخشید من یک فایل متلب دارم ، چه دستوری در پایتون بنویسم که فایل من رو از دایرکتوری موجود در لپ تاپم بخونه؟؟
این دستور رو امتحان کردم ولی نمیشه:
Data = sio.loadmat(‘C:/Users/emarahi/Desktop/bubble/data.mat’)
ممنونم
سلام
نمیشه که درست نیست! باید خطایی که میده رو بگید تا بشه کمکتون کرد
ضمنا لطف کنید این سوالات رو تو سایت پرسش و پاسخ بپرسید که بدرد بقیه هم بخوره
همونجا بپرسید بعد اینجا اطلاع بدید من جواب بدم خدمتتون
تو سایت پرسیدم حتی یکنفر هم باز نکرده ببینه، کلا از سایت پرسش و پاسخ ناامید شدم،
این خطا هست:
‘dict’ object has no attribute ‘data’
ممنونم
سلام
ببخشید من اون ماتریس بزرگی رو که داشتم با دستور reshape به ۱۲۰ تا ماتریس ۱۰۰۰۰۰ تایی تبدیل کردم مثلا با یک ماتریس خیلی کوچیک چنین خروجی داره:
a = [1, 2, 3, 4, 5, 6]
np.reshape(a, (3, 2))
array([[1, 2],
[۳, ۴],
[۵, ۶]])
array، خروجی میشه، حالا اگر من بخوام که ماتریس [۲ ,۱]، رو فراخوانی کنم، با په دستوری میتونم اینکار رو انجام بدم؟؟
با سلام. من برای نصب تنسورفلو در ابونتو کودا را نصب کردم ولی درایور انویدیا در سیستم نصب نیس. ۱٫ آیا باید کودا را حذف کنم و درایور انویدیا را اول نصب کنم؟۲٫ اگر بدون درایور تنسورفلو رو نصب کنم مشکلی پیش میاد؟۳٫ و اینکه برای این مدل جی پی یو NVIDIA corporation GK208[GeForce GT 730] چه مدلی از انویدیا باید نصب کنم؟
متشکرم.
سلام
من از روش شما نصب کردم تو مسیر
home/na/venv/tensor
و وقتی میرم داخلش و میزنم
which python مسیر بالا رو میده ولی برای which pip و which condaمسیر
home/na/anaconda3/bin/pip رو میده !
این درسته؟ یا باید مسیر بالایی رو بده ؟
وقتی از تنسور استفاده میکنم میگه
attribute error : module ‘tensorflow’ has no attribute ‘ session’
در حالی که من تو پوشه ی venv و بعد tensor ساختم
سلام
session رو باید Session بنویسید .
لطفا سوال رو در سایت پرسش و پاسخ بپرسید من تا دو هفته دیگه نمیتونم به سوالات جواب بدم یا اگر برسم خیلی دیر میشه
برای اینکه در زمانتون صرفه جویی بشه حتما در سایت بپرسید من اگر برسم همونجا هم جواب میدم .
با سلام و احترام
چجوری میتونم opencv داخل pycharm اضافه کنم؟
الان من میخوام داخل ترمینال نصب کنم به cmake ارور میده بعد میخوام cmake نصب کنم قبلا دستور sudo apt-get iupdate میزنم هی سری لینک میاد ارور میده فکر کنم شاید فیلتر باشیم؟
sudo apt-get install cmake -y
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘cmake’ has no installation candidate
اینم ارور های sudo apt-get update
W: Failed to fetch http://ppa.launchpad.net/jonathonf/python-3.5/ubuntu/dists/saucy/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
ممنون میشم جواب بدین
سلام opencv۲ یا opencv3 کدوم رو میخوایید نصب کنید ؟ چون شیوه نصب ایندوتا در اوبونتو فرق داره
یه زحمت بکشید همین سوال رو در بخش پرسش و پاسخ بپرسید من اونجا سعی میکنم کامل جواب بدم .
سلام
من همه مراحل رو کامل انجام دادم ولی این خطا رو می گیرم لطفا راهنمایی کنید
dr@dr-mardani:~$ source /media/dr/179c8070-45c3-4c50-b491-fe2ba89d3803/dr-salimi/tensorflow_vp3/bin/activate
(tensorflow_vp3) dr@dr-mardani:~$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py”, line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 24, in swig_import_helper
_mod = imp.load_module(‘_pywrap_tensorflow_internal’, fp, pathname, description)
File “/usr/lib/python3.5/imp.py”, line 242, in load_module
return load_dynamic(name, filename, file)
File “/usr/lib/python3.5/imp.py”, line 342, in load_dynamic
return _load(spec)
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “”, line 1, in
File “/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py”, line 22, in
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py”, line 49, in
from tensorflow.python import pywrap_tensorflow
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py”, line 74, in
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py”, line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 24, in swig_import_helper
_mod = imp.load_module(‘_pywrap_tensorflow_internal’, fp, pathname, description)
File “/usr/lib/python3.5/imp.py”, line 242, in load_module
return load_dynamic(name, filename, file)
File “/usr/lib/python3.5/imp.py”, line 342, in load_dynamic
return _load(spec)
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/install_sources#common_installation_problems
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
>>>
KeyboardInterrupt
این به cudnn شما داره اشکال میگیره که نمیتونه پیداش کنه. از cudnn چه نسخه ای دارید استفاده میکنید؟
سلام من تمامی مراحل به درستی نصب کردم
ولی وقتنی میخوام یه کدی رو با ten(gpu) و ten(cpu) اجرا میکنم و ازش time میگیرم در هر صورت سرعتشون یکی هست!!!
ولی قاعدتا باید gpu از cpu سرعتش بالاتر باشه!!!
لازم به ذکر هست که تنسورفلو (cpu) با virtualenv نصب کردم
و مسیر path به درستی وارد کردم.
مشخصات سیستم:
ubuntu 16.04
۷۴۰m 2GB
۳۸۴٫۱۳۰
cuda-9.0
cuDNN 7.3
سلام
کدتون چیه ؟
سلام
یک سوال ما برای داشتن کتابخانه تنسورفلو نیاز به نصب آناکوندا نداریم؟تنها باید پایتون نصب گردد؟؟
با تشکر
سلام.
بله نیازی به اناکوندا نیست ولی اگه داشته باشید تو برنامه نویسی پایتون خیلی کمکتون میکنه چون اکثر ماجول ها رو از قبل فراهم میکنه .
سلام
در فرآیند آموزش تصاویر train بروی لپ تاپ من خطای زیر ظاهر میشه البته مثلا اسپ ۳۷۷۸۵ را پشت سر گذاشته و ناگهان پیام خطا ظاهر میشه و انتظار فوق العاده بالا قرار میگیره و ادامه نمیده در ضمن نمودار وضعیت GPU هم از کار میافتده و مشخص است که فرآیند آموزش stop شده.
(ناگفته نماند اگر مجد فرمان آموزش را صادر کنم از اسپ ۳۵۷۸۵شروع میکنه و ادامه آموزش انجام میشه )همچنین لازم به توضیح است که من تنسرورفلو نسخه ۱٫۵ gpu استفاده میکنم و از مدل
Faster RCNN inception v2 استفاده کردم ، مشخصات GPU لپ تاپم هم : Geforce GTX 930 MX است اگر کسی تجربه داده لطفا راهنمایی کنه . با تشکر
نمای خطا:
INFO:tensorflow:global step 35785: loss = 0.0052 (1.213 sec/step)
INFO:tensorflow:global_step/sec: 0.791679
INFO:tensorflow:global_step/sec: 0
INFO:tensorflow:global_step/sec: 0
INFO:tensorflow:Saving checkpoint to path training/model.ckpt
INFO:tensorflow:Saving checkpoint to path training/model.ckpt
سلام چیزی که نمایش دادید خطا نیست! صرفا اطلاعات مرتبط با ترینینگ شماست
مجدد سلام
بله خطا نیست ولی فرآیند آموزش تصاویر متوقف میشه نمی دونم چرا !
با این حال اگر مجدد تابع یادگیری را صدا بزنم از همان مرحله ای که متوفق بوده مجدد ادامه میده .
ممکن است بخاطر بالا رفتن درجه حرارت GPU و هنگ کردنش باشه ؟
سلام. نمیدونم چک کردید اسکریپتتون اکی هست ؟ شاید ایپاک یا ایتریشن هاتون تمام میشن یا ممکنه شرطی که برای ادامه ترینینگ دارید نقض بشه و تمام بشه. اول اینو چک کنید مطمئن بشید اسکریپت یکدفعه تمام میشه (معمولا باید خطا بده) یا نه صرفا تمام میشه (میتونید یکسری پرینت یا لاگ بزارید ببینید کدومه)
میتونید دمای GPU رو لاگ کنید یا ببینید اگه در ویندوز باشید GPU-Z رو دانلود و نصب کنید میتونید اینو براحتی چک کنید. اگر در ابونتو هستید هم میتونید خیلی راحت در ترمینال با دستور
nvidia-smi –loop=1 مشخصات مربوط به دما و فضای اشغال شده و… کارت گرافیکتون رو ببینید. یا اینکه خروجیش رو تو فایل ذخیره کنید بعدا چک کنید.
با سلام
برای نصب tensorflow هر چند بر اساس روش اعلامی جلو می روم خطای نصب می دهد به نظر نیاز به VPN وجود دارد. اما وقتی از VPN هم استفادهم می کنم به نظر تشخیص داده می شود و امکان نصب وجود ندارد. پایتون نصب شده ۳٫۹ و ۶۴ بیتی است.
با تشکر
سلام. خطا چی میگیرید ؟
ممکنه کش شده باشه.
علاوه بر اون میتونید بصورت مستقیم whl رو از pypi.org دانلود کنید و فیلتر نیست یا تو google colab دانلود کنید و بعد از اونجا بیارید رو سیستم خودتون
البته Session اَتریبیوته، اشتباها ماژول نوشتم.
عه! مثل اینکه پیام اولم ارسال نشده بود! :))
به هرحال،
ضمن سلام و تشکر از مطالب خوبتون، می خواستم بپرسم که، با توجه به اینکه اتربیوته Session توی نسخه های جدید تنسرفلو نیست، پیشنهادتون برای کسایی که می خوان تنسرفلو رو روی سیتم خودشون داشته باشن چیه؟
نسخه های قدیمی نصب کنن؟
سوال دیگه اینکه، نسخه داکر تنسرفلو هم اومده، نظرتون راجب اون چیه، به نظرتون کار با اون راحت تر نیست؟
سلام.
من مدت خیلی زیادیه که دیگه با تنسورفلو کار نمیکنم. اما در هر صورت پیشنهاد میکنم همیشه از جدیدترین نسخه ها استفاده بشه
اگر در ابتدای کار هستید پایتورچ انتخاب بسیار بهتریه چون breaking change ها در بین نسخه های پایتورچ بسیار کمتر از تنسورفلو هست و همینطور شیوه ا نجام کار در اون مشخص تر و ساده تر هست.
به همین دلیل هم عموما آموزش هایی یکی دو سال پیش پایتورچ (وحتی بیشتر) رو بهتر از تنسورفلو میتونید استفاده کنید.
اگر این براتون مقدور نیست و آموزش های مناسب برای نسخه جدید تنسورفلو ندارید تنها در اون زمان میتونید از یک نسخه قدیمی تر (نه خیلی قدیمی، تا جایی ممکن نزدیک به نسخه جدید باشه ترجیحا) استفاده کنید که بتونید اون آموزش ها و… رو پیش ببرید.
مشخصا باید بعدش سویچ کنید و نمیتونید تو یک نسخه قدیمی که با گذشت زمان بیشتر با مشکل روبرو میشید ادامه بدید پس در هر حال بروز اوری اطلاعاتتون ضروریه و استفاده از یک نسخه نزدیکتر به نسخه جدید کمکتون میکنه تا نرخ تغییرات کمتری رو شاهد باشید.
برای تست همیشه گوگل کولب هست و میتونید از اون استفاده کنید.
برای سیستم خودتون هم اگه با نسخه جی پی یو مشکل دارید میتونید از نسخه سی پی یو استفاده کنید. میتونید از نسخه های دیگه هم بهره ببرید اگه گرافیک غیر انویدیا دارید (مثل Onnx, opencl, dml , tvmو …)
داکر کار رو راحت میکنه منتها برای کاربرهای عادی شاید ابتدا به امر سخت باشه. اگر مشکلی ندارید اون هم گزینه خیلی خوبیه.
ممنون از پاسخگویی تون،
من دارم روی پایان نامه م کار می کنم (fraud detectio). الان در مرحله پیاده سازی هستم، گفتین دیگه از تنسور فلو استفاده نمی کنین، دلیل خاصی داره؟ آیا کتابخانه های بهتری وجود داره به لحاظ کارکرد یا فقط انتخاب شخصیه و با کتابخانه دیگه ای راحت ترید
و اینکه توی سایت راجب LSTM نوشتین، پیاده سازیش رو روی سایت نذاشتین؟ من چیزی پیدا نکردم
سلام.
پایتورچ رو انتخاب کردم چون مهندسی نرم افزار بهتری داره و بسیار ساده تره و کدنویسی با اون بسیار لذت بخش تره. همینطور اکثر مقالات ارائه شده در کنفرانسهای معتبر پیاده سازی اولیه اشون طی چند سال اخیر پایتورچ بوده عموما و این کمک خیلی خوبیه.
از طرفی تنسورفلو یوزربیس بسیار بزرگتری داره و گستره زیادی از سخت افزارها رو پشتیبانی میکنه. انتخاب اون هم خیلی خوبه.
کلا تنسورفلو اوله و بعد پایتورچ در تصویر کلی اگر بخواییم ببینیم.
منتها من از سال ۲۰۱۸ بطور خاص فقط با پایتورچ کار میکنم و کاملا راضی هستم.
گرایش به سمت پایتورچ هر ساله در حال افزایشه بخاطر همون سادگی و راحتی کار. به هر حال خوبه خودتون یک نگاهی بندازید بعد با هرکدوم احساس بهتری داشتید یا کارتون رو احت تر میکنه ادامه بدید.
فکر میکنم در آموزش LSTM یک نمونه کد پیاده سازیش شده اش رو قرار دادم مثل RNN . همون پست رو ببینید لطفا.
ممنون از توضیحتون،
بله اتفاقا بعد از پیشنهاد شما، رفتم نمونه کد ها و آموزشهای مرتبط رو دیدم و به نظرم حق با شماست، خیلی کار باهاش راحت تره، از راهنماییتون سپاسگزارم.