FastAi و Render: روش سریع و آسان برای ایجاد و استقرار مدلهای بینایی رایانه

FastAi و Render: روش سریع و آسان برای ایجاد و استقرار مدلهای بینایی رایانه

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

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

FastAi چیست؟

FastAi یک کتابخانه منبع باز جدید برای یادگیری عمیق است. این کتابخانه در بالای PyTorch ساخته شده است و یک API واحد برای مهمترین برنامه های کاربردی و انواع داده های یادگیری عمیق ارائه می دهد.

کتابخانه FastAi آموزش شبکه های عصبی سریع و دقیق را با استفاده از بهترین شیوه های مدرن ساده می کند. این بر اساس تحقیقات در مورد بهترین شیوه های یادگیری عمیق انجام شده در fast.ai ، از جمله پشتیبانی "خارج از جعبه" برای بینایی ، متن ، جدول و همکاری (فیلترینگ مشارکتی) است.

بیایید یک مدل چشم انداز کامپیوتری ایجاد کنیم با استفاده از FastAi

از روش آسان ایجاد و استقرار مدل های بینایی رایانه با FastAi شگفت زده خواهید شد. من یک مدل بینایی کامپیوتری برای تشخیص بیماریها در محصولات گیاهی ایجاد خواهم کرد. این برنامه 38 کلاس مختلف را تشخیص می دهد. من قبلاً در این پروژه با PyTorch کار کردم و از مجموعه داده PlantVillage استفاده کردم.

رفع عکاسی - سرمایه گذار داده محور نظرات تام زیبرف قبل از اینکه به عکاسی بپردازد ، موسیقی را در دانشگاه کالیفرنیای جنوبی مطالعه کرد. به عنوان… www.datadriveninvestor.com

بیایید با وارد کردن کتابخانه ها ، به ویژه ماژول بینایی ، شروع کنیم. ماژول بینایی شامل همه چیزهایی است که برای تعریف مجموعه داده و آموزش مدل بینایی کامپیوتری نیاز داریم. همچنین شامل همه زیرمجموعه های مختلف برای انجام آموزش است: بینایی. image برای تعریف شیء Image برای اعمال تغییرات ، vision.transforms که شامل تغییرات برای افزایش داده ها ، vision.data ، که شامل تعریف ImageDataBunch برای ساختن DataBunch ، و vision.learner برای ساختن و تنظیم دقیق مدل ها با یک برنامه از پیش آماده شده است شبکه های عصبی کانولوشن یا یک مدل اولیه شده تصادفی را از ابتدا آموزش دهید.

 از fastai import *
از واردات fastai.vision *
from pathlib import Path 

بیایید یک DataBunch از یک پوشه تصویر ایجاد کنیم (مجموعه داده های معتبر و قطار). اندازه دسته 32 و اندازه تصویر 224 را تعریف کنید:

 data = ImageDataBunch.from_folder (path = Path ('PlantVillage/'). resolution ()، train = 'train'، valid = 'val'، dl_tfms = get_transforms () ، num_workers = 0 ، bs = 32 ، size = 224). عادی سازی (imagenet_stats) 

تجسم برخی از داده ها:

 data.show_batch (سطرها = 3 ، figsize = (5،5)) 

در حال حاضر ، بیایید یک شیء Learner به نام learn_50 برای آموزش شبکه عصبی کانولوشن (با cnn_learner) ایجاد کنیم. من ResNet 50 مدل از پیش آماده شده را بارگذاری کردم و 3 دوره را اجرا کردم. پس از هر دوره ، همه معیارها چاپ می شوند: learn_50.fit_one_cycle (3)

به آن نگاه کنید دقت فقط در 3 دوره!

بیایید تربیت و ضررهای اعتبارسنجی را ترسیم کنیم:

اصلا بد نیست ، درست است؟

بیایید مدل را برای نتیجه گیری ذخیره کنیم:

 learn_50.export ('perwer_model50.pkl') 

پس از ذخیره مدل ، از Google Drive برای بارگذاری فایل و دریافت پیوند قابل اشتراک گذاری که برای Render نیاز دارم ، سرویس ابری که برای استقرار مدل بینایی رایانه خود استفاده خواهیم کرد ، استفاده کردم.

< h1> Render: ارائه دهنده ابری جدید که استقرار برنامه های وب در حال تولید را بی اهمیت می کند

وقتی در مورد Render شنیدم ، راهی عالی برای استقرار مدل های بینایی رایانه خود یافتم. Render یک پلت فرم متحد برای ایجاد و میزبانی همه استبرنامه ها و وب سایت های شما ، با SSL رایگان ، CDN جهانی ، و استقرار خودکار از GitHub. تنها چیزی که نیاز دارید یک حساب جدید در Render ، پروژه شما در GitHub و بارگذاری مدل خود در یک سرویس ابری است.

بیایید شروع کنیم:

ایجاد یک حساب کاربری در Render

< p> من قبلاً یک حساب ایجاد کرده و برخی از برنامه های وب را که می توانید در داشبورد من مشاهده کنید ، به کار گرفتم:

اولین کاری که باید بعد از ایجاد حساب انجام دهید ، کلیک روی سرویس وب جدید است:

< img src = "https://cdn-images-1.medium.com/max/426/1*vlTKlhfuhRKo1QtuKmu1RQ.png">

چیزی که در مورد Render دوست داشتم این است که می توانید از GitHub Repos خود انتخاب کنید به فقط باید حساب GitHub خود را با Render همگام سازی کنید.

این ساختار اساسی برای استقرار مدل ما در Render است:

می توانید این رپو را در اینجا فورک کنید:

render-example/fastai-v3 برنامه Starter برای استقرار مدل fastai v3 در Render-render-example/fastai-v3github.com

تنها کاری که باید انجام دهید این است که فایل server.py را تغییر دهید و خطوط بعدی را تغییر دهید:

# تغییر export_file_url. من از پیوند Google Drive استفاده کردم: 
 export_file_url = 'https://drive.google.com/uc؟export=download&id=1C8Sj6KCLvajZPyqAg2z5fLDKuulePiCS' 
#نام مدل را بنویسید:
export_file_name = 'export3.pkl' 
#همه کلاسها را بنویسید:
                                              
class = ['Apple___Apple_scab'، 'Apple___Black_rot'، 'Apple___Cedar_apple_rust'، 'Apple___healthy'، 'Blueberry___healthy'، 'Cherry_ (including_sour) ___ Powdery_mildew'، 'Cherry_ (corn_ofour)، sp_ (ذرت) __ Common_rust '،' Corn_ (ذرت) ___ Northern_Leaf_Leaf_Blight '،' Corn_ (ذرت) ___ سالم ، انگور ___سیاه سیاه '،' انگور ___ Esca_ (Black_Masles) '،' انگور ___ Leaf_blight_ (Isariopsis_Boto ' ، 'هلو___ سالم' ، 'فلفل ، _bell___Bacterial_spot' ، 'Pepper، _bell ___ سالم' ، 'سیب زمینی__ زودهنگام' ، 'سیب زمینی__بعد_آب' ، 'سیب زمینی__سالم' ، 'تمشک___مناسب' ، 'سویا' انگور_چرب_خاصی گوجه فرنگی___Bacterial_spot '،' Tomato___Early_blight '،' Tomato___Late_blight '،' Tomato___Leaf_Mold '،' Tomato___Septoria_leaf_spot '،' Tomato___Spider_mites Two spotted_spider_ober_mite__ '، et_Spot '،' Tomato___Tomato_Yellow_Leaf_Curl_Virus '،' Tomato___Tomato_mosaic_virus '،' Tomato___healthy '] 

پس از انتخاب Repo ، وب سرویس را نامگذاری کرده و ادامه می دهید:

شما این صفحه سیاه را مشاهده می کند که برای استقرار سرویس وب ضروری است:

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

نکته دیگری که من از Render دوست دارم این است که ، هر بار که چیزی را در GitHub Repo خود به روز می کنید ، سرویس وب نیز به روز می شود. در اینجا می توانید همه تغییرات انجام شده در پروژه خود را مشاهده کنید:

می توانید از طریق این پیوند به برنامه من دسترسی داشته باشید:

https://plant-diseases-detector.onrender.com

سعی کنید خودتان یک مدل بسازید و استقرار دهید!

مراجع

مراحل استفاده از Render برای استقرار مدلها در برنامه های وب

استقرار در Render | دوره fast.ai v3 اگر فقط می خواهید استقرار اولیه را آزمایش کنیداولین روزهای پروژه هایی که مطمئن هستم ... www.fast.ai

برنامه استارت برای استقرار مدل fastai v3 در Render https://render.com

render-example/fastai-v3 برنامه استارت برای استقرار مدل fastai v3 در Render-render-example/fastai-v3github.com