سلام
آقا خراب ادبیاتت شدم، مثل بنز D:
من خیلی با این مدل کارا تجربه ای ندارم اما توی چند باری که تفننی تست کردم، ایدهای که توی Deep Compression روش تاکید شده خوب کار می کنه.
یعنی شما اول مثل هر شبکه معمولی دیگه، train رو انجام میدی و تموم میشه، حالا یه چرخه شروع میشه نه اینکه سریع یه چیزی رو تبدیل کنیم و تموم بشه بره
یعنی مثلا اول وزنها رو کوانتیزه میکنید به 16 بیت و دوباره شبکه رو با این وضعیت train میکنید تا خیلی به دقت اولیش نزدیک بشه
بعد دوباره مثلا 8 بیتش میکنید و train میکنید با همین وضعیت. اگه دقت شبکه خیلی فرقی نکرد، بازم میشه 8 بیت رو کمترش کرد، اما اگه دیدید دیگه شبکه داره خیلی دقتش افت میکنه این پروسه رو متوقف میکنید
فکر کنم خوده tensorflow هم به خصوص برای deploy کردن روی موبایل و این جور بحثا، یه باینری داره که وزنهای شبکه رو کوانتیزه می کنه و حجم خیلی کم میشه اما اگه دسترسی به دیتاست دارید و می تونید فرایند train کردن رو چند بار انجام بدید، این چرخیدن و train دوباره خیلی خیلی کمک می کنه که شبکه علاوه بر اینکه خیلی حجمش کمتر میشه، دقتش هم افت محسوسی نکنه.
چیزی که گفتم دقیقا ایده deep compression نیس(اون اومده کلاستر کرده و این بحثا) و اتفاقا مقالات و کتابهای قبلی هم روی این موضوع حرف زدن که مثلا بعد از prunning شبکه رو دوباره train کنید، اما deep compression باعث شد که حداقل من بیشتر به این موضوع دقت کنم، برای همین گفتم که قدردان زحمت نویسندگانش باشیم :))
الگوریتم کلی Deep Compression رو هم میذارم که بحث کامل باشه