پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب به همراه داکیومنت
در این پست پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب همراه به داکیومنت را آماده ایم که کدهای آن خط به خط توضیح داده شده است. در ادامه مطلب می توانید تصاویر و فیلمی از خروجی مختلف این پروژه را مشاهده نمائید. همچنین تکه کدی از این پروژه با توضیحات در ادامه قرار داده شده است.
هدف از این پروژه طبقه بندی رنگ های RGB می باشد، یعنی شبکه عصبی ای طراحی کرده ایم که می تواند طیف رنگی نور را تشکیل دهد. طیف رنگی نور ، همان وزن های شبکه SOM می باشد. در اینجا فرض شده است که طیف رنگی 256 رنگ است، پس می توانیم با یک ماتریس 16*16 این طیف را نمایش دهیم.
مدل رنگی RGB در این پروژه به صورت تصادفی می باشد. بدین صورت که بعد از اجرا های بیشتر، خروجی های متفاوتی را مشاهده می کنید. بار اولی اجرا خروجی موجود در ادامه مطلب را مشاهده می کنید. به منظور طبقه بندی های مختلف با توجه به نرون برنده و اجرای دوباره برنامه و تنظیم وزن ها، این عملیات صورت گرفته است که با اجرای بیشتر، خروجی های متفاوتی را نیز مشاهده نمایید. چندین بار اجرا و به دست آوردن خروجی های متفاوت، در فیلم موجود در ادامه مشخص است.
تصاویر و فیلم خروجی و تکه کدی از پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب در ادامه مطلب.
تکه کدی از پروژه طبقه بندی رنگ با شبکه عصبی SOM با توضیحات:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <span style="color: #008000;">clc پاک کردن همه نوشته های موجود در command window clear all پاک کردن مقدار پارامتر ها و متغیرهای موجود از قبل در workspace n_inp = 100; تعداد ورودی ها. در فایل ارسالی شما آماده است که بین 0 تا 255 باشد. می توانید این مقدار را تغییر بدهید. (نرون ورودی) input = rand(n_inp,3); ساخت یک دیتاست (ظرف پیمایش) out_row = 16; طیف 16x16 . این قسمت برای سطر طیف می باشد. (16x16) نرون لایه خروجی که این قسمت برای سطر آن بود out_col = 16; طیف 16x16 . این قسمت برای ستون طیف می باشد. (16x16) نرون لایه خروجی که این قسمت برای ستون آن بود دو قطعه کد بالا برای 16x16 نرون در لایه خروجی است که ماتریس را طوری نوشته ایم که دو متغیره می باشد و می تواند مقدار آن را به صورت به فرض 16x25 یا 60x60 نیز بنویسد و کاملا قابل تغییر می باشد. w = rand(50,50,3); وزن ماتریس که دارای سه مولفه است (رنگ آبی و قرمز و سبز که عدد 3 نشان دهنده آن است) و دو عدد 50 که مشاهده می شود جهت رسم برداری می باشند در واحد x و y figure,image(w); نمایش فیگور (نمایش طیف رنگ) s0 = 100; پس از اینکه دیتاست یعنی ظرف پیمایش ساخته شد و طیف رنگ ورودی خود را دریافت کرد آن را به شکل یک ماتریس نمایش می دهیم. در واقع این مقدار 100x100 است که به صورت ماتریسی ننوشته ایم که به سادگی قابل تغییر باشد. eta = 0.4; حالت های اجرا و کارایی (Performance) برای SOM که در واقع تکرار در آموزش می باشد.</span> |
تصویر خروجی 1:
تصویر خروجی 2:
هیچ نظری ثبت نشده است