ثبت نام
پکیج آموزش سی شارپ

پکیج آموزش سی شارپ مقدماتی

سرفصل‌های مقاله

ML.NET توانایی افزودن یادگیری ماشینی به برنامه های دات نت را، چه پکیج آموزش سی شارپ در حالت آنلاین یا آفلاین، ارائه می دهد. با استفاده از این قابلیت، می توانید پیش بینی های خودکار را با داده های موجود در برنامه خود انجام پکیج آموزش سی شارپ دهید. برنامه های کاربردی یادگیری ماشین از الگوهای موجود در داده ها پکیج آموزش سی شارپ برای پیش بینی به جای برنامه ریزی صریح استفاده می کنند.

پیشنهاد می کنیم به مشاهده مقاله زبان برنامه نویسی سی شارپ بپردازید.

 

پکیج آموزش سی شارپ

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

پیشنهاد می کنیم به مشاهده مقاله کاربرد زبان سی شارپ بپردازید.

داده های آموزشی را در یک شی IDataView جمع آوری و بارگذاری کنید.خط لوله ای از عملیات را برای پکیج آموزش سی شارپ استخراج ویژگی ها و اعمال الگوریتم یادگیری ماشین مشخص کنید یک مدل را با فراخوانی Fit() در خط لوله آموزش دهید مدل را ارزیابی کنید و برای بهبود آن تکرار کنید مدل را در قالب باینری برای استفاده در یک برنامه ذخیره کنید مدل را در یک شی ITransformer بارگذاری کنید با فراخوانی پیش بینی کنید.

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

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

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

قبل از اینکه بتوان از آن برای جستجوی پارامترهای مدل استفاده کرد، داده های خام باید آماده یا از پکیج آموزش سی شارپ قبل پردازش شوند. ممکن است لازم باشد داده ها از مقادیر رشته ای به یک نمایش عددی تبدیل شوند. ممکن است اطلاعات اضافی در داده های ورودی داشته باشید. شاید لازم باشد ابعاد داده های ورودی را کاهش یا گسترش دهید. داده ها ممکن است نیاز به نرمال سازی یا مقیاس بندی داشته باشند.آموزش‌های ML.NET اطلاعاتی درباره خطوط لوله پردازش داده‌های مختلف.

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

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

معماری ML.NET.در این قسمت به بررسی الگوهای معماری ML.NET می پردازیم. اگر یک توسعه پکیج آموزش سی شارپ دهنده باتجربه دات نت هستید، برخی از این الگوها برای شما آشنا هستند و برخی دیگر کمتر آشنا خواهند بود. در حالی که شیرجه می‌زنیم محکم نگه دارید!یک برنامه ML.NET با یک شی MLContext شروع می شود. این شی تک تن حاوی کاتالوگ است. کاتالوگ کارخانه ای برای بارگیری و ذخیره داده ها، تبدیل ها، مربیان و اجزای عملیات مدل است. هر شی کاتالوگ دارای روش هایی برای ایجاد انواع مختلف اجزاء است:

فراخوانی Fit() از داده های آموزشی ورودی برای محاسبه پارامترهای مدل استفاده می کند. این به عنوان پکیج آموزش سی شارپ آموزش مدل شناخته می شود. به یاد داشته باشید که مدل رگرسیون خطی قبلی دو پارامتر مدل داشت: بایاس و وزن. پس از فراخوانی Fit() مقادیر پارامترها مشخص می شود. اکثر مدل ها پارامترهای بسیار بیشتری از این خواهند داشت.می توانید در مورد آموزش مدل در How to train the model بیشتر بدانید.شی مدل حاصل رابط ITransformer را پیاده سازی می کند. یعنی مدل داده های ورودی را به پیش بینی تبدیل می کند.

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

برای اطلاعات بیشتر، به ساخت پیش بینی با یک مدل آموزش دیده مراجعه کنید.طرحواره ها و پکیج آموزش سی شارپ مدل های داده در هسته خط لوله یادگیری ماشین ML.NET، اشیاء DataView قرار دارند.هر تبدیل در خط لوله دارای یک طرح ورودی (نام، انواع و اندازه داده هایی است که تبدیل انتظار دارد در ورودی خود ببیند)، و همچنین یک طرح خروجی (نام، انواع و اندازه داده هایی که تبدیل پس از آن تولید می کند). برمی گرداند).)اگر طرح خروجی یک تبدیل در خط لوله با طرح ورودی تبدیل بعدی مطابقت نداشته باشد، ML.NET یک استثنا ایجاد می کند.

یک شیء مشاهده داده دارای ستون و ردیف است. هر ستون یک نام، یک نوع و یک طول دارد. به عنوان پکیج آموزش سی شارپ مثال، ستون های ورودی در مثال قیمت خانه اندازه و قیمت هستند. هر دو نوع و کمیت اسکالر هستند، نه بردار.مثال مشاهده داده ML.NET با داده های پیش بینی قیمت خانه همه الگوریتم های ML.NET به دنبال یک ستون ورودی هستند که بردار است. به طور پیش فرض، این ستون برداری Features نام دارد. به همین دلیل است که ما ستون Size را در یک ستون جدید به نام Features در مثال قیمت خانه خود ادغام کردیم.

پیشنهاد می کنیم به مشاهده مقاله مزایای زبان برنامه نویسی سی شارپ بپردازید.

همه الگوریتم‌ها پس از پیش‌بینی، ستون‌های جدیدی ایجاد می‌کنند. نام ثابت این ستون های جدید به پکیج آموزش سی شارپ نوع الگوریتم یادگیری ماشین بستگی دارد. برای کار رگرسیون، یکی از ستون های جدید Score نام دارد. به همین دلیل است که داده های قیمت خود را با این نام نسبت می دهیم.برای اطلاعات بیشتر در مورد ستون های خروجی وظایف مختلف یادگیری ماشین، به راهنمای وظایف یادگیری ماشین مراجعه کنید.یکی از ویژگی های مهم آبجکت های DataView این است که به صورت تنبلی ارزیابی می شوند.

نماهای داده فقط بارگذاری می شوند و در عملیات در طول آموزش مدل، ارزیابی و پیش آزمون استفاده پکیج آموزش سی شارپ می شوند.دیکشنری داده ها همانطور که برنامه ML.NET خود را می نویسید و آزمایش می کنید، می توانید با فراخوانی متد Preview از دیباگر ویژوال استودیو برای مشاهده هر شیء مشاهده داده استفاده کنید.می توانید متغیر اشکال زدایی را در دیباگر مشاهده کرده و محتوای آن را بررسی کنید. از روش پیش نمایش در کد تولید استفاده نکنید، زیرا به طور قابل توجهی عملکرد را کاهش می دهد.

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

استفاده از یک مدل از پیش آموزش دیده به شما امکان می دهد روند آموزش را کوتاه کنید.این نمونه یک پکیج آموزش سی شارپ برنامه کنسول دات نت Core ایجاد می کند که اشیاء درون یک تصویر را با استفاده از یک مدل یادگیری عمیق ONNX از قبل آموزش دیده کشف می کند. کد این نمونه را می توان در مخزن GitHub یافت.تشخیص شی چیست؟تشخیص اشیا یک مشکل بینایی کامپیوتری است. در حالی که تشخیص اشیا ارتباط نزدیکی با طبقه‌بندی تصویر دارد، طبقه‌بندی تصویر را در مقیاس دانه‌بندی‌تری انجام می‌دهد.

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

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

انواع مختلفی از شبکه های عصبی وجود دارد که رایج ترین آنها پرسپترون چند لایه (MLP)، شبکه پکیج آموزش سی شارپ عصبی کانولوشنال (CNN) و شبکه عصبی بازگشتی (RNN) است. اساسی ترین MLP است که مجموعه ای از ورودی ها را به مجموعه ای از خروجی ها نگاشت می کند. این شبکه عصبی زمانی مناسب است که داده دارای جزء مکانی یا زمانی نباشد. CNN از لایه های کانولوشن برای پردازش اطلاعات مکانی موجود در داده ها استفاده می کند.

یک مورد خوب برای CNN ها، پردازش تصویر برای تشخیص وجود یک ویژگی در ناحیه ای از تصویر پکیج آموزش سی شارپ است (به عنوان مثال، آیا در مرکز تصویر یک دماغه وجود دارد؟). در نهایت، RNN ها اجازه می دهند که ماندگاری حالت یا حافظه به عنوان ورودی استفاده شود. RNN ها برای تحلیل سری های زمانی استفاده می شوند، جایی که ترتیب متوالی و زمینه رویدادها مهم است.مدل را درک کنید تشخیص شی یک کار پردازش تصویر است. بنابراین، بیشتر مدل‌های یادگیری عمیق که برای حل این مشکل آموزش داده شده‌اند، CNN هستند.

مدل مورد استفاده در این آموزش Tiny YOLOv2 است، یک نسخه فشرده تر از مدل YOLOv2 که در مقاله پکیج آموزش سی شارپ توضیح داده شده است: “YOLO9000: Better, Faster, Stronger” توسط Redmon و فرهادی. Tiny YOLOv2 بر روی مجموعه داده پاسکال VOC آموزش دیده است و از 15 لایه تشکیل شده است که می تواند 20 کلاس مختلف از اشیا را پیش بینی کند. از آنجایی که Tiny YOLOv2 یک نسخه فشرده از مدل اصلی YOLOv2 است، سرعت را با دقت عوض می‌کنید.

خرید پکیج آموزش سی شارپ

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

در مورد Tiny YOLOv2، نام لایه ورودی تصویر است و انتظار تانسوری با ابعاد 3 x 416 x 416 را دارد. نام پکیج آموزش سی شارپ لایه خروجی a شبکه ای است و یک تانسور خروجی به ابعاد 125 x 13 x 13 تولید می کند.لایه ورودی به لایه های پنهان و سپس لایه خروجی تقسیم می شود مدل YOLO یک تصویر 3 (RGB) x 416px x 416px می گیرد. مدل این ورودی را می گیرد و از لایه های مختلف عبور می دهد تا خروجی تولید کند. نتیجه تصویر ورودی را به یک شبکه 13×13 تقسیم می‌کند که هر سلول شبکه شامل 125 مقدار است.

مدل ONNX چیست؟تبادل شبکه عصبی باز (ONNX) یک فرمت متن باز برای مدل های هوش پکیج آموزش سی شارپ مصنوعی است. ONNX از قابلیت همکاری بین چارچوب ها پشتیبانی می کند. این بدان معناست که شما می توانید یک مدل را در یکی از بسیاری از چارچوب های یادگیری ماشینی محبوب مانند PyTorch آموزش دهید، آن را به فرمت ONNX تبدیل کنید و مدل ONNX را در چارچوب دیگری مانند ML.NET مصرف کنید. برای اطلاعات بیشتر به وب سایت ONNX مراجعه کنید.

نمودار فرمت های ONNX پشتیبانی شده در حال استفاده.مدل Tiny YOLOv2 از پیش آموزش‌دیده پکیج آموزش سی شارپ در قالب ONNX ذخیره می‌شود، یک نمایش سریالی از لایه‌ها و الگوهای آموخته‌شده از آن لایه‌ها. در ML.NET، قابلیت همکاری با ONNX با بسته های ImageAnalytics و OnnxTransformer NuGet حاصل می شود. بسته ImageAnalytics شامل یک سری تبدیل است که یک تصویر را می گیرد و آن را به مقادیر عددی رمزگذاری می کند که می تواند به عنوان ورودی یک خط لوله آموزشی یا پیش بینی استفاده شود.

بسته OnnxTransformer از زمان اجرا ONNX برای بارگذاری یک مدل ONNX و استفاده از آن برای پکیج آموزش سی شارپ پیش بینی بر اساس ورودی ارائه شده استفاده می کند.جریان داده فایل ONNX در زمان اجرا ONNX.پیکربندی پروژه کنسول دات نت اکنون که درک کلی از چیستی ONNX و نحوه عملکرد Tiny YOLOv2 دارید، وقت آن است که برنامه خود را بسازید.یک برنامه کنسول ایجاد کنید یک برنامه کنسول C# به نام “ObjectDetection” ایجاد کنید. روی دکمه Next کلیک کنید.

دایرکتوری دارایی ها را در دایرکتوری پروژه ObjectDetection کپی کنید. این دایرکتوری و زیرشاخه های آن پکیج آموزش سی شارپ حاوی فایل های تصویری (به جز مدل Tiny YOLOv2 که در مرحله بعد دانلود و اضافه می کنید) مورد نیاز این آموزش است.مدل Tiny YOLOv2 را از ONNX Model Zoo دانلود کنید.فایل model.onnx را در دایرکتوری assets\Model پروژه ObjectDetection کپی کنید و نام آن را به TinyYolo2_model.onnx تغییر دهید. این دایرکتوری شامل مدل مورد نیاز برای این آموزش می باشد.

در Solution Explorer، روی هر یک از فایل های موجود در فهرست منابع و زیر شاخه ها کلیک پکیج آموزش سی شارپ راست کرده و Properties را انتخاب کنید. در قسمت Advanced، مقدار Copy to output directory را در صورت جدیدتر به Copy تغییر دهید.ایجاد کلاس ها و تعریف مسیرها فایل Program.cs را باز کنید و عبارات اضافی زیر را با استفاده از آن به بالای فایل اضافه کنید:سپس مسیرهای منابع مختلف را تعریف کنید.ابتدا متد GetAbsolutePath را در پایین فایل Program.cs ایجاد کنید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

14 + 5 =