درس چهارم: آشنایی با چارچوب یادگیری عمیق پای تورچ

مقدمه

پایتورچ (PyTorch) یک کتابخانه یادگیری عمیق متن‌باز است که در اکتبر 2016 نسخه اولیه آن توسط فیسبوک منتشر شد. پایتورچ فیسبوک رفته‌رفته پیشرفت کرد و توجه بسیاری از محققان حوزه هوش مصنوعی را به خود جلب کرد. دلیل این جلب توجه، سادگی، راحتی و پایتونی بودن پایتورچ بود. امروزه، شرکت‌های بزرگی همچون مایکروسافت، OpenAI، تسلا و اوبر اعلام کرده‌اند که تحقیقات خود را با پایتورچ پیش خواهند برد. چند سال قبل کتابخانه‌های یادگیری عمیق بسیاری وجود داشت و موجب سردرگمی افراد فعال درحوزه هوش مصنوعی شده بود. اما، امروز پایتورچ و تنسورفلو به دو کتابخانه اصلی و مناسب در حوزه یادگیری عمیق تبدیل شده‌اند. درحال حاضر، پایتورچ نسخه 1.5 منتشر شده است. پایتورچ در حوزه کامپیوتر ویژن، پردازش زبان، پردازش صوت مجموعه دستورات اختصاصی بی‌نظیری را آماده کرده است که کار را برای همه افراد فعال در هوش مصنوعی آسان می‌کند. پس مهم نیست در چه شاخه‌ای از هوش مصنوعی کار می‌کنید، پایتورچ به فکر شما هم هست!

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

دلیل استفاده از PyTorch

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

ماژول nn در کتابخانه ی PyTorch

با استفاده از این ماژول شما می توانید شبکه های عصبی بسازید همچنین برای این که بتواند مدل ها و یا مشتق گیری ها را انجام دهد باید به autograd توجه نماید زیرا این کار به آن بستگی دارد که شبکه ی عصبی دارای یک سری پارامتر هایی می باشد تا آن ها ازجاع داده شود که شامل:

  • مجموعه ی داده هایی که از ورودی تکرار می شوند.
  • ورودی هایی که از طریق شبکع پردازش می شوند.
  • نتایجی که پیش بینی شده است با مقدار های واقعی و خطا ها مقایسه خواهد شد.
  • با استفاده از قاعده ی ب روز شدع وزن شبکه به روز رسانی خواهد شد.

بسته های Optim در PyTorch

برای یک بسته ی بهینه ساز تعریف می شوند که با استفاده از آن می توان وزن ها را به روز رسانی نمایند همچنین یا استفاده از آن می توانید الگوریتم های بهینه ساز را ایجاد نماید که بهترین آن در زمیکنه ساخت بهینه ساز adam می باشد که در بین دیگر الگوریتم ها محبوب واقع شده است.

تفاوت TensorFlow و PyTorch

هر دوی آن ها در زمینه ی ساخت شبکه عصبی کاربرد دارند که هر کدام شامل ویژگی های خاص خود می باشند که این سوال پیش می آید کدامیک از این ها می تواند کاربرد بیشتری داشته و بتواند بهتر به نیاز هایمان پاسخ داده و آن ها را حل نماید.

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

  • شما با استفاده از آن کتابخانه ی مورد نیازتان را وارد نمایید.
  • داده ها را پردازش و بارگذاری نمایید.
  • مدل ها را تعریف کنید.
  • مدل ها را آموزش دهید.
  • و همچنین مدل ها را ارزیابی نمایید.

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

تحقیق یا تولید

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

هنوز هم تنسورفلو بیشتر از پاری تورچ محبوبیت دارد اما این امار در حال کم شدن می باشد اما بطور کل در بسیاری از مقالات و کنفرانس ها پای تورچ از تنسورفلو پیشی گرفته است.

جمع بندی

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

 

اسکرول به بالا