رفتن به نوشته‌ها

برچسب: python

virtualenv چرا و چگونه ؟

برای ساخت یک محیط ایزوله و جدا برای پروژه ی در دست ساخت در زبان پایتون از virtualenv استفاده میکنیم. دلیل این امر عدم تاثیر پذیری پایتون و ماژولها و کتابخانه های نصب شده از تغییرات در سیستم و انتخاب نسخه مورد نظر ما برای پایتون و پکیج های آن است. بعنوان مثال مسیر نصب در pip یک مسیر مشخص است که هر کتابخانه و ماژول جدید در این مسیر نصب میشود و به مرور زمان با نصب کتابخانه‌های جدیدتر ممکن است بعضی پکیج ها دچار تغییراتی شوند که در کار توسعه پروژه فعلی ما ایجاد اختلال کنند. به همین منظور استفاده از محیط ایزوله برای جداسازی پایتون و ماژولهای مورد نیاز از مسیر سیستم کاملا معقول و لازم است . با استفاده از پکیج virtualenv میتوان یک محیط ایزوله برای این منظور ساخت :

sudo apt-get update
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
sudo apt install python3-pip
sudo pip3 instal virtualenv

بعد از نصب virtualenv در مسیر پروژه یک محیط ایزوله بصورت زیر میسازیم:

$cd new-project
virtualenv -p python3 env

در صورتیکه برروی سیستم خود نسخه های متفاوتی از پایتون نصب شده باشد، با استفاده از سوئیچ زیر میتوان نسخه متفاوتی از پایتون سیستم مادر را در virtualenv نصب کرد:

virtualenv -p python3 env --python="pythonx.y"

که pythonx.y پایتون نسخه x.y میباشد، مثلا پایتون نسخه ۳.۶ یا ۲.۷ یا …

در مسیر new-project در فولدر env یک پایتون جدید برپا میکند.برای فعال سازی پایتون جدید باید به مسیر زیر رفته و آن را فعال کنیم:

$cd env/bin
$source activate

بعد از این عمل اعلان ترمینال تغییر کرده و نام محیط ایزوله قبل از مسیر جاری قرار میگیرد:

ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ source activate
(env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$

برای اطمینان از نصب صحیح میتوانیم نسخه پایتون مورد استفاده را بدست بیاوریم :

$python --version
Python 3.7.5

$which python
/home/ali/Documents/ML/virtualEnv/env/bin/python3

بعد از نوشتن کد مورد نظر و اتمام کار با استفاده از دستور deactivate از محیط virtual environment خارج میشویم .اعلان (env) نیز پاک خواهد شد:

ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ source activate
(env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ which python3
/home/ali/Documents/ML/virtualEnv/env/bin/python3
(env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ deactivate 
ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ which python3
/usr/bin/python3

خارج شدن از نظر

پایتون برای Machine Learning

به دلایل کاری باید از کتابخانه TensorFlow برای توسعه یک سیستم شناسایی تصویر استفاده کنم، سعی میکنم تجربیاتم در این زمینه و مطالب آموزشی درباره پردازش تصویر و Machine Learning رو هم مطالب قبلی درباره تجربیات شخصی استفاده از لینوکس اضافه کنم . البته هنوز از پلاتفرم لینوکس استفاده خواهم کرد و متاسفانه بدلیل به روز بودن آرچ لینوکس و نسخه پایتون ۳٫۸ در این توزیع، کتابخانه های ML قابل راه اندازی و استفاده نیستند . (در حال حاضر = نوروز ۱۳۹۹) از یک توزیع لوبونتو استفاده میکنم که بسیار سبک هست و با سیستم قدیمی من سازگارتره.

خب بهتره درباره پایتون صحبت کنم ، قصد دارم کتابخانه های مورد استفاده در پروژه ام رو معرفی کنم . احتمالا در آینده این لیست تغییر خواهد کرد و مواردی اضافه خواهند شد:

کتابخانه numpy:

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

کتابخانه PIL:

کتابخانه Python Image Library که به اختصار PIL گفته میشود، یک کتابخانه جهت باز کردن انواع تصاویر و دستکاری و ذخیره سازی آنها میباشد.

کتابخانه matplotlib:

کتابخانه matplotlib برای نمایش تصاویر ،گراف ها × نمودار ها و …. بکار میرود.

کتابخانه glob:

ماژول glob تمام فایل های با فورمت مورد نظر مارا لیست میکند. مثلا :

>>> import glob
>>> glob.glob('/home/user', '*')

تمام فایلهای مسیر home/user/ را برمیگرداند.

کتابخانه TensorFlow:

کتابخانه TensorFlow برای انجام محاسبات یادگیری ماشین کارامد توسعه یافته است.این کتابخانه قابلیت استفاده از GPU به جای CPU برای بهبود کارایی خود را داراست .

خارج شدن از نظر