به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

با درود و احترام؛
در لینک زیر برنامه RNN for MNIST نوشته شده است:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py

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

توسط (145 امتیاز)

1 پاسخ

+1 امتیاز

سلام
برای اینکه مثلا تصاویرتون از 28x28 به 28x28x3 تغییر پیدا کنه باید ورودیها رو تغییر بدید
چون شبکه rnn ه و روی تصویر هم ترتیب خاصی وجود نداره، اینکه چه جوری تصویر رو به عنوان یه دنباله ای از ورودی ها در بیارید دیگه انتخاب خودتونه و بستگی به مساله داره
مثلا در لینکی که گذاشتید اومده هر تصویر 28x28 رو به عنوان 28 تا داده در نظر گرفته که هر داده 28 بعد داره(یعنی هر سطر یا ستون عکس رو به عنوان یک گام زمانی در نظر گرفته)
یه ایده خیلی ساده برای تصاویر رنگی، می تونه اینطوری باشه:

num_input = 28*3

اما حتما رفتار reshape برای دیتاهاتون رو چک کنید که برای مثال وقتی یه بچ 100 تایی با سایز 28x28x3 به اندازه
100x28x84 تغییر میکنه، عناصر ماتریس اولیه چطوری توی ماتریس جدید چیده میشن
الان من دقیق خاطرم نیست که توی tf ، تابع reshape به چه ترتیبی عناصر رو انتخاب میکنه، اما هر جوری که باشه در نهایت با ترکیب transpose و بعدش reshape میشه به ترتیب دلخواه رسید
اگه هم دیدید اینطوری خیلی پیچیده میشه میشه هر کانال رو جداگانه سطر سطر کرد و بعدش 3 تا سطر متناظر از هر کانال رو دوباره concat کرد

توضیحاتی که من دادم فقط یه مثال بود بر اساس کدی که گذاشته بودید وگرنه هر ترتیب دیگه هم می تونید روی داده ها بذارید، مثلا می تونیم به جای سطر یا ستون(84یه بردار بعدی)، پیکسل پیکسل داده ها رو وارد کنیم (یه بردار با 3 بعد متناظر با rgb) یا هر جور دیگه ای که بسته به مساله صلاح می دونید

توسط (1.6k امتیاز)
سپاس...در صورت امکان منابع بیشتری ممکنه معرفی بفرمایید؟
برای اطلاعات بیشتر در مورد استفاده از RNN در زمینه داده‌های چند بعدی مثل تصاویر، فصل 8 این pdf رو ببینید
https://www.cs.toronto.edu/~graves/phd.pdf

برای کارهای هم راستا با این موضوع می تونید مقاله ReNet رو هم ببنید
https://arxiv.org/abs/1505.00393

پیاده سازیش توی tensorflow رو متاسفانه من ندیدم، اما توی کدهای مربوط به ReSeg لایه اش تعریف شده:
https://github.com/fvisin/reseg/blob/master/layers.py

برای پیاده سازی ایدتون توی tensorflow، مهمترین قسمت همینه که داده‌هاتون که پیکسلهای یک تصویر رنگی هستند (یعنی هر کدوم یه بردار 3 بعدین مثلا)، رو بتونید به صورت یک سری tensor توی timestep های مختلف در بیارید. این کارو که انجام دادید تمام ایده هایی که توی مقالات و بالا معرفی شده در حد 2 3 خط پیاده سازی میشه با RNN Cell هایی که توی tf وجود داره
سپاس فراوان ازراهنمایی جنابعالی
...