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

با تشکر

دسته بندی ها

0 امتیاز

سلام عرض ادب
دوستان من میخام یک شبکه ی کلاسیفیکیشن رو با تنسور ترین کنم میخاستم ببینم چجوری میشه لایه اخر رو از 1000 به دیتاست خودمون تغییر داد ؟ چجوری میشه لایه ها رو فریز کرد ؟ یا اینکه چندتا لایه بهش اضافی کرد و بعد ترینش کرد
و اینکه چجوری نمودار ترین و val رو ترسیم کرد اون early stopping رو ببینیم

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

1 پاسخ

+3 امتیاز

سلام
فرض کنیم که یه شبکه ترین شده برای کلاس بندی 1000 نوع شی (مثلا مجموعه حیوانات و اشیاء و درختان و ...) داریم. حالا میخوایم همین شبکه رو برای کلاسبندی 2 نوع شی بکار ببریم.
اگه این دو شی جدید از میان همان 1000 شی تو شبکه اصلی بودند اونوخت بهتره در لایه آخر نورون های 2 کلاس مورد نظر را نگه داریم و بقیه نورون ها رو حذف کنیم و دو باره شبکه را tune کنیم (فراموش نکنید که در فرایند tune حتما نرخ آموزش را حتما پایین بیارید).
اگه این دو شی جدید از میان همان 1000 شی تو شبکه اصلی نبود ولی از همون تیر و طایفه باشه بهتره لایه fc آخر رو که n×1000 هستش رو با n×2 جایگزین کنید و شبکه را tune کنید.
اگه این دو شی جدید از میان همان 1000 شی تو شبکه اصلی نیست و از دو سه طایفه اونورتر هستش احتمال زیاد باید تمام لایه های fc رو بندازید دور (بقول مقالات سرشو از تنش جدا کنید decapitate) و دوباره fc جدید بزارید و tune کنید.
اما اگه کلا فازشون فرق کنه ( مثلا تشخیص تصاویر MRI) اونوقت لازمه علاوه بر لایه های fc حتی چند لایه conv رو هم جایگزین کنید و شبکه را tune کنید.
اگه اشتباه نکنم به این مدل آخری میگن domain adaption و به قبلیه میگن transfer learning.
اینا توضیحات کلی بودن که احتمالا خودتون هم میدونستید ولی در مورد بقیه سوالاتتون لینک زیر میتونه کمکتون کنه.

http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/

توسط (830 امتیاز)
علاوه بر اینکه الان تمامی امکانات keras از جمله callback ها رو در اختیار دارید که این چیزایی که نیاز دارید رو در اختیارتون قرار می ده
 https://keras.io/callbacks
(توی سایت تنسورفلو هم می تونید زیر مجموعه keras چکشون کنید)
زیر مجموعه keras در تنسورفلو با خود کراس چه فرقی داره ؟ کدوم بهتره ؟ و اینکه ظاهرا tf-slim از کراس بهتره درسته ؟
فرق اساسی keras به طور جداگانه اینه که می تونید از انواع backend ها مثل theano یا CNTK هم علاوه بر تنسورفلو استفاده کنید و هر موقع هر کدوم رو نیاز داشتید استفاده کنید
اما برای مثال من که اکثرا با تنسورفلو کار می کنم، نیازی به نصب جدای keras ندارم و همه امکاناتش با خوده تنسورفلو نصب میشه
همه چیزهایی مثل keras یا tf-slim یا sonnet و کلی چیزه دیگه، یه جورایی wrapper برای تنسورفلو هستن و اکثرا هم به اندازه خوبی مهندسی شدن
بسته به کارتون ممکنه یکی از یکی دیگه راحت تر کار رو راه بندازه. مثلا sonnet توی کار با شبکه های پیچیده خیلی کمک می کنه. اما نه اینکه نشه توی بقیشون کار رو انجام داد
در مورد performance هم اطلاعی در مورد تفاوت keras و tf-slim ندارم متاسفانه اما از نظر رابط کاربری keras خدایی خوبه و به نظر کاربرپسند تر از tf-slim میاد (نظر شخصی D:) اما به هر حال همه این کتابخونه ها رو هم میشه با هم ترکیب کرد، چون پایه همش خوده تنسورفلو ه
...