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

با تشکر

دسته بندی ها

0 امتیاز

سلام دوستان.
فرض کنید یه شبکه کانولوشن رو آموزش دادیم و مثل یه بنز کار میکنه. بهترین روش برای تبدیل وزن های float32 این شبکه به وزن های 8 یا 16 بیتی fixed-point چه هستش؟ اگه کسی تجربه داره لطفا راهنمایی کنه.

پ ن: میدونم که اگر اول با float32 آموزشش بدیم بعد fixed-point کنیم بهتر از اینه از همون اول fixed-point آموزش ببینه (طبق مستندات تنسورفلو)

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

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

سلام
آقا خراب ادبیاتت شدم، مثل بنز D:
من خیلی با این مدل کارا تجربه ای ندارم اما توی چند باری که تفننی تست کردم، ایده‌ای که توی Deep Compression روش تاکید شده خوب کار می کنه.
یعنی شما اول مثل هر شبکه معمولی دیگه، train رو انجام میدی و تموم میشه، حالا یه چرخه شروع میشه نه اینکه سریع یه چیزی رو تبدیل کنیم و تموم بشه بره
یعنی مثلا اول وزنها رو کوانتیزه میکنید به 16 بیت و دوباره شبکه رو با این وضعیت train میکنید تا خیلی به دقت اولیش نزدیک بشه
بعد دوباره مثلا 8 بیتش میکنید و train میکنید با همین وضعیت. اگه دقت شبکه خیلی فرقی نکرد، بازم میشه 8 بیت رو کمترش کرد، اما اگه دیدید دیگه شبکه داره خیلی دقتش افت میکنه این پروسه رو متوقف میکنید

فکر کنم خوده tensorflow هم به خصوص برای deploy کردن روی موبایل و این جور بحثا، یه باینری داره که وزنهای شبکه رو کوانتیزه می کنه و حجم خیلی کم میشه اما اگه دسترسی به دیتاست دارید و می تونید فرایند train کردن رو چند بار انجام بدید، این چرخیدن و train دوباره خیلی خیلی کمک می کنه که شبکه علاوه بر اینکه خیلی حجمش کمتر میشه، دقتش هم افت محسوسی نکنه.

چیزی که گفتم دقیقا ایده deep compression نیس(اون اومده کلاستر کرده و این بحثا) و اتفاقا مقالات و کتابهای قبلی هم روی این موضوع حرف زدن که مثلا بعد از prunning شبکه رو دوباره train کنید، اما deep compression باعث شد که حداقل من بیشتر به این موضوع دقت کنم، برای همین گفتم که قدردان زحمت نویسندگانش باشیم :))
الگوریتم کلی Deep Compression رو هم میذارم که بحث کامل باشه

توسط (1.6k امتیاز)
انتخاب شده توسط
سلام
ممنون از جواب کاملتون
اگه میشه لینک مقاله deep compression رو برام بزارید تا کامل بخونمش.
خواهش میکنم
لینک خوده مقاله Deep Compression:
https://arxiv.org/abs/1510.00149
توصیه می کنم یه نگاهی هم به صفحه نویسنده اصلیش بندازید. کارهای جالبی در زمینه فشرده سازی یا طراحی شبکه های عصبی با حجم کم داره و همینطور طراحی های سخت افزاری هم ارائه داده
https://stanford.edu/~songhan
عالی بود تشکر
...