جستجو برای:
  • صفحه نخست
    • صفحه اصلی اول
    • صفحه اصلی دوم
    • صفحه اصلی سوم
    • صفحه اصلی چهارم
  • دوره ها
    • حساب کاربری من
    • سبد خرید
    • پرداخت
  • مطالب آموزشی
    • یادگیری ماشین
      • کلاس بندی
      • خوشه بندی
      • رگرسیون
      • یادگیری تقویتی
    • دانشجویان کارشناسی
      • مفاهیم اولیه
      • الگوریتم های تکاملی
      • الگوریتم های جستجو
      • عامل های منطقی
    • سایر مباحث
      • داده کاوی
      • کلان داده
      • یادگیری عمیق
      • پردازش تصویر
    • ابزارها
      • پایتون
      • R
      • وکا
      • کلمنتاین
  • بلاگ
 
  • 09127449140
  • viraai.ackademy@gmail.com
  • بلاگ
  • تماس با ما
  • درباره ما
آکادمی هوش مصنوعی ویرا
  • صفحه نخست
    • صفحه اصلی اول
    • صفحه اصلی دوم
    • صفحه اصلی سوم
    • صفحه اصلی چهارم
  • دوره ها
    • حساب کاربری من
    • سبد خرید
    • پرداخت
  • مطالب آموزشی
    • یادگیری ماشین
      • کلاس بندی
      • خوشه بندی
      • رگرسیون
      • یادگیری تقویتی
    • دانشجویان کارشناسی
      • مفاهیم اولیه
      • الگوریتم های تکاملی
      • الگوریتم های جستجو
      • عامل های منطقی
    • سایر مباحث
      • داده کاوی
      • کلان داده
      • یادگیری عمیق
      • پردازش تصویر
    • ابزارها
      • پایتون
      • R
      • وکا
      • کلمنتاین
  • بلاگ
0

ورود و ثبت نام

وبلاگ

آکادمی هوش مصنوعی ویرابلاگابزارهاپایتونآموزش Pytorch (قسمت اول)

آموزش Pytorch (قسمت اول)

25 شهریور 1400
ارسال شده توسط فتحی
پایتون ، یادگیری عمیق
3.02k بازدید
آموزش pytorch

کتابخانه Pytorch برای یادگیری عمیق

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

با در نظر گرفتن تمام جوانب مثبت شناخت و یادگیری PyTorch، ما این مقاله آموزشی را درباره یادگیری عمیق با PyTorch آماده کرده ایم که سرفصل های آن را می توانید در ادامه مشاهده کنید :

فهرست مطالب

  • PyTorch چیست؟
  • یادگیری عمیق با PyTorch ، یک حرکت برق آسا
  • چرا باید PyTorch را یاد بگیرم؟
  • مروری بر کتابخانه PyTorch

1- بارگذاری و مدیریت داده ها

۲- ساخت شبکه عصبی

۳- استنباط و سازگاری مدل

  • معرفی تنسورها
  • اولین تنسور خود را بسازید
  • دسترسی به یک عنصر در تنسور
  • تشیخص نوع داده از عناصر
  • تنسور به / از آرایه NumPy
  • عملیات حسابی روی تنسورها
  • تنسور CPU و GPU

PyTorch چیست؟

PyTorch یک کتابخانه مبتنی بر پایتون است که ساخت مدل های یادگیری عمیق و استفاده از آن ها در برنامه های مختلف را تسهیل می کند. اما در واقع ، چیزی فراتر از یک کتابخانه یادگیری عمیق است. PyTorch یک بسته محاسباتی علمی است (همانطور که در اسناد رسمی PyTorch آمده است).

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

  1. جایگزینی برای NumPy به منظور استفاده از توان پردازنده های گرافیکی ( GPU )
  2. یک پلتفرم تحقیقات یادگیری عمیق که حداکثر انعطاف پذیری و سرعت را ارائه می دهد

یادگیری عمیق با PyTorch، یک حرکت برق آسا

PyTorch از تنسور ( Tensor ) به عنوان ساختار داده اصلی خود ، مشابه آرایه Numpy استفاده می کند. ممکن است در مورد این انتخاب خاص از ساختار داده ، تعجب کنید. پاسخ آن در این واقعیت نهفته است که با نرم افزار و سخت افزار مناسب ، تنسورها به عملیات مختلف ریاضی سرعت می بخشند. این عملیات هنگامی که با اعداد بزرگ برای یادگیری عمیق انجام شود ، تفاوت زیادی در سرعت ایجاد می کند.

PyTorch ، مشابه Python ، روی سهولت استفاده متمرکز است و این امکان را برای کاربران با دانش برنامه ریزی بسیار سطحی و مبتدی هم فراهم می کند تا از یادگیری عمیق در پروژه های خود استفاده کنند. همچنین اگر از قبل، هیچ کتابخانه یادگیری عمیقی را یاد نگرفته اید ، می توانید از پایتورچ به عنوان ” اولین کتابخانه یادگیری عمیق ” استفاده کنید.

چرا باید PyTorch را یاد بگیرم؟

در بخش قبلی ، ذکر کردیم که PyTorch بهترین گزینه برای اولین کتابخانه یادگیری عمیق است که باید یاد بگیرید. در این بخش ، توضیح خواهیم داد که چرا اینچنین است. هیچ کم و کاستی در کتابخانه های یادگیری عمیق وجود ندارد :  Keras ، Tensorflow  ،  Caffe و Theano (منسوخ شده)  و بسیاری موارد دیگر. اما چه چیزی PyTorch را متفاوت می کند؟

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

PyTorch در تمام این معیارهای ذکر شده در بالا عملکرد بسیار خوبی دارد. سبک کدنویسی ” pythonic ” ، یادگیری و استفاده از آن را تسهیل می کند. سرعت GPU ، پشتیبانی از محاسبه توزیع شده و محاسبه خودکار گرادیان ، به انجام خودکار بازگشت به عقب کمک می کند.

البته ، به خاطر پایتون ، با خطر کند بودن زمان اجرا مواجه هستیم اما API  با عملکرد بالا C ++  (libtorch) آن را از بین می برد. این امر باعث می شود انتقال از تحقیق و توسعه به تولید ، بسیار روان باشد که این دلیل دیگری است برای استفاده از PyTorch !

بیایید نتایج جالب توجهی را که می توان با استفاده از یک برنامه PyTorch بدست آورد بررسی کنیم.

کاربرد PyTorch

کاربرد-PyTorch

مروری بر کتابخانه PyTorch

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

نحوه کار PyTorch

گردش کار اصلی PyTorch

ماژول های مهم PyTorch که ما در اینجا به طور خلاصه در مورد آن ها بحث خواهیم کرد عبارتند از: torch.nn  ، torch.optim ، torch.utils و torch.autograd

۱- بارگذاری و مدیریت داده ها

اولین قدم در هر پروژه یادگیری عمیق، بارگذاری و مدیریت داده هاست. PyTorch برای این کار، ابزارهایی را از طریق torch.utils.data در اختیار کاربر قرار می دهد.

دو کلاس مهم در این ماژول Dataset و DataLoader هستند.

  • Dataset از روی نوع داده Tensor ساخته شده است و در درجه اول برای مجموعه داده های سفارشی استفاده می شود.
  • DataLoader زمانی مورد استفاده قرار می‌گیرد که یک مجموعه داده بزرگ داشته باشید و بخواهید داده ها را از یک مجموعه داده در پس زمینه بارگذاری کنید تا آماده و منتظر حلقه آموزش باشد.

اگر به چندین ماشین یا GPU دسترسی داشته باشیم، می توانیم از torch.nn.DataParallel و torch.distributed استفاده کنیم.

۲- ساخت شبکه عصبی

از ماژول torch.nn برای ایجاد شبکه های عصبی استفاده می شود، که همه لایه های متداول شبکه عصبی ، مانند لایه های کاملاً متصل ، لایه های کانولوشن ، توابع فعالسازی و هزینه و غیره را فراهم می کند.

وقتی معماری شبکه ایجاد شد و داده ها برای تغذیه شبکه آماده شدند ، ما به تکنیک هایی برای به روزرسانی وزن ها و بایاس ها نیاز داریم تا شبکه شروع به یادگیری کند. این برنامه ها در ماژول torch.optim ارائه می شوند. به همین ترتیب ، برای مشتق گیری خودکار که در هنگام بازگشت به عقب لازم است ، ما از ماژول torch.autograd استفاده می کنیم.

۳- استنباط و سازگاری مدل

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

PyTorch همچنین TorchScript را ارائه می دهد که می تواند برای اجرای مدل ها ، مستقل از زمان اجرای پایتون مورد استفاده قرار گیرد. این را می توان به عنوان یک ماشین مجازی تصور کرد که دارای دستورالعمل های عمدتاً مختص تنسورها است.

همچنین می توانید مدل آموزش دیده با استفاده از PyTorch را به فرمت هایی مانند ONNX تبدیل کنید ، که به شما امکان می دهد از این مدل ها در سایر چارچوب های یادگیری عمیق مانند MXNet  ، CNTK ، Caffe2 نیز استفاده کنید. همچنین می توانید مدل های onnx را به Tensorflow تبدیل کنید.

معرفی تنسورها

تاکنون در این آموزش ، در مورد اینکه چرا شما باید PyTorch را یاد بگیرید بحث کردیم و اکنون زمان شروع کار است. ما این کار را با تنسور ها (Tensors) آغاز خواهیم کرد ، یعنی ساختار اصلی داده مورد استفاده در  PyTorch .

در واقع، تنسور یک نام فانتزی است که به ماتریس ها اختصاص داده می شود. اگر با آرایه های NumPy آشنا باشید ، درک و استفاده از تنسور های PyTorch بسیار آسان خواهد بود. یک مقدار اسکالر با یک تنسور صفر بُعدی نشان داده می شود. به طور مشابه ، سطر یا ستون یک ماتریس با استفاده از یک تنسور یک بُعدی نشان داده می شود و به همین ترتیب الی آخر. در زیر چند نمونه از تنسور با ابعاد مختلف برای تجسم و درک آن ها نشان داده شده است.

تنسور ها در PyTorch

ابعاد تنسورها در PyTorch

 

قبل از اینکه با معرفی تنسورها شروع کنیم ، بیایید PyTorch 1.1.0 را با اجرای دستور زیر نصب کنیم.

conda install -c pytorch pytorch-cpu

تمام شد ، شما هم اکنون PyهاTorch را برای استفاده آماده کرده اید! حالا بیایید شروع کنیم. ما به شما پیشنهاد می کنیم از Google Colab استفاده کنید. نوع زمان اجرا GPU را از فهرست انتخاب کنید.

در قسمت بعد با ما همراه باشید.

اشتراک گذاری:
برچسب ها: آموزش پایتورچآموزش کتابخانه pytorchآموزش_پایتونایجاد مدل های یادگیری عمیق با پایتورچپایتورچ چیست؟شبکه عصبیمقایسه پایتورچ و تنسورفلوهوش مصنوعییادگیری عمیق
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!

مطالب زیر را حتما مطالعه کنید

درک منحنی AUC – ROC

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

تشخیص جنسیت و سن افراد با کتابخانه OpenCV

در این مطلب با کمک پایتون و کتابخانه  OpenCV به دنبال ارائه روشی برای تشخیص...

ذخیره و بارگذاری مدل در پایتون

ذخیره و بارگذاری مدل‌ها در یادگیری عمیق یک اصل مهم است با توجه به این...

ذخیره و بارگذاری مدل در پایتورچ

در این بخش انواع روش های مورد استفاده، جهت ذخیره و بارگذاری مدل های PyTorch...
شبکه های عصبی

محل بررسی مدل های شبکه عصبی

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

آموزش هرس در کتابخانه های Pytorch و Tensorflow

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

4 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • بازتاب: آموزش Pytorch (قسمت دوم) - آکادمی هوش مصنوعی ویرا
  • بازتاب: آموزش Pytorch (قسمت سوم) - آکادمی هوش مصنوعی ویرا
  • بازتاب: ذخیره و بارگیری مدل در پایتورچ - آکادمی هوش مصنوعی ویرا
  • بازتاب: ذخیره و بارگذاری مدل در پایتورچ - یادگیری عمیق - آکادمی هوش مصنوعی ویرا

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • ابزارها
  • الگوریتم های تکاملی
  • الگوریتم های جستجو
  • پایتون
  • پردازش تصویر
  • پردازش صوت
  • خوشه بندی
  • داده کاوی
  • دانشجویان کارشناسی
  • دسته‌بندی نشده
  • رگرسیون
  • سایر مباحث
  • سیستم های خبره
  • عامل های منطقی
  • علم داده
  • کلاس بندی
  • کلان داده
  • مطالب آموزشی
  • مفاهیم اولیه
  • مقالات
  • منطق فازی
  • ویدئو
  • یادگیری تقویتی
  • یادگیری عمیق
  • یادگیری ماشین
نوشته‌های تازه
  • منحنی AUC-ROC در یادگیری ماشین
  • درک منحنی AUC – ROC
  • چرحه حیات یادگیری ماشین
  • تشخیص جنسیت و سن افراد با کتابخانه OpenCV
  • تاثیر هایپرپارامترها در مدل یادگیری عمیق
درباره آکادمی ویرا

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

  • تهران، یوسف آباد، خ چهلم ، پلاک 17
  • 09127449140
  • viraai.ackademy@gmail.com
فهرست سفارشی
  • صفحه اصلی اول
  • بلاگ
  • تماس با ما
  • حساب کاربری من
  • درباره ما
  • سبد خرید
  • فروشگاه

تمامی حقوق برای سایت آکادمی ویرا محفوظ می باشد.

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت