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

اگر برنامه طراحی رایانه برای کامپیوترهای کوانتومی داشتیم چه؟

اگر برنامه طراحی رایانه برای کامپیوترهای کوانتومی داشتیم چه؟

یک دستگاه چهار کیوبیتی که روی Qiskit Metal

تجسم شده است شکی در این مورد وجود ندارد: ساخت کامپیوترهای کوانتومی سخت است و ما آرزو می کنیم که راحت تر باشد.

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

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

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

اگر می خواهیم روزی کامپیوترهای کوانتومی مقیاس و بالغ شدن به همان روشی که کامپیوترهای کلاسیک دارند ، ما باید در مورد ابزارهای اتوماسیون طراحی کوانتومی الکترونیکی (EDA) در نوع خود فکر کنیم. در همین حال ، در جامعه خودمان ، ما می خواهیم مانع نوآوری در دستگاه های کوانتومی را تسریع و کاهش دهیم. بنابراین تیم IBM Quantum شروع به فکر کردن در مورد EDA برای پردازنده کوانتومی می کند و امیدوار است که جامعه نیز در مورد آن فکر کند. امروز در کنفرانس هفته کوانتومی IEEE ، تیم درباره چشم انداز خود برای این پروژه در نوع خود بحث کرد. این پروژه به رهبری فیزیکدان کوانتومی زلاتکو مینف و توسعه با دیگر اعضای تیم IBM Quantum ، برای کسانی طراحی شده است که به طراحی سخت افزار کوانتومی علاقه دارند: مجموعه ای از ابزارهای اتوماسیون طراحی که می تواند برای طراحی و تجزیه و تحلیل دستگاه های ابررسانا با تمرکز بر توانایی استفاده شود. برای ادغام بهترین ابزارها در گردش کار طراح سخت افزار کوانتومی. ما پروژه را Qiskit Metal نامگذاری کردیم.

ما امیدواریم که به عنوان یک جامعه ، بتوانیم فرایند کمی سازی را انجام دهیم-فاصله بین قطعات یک فلز ابررسانا بر روی یک تراشه کوانتومی را با ریاضیات محاسباتی پر کنیم. از فضاهای همیلتونی و هیلبرت - در دسترس هر کسی با ذهن کنجکاو و لپ تاپ است. ما می خواهیم طراحی دستگاه های کوانتومی را به فرایندی ساده تبدیل کنیم که وظایف پر زحمت را همانند طراحی دستگاه های الکترونیکی معمولی به صورت خودکار انجام دهد. مادر حال نوشتن نرم افزاری با بهترین شیوه های داخلی و تکنیک های تجزیه و تحلیل کوانتومی پیشرفته هستند ، همه اینها در حالی که از قدرت ابزارهای متعارف EDA استفاده می کند. هدف از Qiskit Metal این است که امکان مدل سازی سخت افزاری کوانتومی آسان با کاهش خطاهای مربوط به طراحی و افزایش سرعت را فراهم می آورد. Minev ، Thomas McConkey و Jay Gambetta نتایج اولیه ای را به اشتراک می گذارند که نشان دهنده توافق سطح درصد بین تجزیه و تحلیل طراحی و سخت افزار آزمایشی است. این پروژه یک کار هیجان انگیز است که در مراحل اولیه توسعه خود در حال پیشرفت است و ممکن است به مدت طولانی "Qiskit Metal" باقی نماند. امیدواریم بتوانیم جامعه را تشویق کنیم تا در مورد اتوماسیون طراحی رایانه های کوانتومی فکر کند و از متخصصان در زمینه محاسبات کلاسیک برای کمک استفاده کند. بنابراین ، بسیار مهم است که ما این پروژه را منبع باز نگه داریم تا مهندسان در سراسر جهان بتوانند به حل این مشکل فوری کمک کنند.

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

Kornia الهام گرفته از OpenCV یک کتابخانه دید رایانه ای متمایز برای PyTorch

Kornia الهام گرفته از OpenCV یک کتابخانه دید رایانه ای متمایز برای PyTorch

< /img>

OpenCV محبوب ترین کتابخانه پردازش تصویر امروز است که همه چیز را از الگوریتم های پردازش تصویر کلاسیک گرفته تا مدل های از پیش آموزش پیشرفته عمیق پوشش می دهد. اما از آنجا که OpenCV قابل تمایز نیست ، عمدتا بر کارهای پیش پردازش تمرکز می کند و نمی تواند در یک فرایند آموزشی کامل گنجانده شود. این نقص ، ادگار ریبا ، محقق تحقیق OpenCV.org را بر آن داشت تا کتابخانه جدید بینایی رایانه ای متمایز ، "Kornia" را پیشنهاد کند که اکنون در GitHub منبع باز شده است.

با الهام از OpenCV ، Kornia بر اساس PyTorch و برای حل مشکلات بینایی رایانه عمومی طراحی شده است. این شامل مجموعه ای از روالها برای انجام تبدیل فضای رنگ و ماژول های متمایز برای انجام وظایفی مانند فیلتر کردن تصویر و تشخیص لبه است. کد اصلی Kornia می تواند شیب عملکردهای پیچیده را با تمایز خودکار حالت معکوس به طور موثر تعریف و محاسبه کند.

نحوه برخورد Kornia با پردازش تمایز

Kornia شامل بسته های زیرمجموعه ای است که دارای اپراتورهایی است که می توان آنها را در شبکه های عصبی قرار داد تا مدل ها را قادر به انجام وظایفی مانند تغییر تصویر ، هندسه دو قطبی و برآورد عمق کند.

اجزای اصلی کتابخانه Kornia

استفاده از Kornia آسان است ، و مستندات API و آموزش های آن در صفحه پروژه Kornia موجود است.

< /img>

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

یکی از مشارکت کنندگان اصلی Kornia ، Dmytro Mishkin از دانشکده مهندسی برق در دانشگاه فنی چک ، می گوید تیم تحقیق از بازخورد جامعه AI برای کمک به گسترش و استقبال می کند Kornia و فیلترهای مختلف ، هندسه و ویژگی های محلی آن را بهبود بخشید.

مقاله Kornia: یک کتابخانه چشم انداز رایانه ای متمایز منبع باز برای PyTorch در arXiv است.

نویسنده: Heri n ژائو | ویرایشگر: Michael Sarazen

ما می دانیم که شما نمی خواهید هیچ داستانی را از دست بدهید. برای دریافت به روزرسانی های هفتگی هوش مصنوعی ، در هفته نامه محبوب Synced Global AI ما مشترک شوید.

به مرور جامع گذشته ، حال و آینده توسعه تحقیقات مدرن هوش مصنوعی نیاز دارید؟ گزارش روندهای توسعه فناوری AI منتشر شد!

گزارش تطبیق پذیری هوش مصنوعی شرکت Fortune Global 500 2018 منتشر شد! یک گزارش فرمت Kindle در آمازون خریداری کنید. برای دریافت گزارش PDF کامل از Insight Partner درخواست دهید.

از قبل رایانه شخصی خود را به گربه خود بدهید

از قبل رایانه شخصی خود را به گربه خود بدهید

چند بار باید از آنها درخواست کنند؟

عکس: تابستان آن برتون >

اخیراً وقتی با مجموعه ای از توییت هایgisel_ysbryd روبرو شدم که در مورد راه حلی جدید خلاقانه خود برای مشکلی که ممکن است پیدا کنند توضیح می دهد خوشحال شدم. relatable: گربه ای که وقتی به سختی روی لپ تاپ خود کار می کنید به بیشترین نیاز را دارد. من یکی از این گربه ها را می شناختم - ایروین ، در تصویر بالا ، واقعی ترین همنشین روح من - که وسواسش برای نزدیک بودن به من ...

ایمن سازی دستگاه های تلفن همراه

ایمن سازی دستگاه های تلفن همراه

چگونه از رایج ترین رایانه ، تلفن خود محافظت کنید

اندروید خود را کمتر آسیب پذیر کنید و با بدافزارها آشنا شوید

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