مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامه‌نویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظه‌ای را شاهد بوده است.

اگر چه وی در آن زمان گفته بود: «من به هیچ وجه قصد ندارم زبانی بسازم که به طور گسترده مورد استفاده قرار بگیرد» ولی اکنون و با گذشت نزدیک به سه دهه از آن تاریخ، پایتون تقریباً تمام رقبای خود را کنار زده و به اندازه‌ای محبوبیت یافته که حتی افراد مبتدی نیز کدنویسی را با آن شروع می‌کنند.

در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کرده‌اند، حتی بیشتر از نام ستاره‌های تلویزیونی.

۲ مطلب با کلمه‌ی کلیدی «کتابخانه های پایتون در یادگیری عمیق» ثبت شده است

BOOK : Functional Python Programming, Second Edition - 2018

 

برای دانلود کتاب فوق بر روی لینک زیر کلیک نمایید. برای دانلود باید وارد کانال تلگرام به آدرس زیر شوید.

 

لینک دانلود کتاب در کانال تلگرام

نویسنده: Kimberly Cook

مترجم : آزاده رضازاده همدانی

لینک : منبع


امروزه یادگیری عمیق یکی از مطرح ترین و جذاب ترین زیر شاخه های یادگیری ماشین و هوش مصنوعی است که در زمینه هایی از جمله بینایی ماشین, پردازش صوت, اتومبیل های خودران و... کاربرد فراوانی دارد. در این مقاله مروری بر کتابخانه های پرکاربرد و محبوب پایتون در این حوزه خواهیم داشت که شامل معماری های متفاوت یادگیری عمیق از جمله شبکه های عصبی پیش رو, autoencoders, شبکه های عصبی بازگشتی RNNs و شبکه های عصبی کانولوشن CNNs  می باشند.

v     چرا تنها 5 کتابخانه؟

در پایتون کتابخانه های متعددی در زمینه یادگیری عمیق وجود دارد این در حالی است که شما برای یادگیری و کار در این زمینه تنها به تعداد انگشت شماری از این کتابخانه ها احتیاج دارید. پس بهتر است به جای خسته و اشباع کردن ذهن خود با انبوهی از اطلاعات , تنها با کتابخانه های مهم و پرکاربرد آشنا شوید.

v     آیا لزومی بر یادگیری کلیه کتابخانه های زیر است؟

مطمینا خیر! در واقع شما تنها با یادگیری یک یا دو کتابخانه از موارد ذکر شده قادر خواهید بود تا به هر آنچه مدنظر شما است در یادگیری عمیق دست یابید.

v     اسامی کتابخانه های مطرح پایتون در یادگیری عمیق به طور خلاصه به شرح زیر است:

1-     Theano : یک کتابخانه سطح پایین که تخصص اصلی آن انجام محاسبات بهینه و کارا می باشد و در صورتی که به انعطاف پذیری و سفارشی سازی جزیی تری نیاز داشته باشید, می توانید از این کتابخانه استفاده نمایید.

2-     TensorFlow  : یک کتابخانه سطح پایین دیگر که نسبت به Theano  از میزان اهمیت کمتری برخوردار می باشد. توسط شرکت google ارایه و پشتیبانی شده و از امکان پردازش توزیع شده برخوردار می باشد.

3-     Lasagne :  نسخه ای سبک از کتابخانه Theano است  که دشواری های آن را ندارد. به عبارتی گاهی انعطاف پذیری Theano برای شما مطلوب است اما لزومی به ایجاد لایه های شبکه عصبی از ابتدا نمیبینید, پس می توانید در چنین مواردی از این کتابخانه استفاده نمایید.

4-      Keras : نسخه کامل تری از دو کتابخانه Theano و Tensorflow  اما به صورت خلاصه تر, ماژولارتر و به شدت سریعتر ! این کتابخانه یکی از محبوب ترین کتابخانه های پایتون در یادگیری عمیق بوده و نقطه شروع مناسبی برای افراد تازه کار محسوب می شود.

5-     MXNet : کتابخانه سطح بالایی مشابه Keras است که کاربرد اصلی آن در الحاق زبان های متفاوت بود و همچنین از پردازش توزیع شده پشتیبانی می نماید.

در ادامه هر یک از کتابخانه ها بیشتر توضیح داده خواهند شد :

1-     Theano

این کتابخانه به دلیل میزان اهمیت و تاثیر بالا آن در ایجاد سایر کتابخانه های محبوب و موثر پایتون مثل Kerasو Lasagne در این مقاله لقب "مربی" را به خود اختصاص می دهد.  

هسته اصلی این کتابخانه از آرایه های چند بعدی تشکیل شده و کاربرد اصلی آن انجام عملیات ریاضی می باشد. از سرعت بالایی برخوردار بوده و با استفاده از GPU که 140 برابر سریعتر از CPU می باشد , بهینه شده است. به بیان دیگر این کتابخانه سنگ بنای شبکه عصبی بوده و اهمیت نقش آن مشابه کتابخانه Numpy در محاسبات علمی می باشد. اما از این کتابخانه به ندرت به طور مستقیم در کدنویسی استفاده می­شود بلکه معمولا از کتابخانه های سطح بالاتر بهره گرفته شده مگر در مواردی خاص که به تغییرات و سفارشی سازی های سطح پایین نیاز باشد. در لینک های زیر میتوانید اطلاعات بیشتری پیرامون این کتابخانه و مثال های متعددی از جمله تعریف تابع فعالسازی در Theano را کسب نمایید.

http://deeplearning.net/software/theano/index.html

http://www.marekrei.com/blog/theano-tutorial

2-     TensorFlow

اولین بار توسط تیم هوش مصنوعی Google ارایه شده و اخیرا به صورت متن باز در اختیار عموم قرار گرفته است. در این کتابخانه محاسبات عددی به کمک گرافهای جریان داده انجام می شود. اما لازم بذکر است کتابخانه Theano در مقایسه با این کتابخانه سریعتر بوده و از عملیات بیشتری پشتیبانی می نماید.

 از جمله مزایای این کتابخانه می توان : پشتیبانی شرکت قدرتمند گوگل و برخورداری از ویژگی محاسبات توزیع شده که امکان آموزش شبکه های عصبی را بر روی چندین GPU آسانتر می کند, نام برد. برای کسب اطلاعات بیشتر میتوانید به لینک های زیر مراجعه نمایید:

https://www.tensorflow.org

http://learningtensorflow.com

3-    Lasagne

این کتابخانه , نسخه سبک تری از کتابخانه Theano است که امکان ایجاد و آموزش شبکه های عصبی را با بهره گیری از امکانات Theano اما به طور آسانتر در اختیار میگذارد.هر چند که  دراینجا نیز هنوز شما باید لایه های شبکه عصبی را به طور دستی تعریف نمایید اما این کار, به مراتب آسانتر از کار با آرایه های چندبعدی محسوب می شود. پس میتوان گفت این کتابخانه , انعطاف پذیری Theano و سادگی Keras را دارا می باشد.

https://lasagne.readthedocs.io/en/latest

http://katbailey.github.io/post/neural-nets-in-python

 

4-     Keras

به 3 دلیل این کتابخانه یکی از کتابخانه های محبوب پایتون در یادگیری عمیق است :

·         این کتابخانه نسخه سبک تری از دو کتابخانه مطرح Theano و TensorFlow است که به راحتی و بر حسب نوع پروژه خود می توانید بین یکی از این دو سوییچ کنید.

·         خصوصیاتی از جمله : ماژولاریتی , خلاصه بودن, قابلیت توسعه , .. باعث شده است که کار با این کتابخانه آسان و لذت بخش باشد.

·         وجود شبکه های عصبی معمول و متعارف دراین کتابخانه که امکان اجرای آسان و سریع آنها  را فراهم آورده است. به طور مثال به آسانی می توان با استفاده از این کتابخانه, یک شبکه عصبی کانولوشن را ایجاد و اجرا نمود.

Keras کتابخانه ی سریع برای انجام آزمایشات می باشد اما در حال حاضر, این کتابخانه قادر به اجرا بر روی محیط­های دارای چندین GPU به منظور آموزش موازی شبکه نمی باشد, که این امر یک نقطه ضعف برای Keras محسوب می شود.

https://keras.io/

https://github.com/fastforwardlabs/keras-hello-world/blob/master/kerashelloworld.ipynb

 

5-     MXNet

این کتابخانه نیز مشابه keras یک کتابخانه سطح بالا محسوب شده و امکان الحاق 7 زبان متفاوت از جمله C++, ,R ,Python ,javascript Matlab  را فراهم می آورد و گزینه مناسبی برای کارهای گروهی محسوب میشود. هچنین مزیت مهم این کتابخانه , امکان آموزش شبکه به صورت توزیع شده و با استفاده از چندین GPU و CPU است.

اما لازم به ذکر است ایجاد شبکه عصبی در این کتابخانه در مقایسه با keras بدلیل کمبود منابع  آموزشی لازم , کاری بسیار دشوار و زمانبر است.

http://mxnet.io

https://indico.io/blog/getting-started-with-mxnet