پاسخ داده شده: آموزش شناسایی اشیا با تنسورفلو
تنظیم پارامترهای مدل :
چنانچه در عملیات شناسایی آبجکت به دقت بالا نیاز داشته باشید و مدت زمان پردازش برای شما اهمیتی نداره از مدل FaseterR-CNN استفاده کنید و بالعکس اگر مدت زمان پردازش برایتان اهمیت دارد از مدل SSD استفاده کنید.
برای انتخاب مدل مناسب به مسیر object_detectionsamplesconfigs رفته و مدل مد نظر را کپی و در مسیری دیگر کپی کنید تا پارامترهای مورد نیازتان را تغییر دهید. پارامتر num_classes در این فایل با توجه به دیتاست جدید تغییر می کند.
تعریف ورودی :
Api شناسایی آبجکت از فایل tfrecord استفاده می کند.کاربر باید مسیر فایل های آموزش و evalution را مشخص کند همچنین فایل lable map هم باید مشخص شود این فایل رابطه بین شناسه کلاس و نام کلاس مشخص می کند.
مسیر فایل tfrecord به صورت زیر مشخص می شود.
tf_record_input_reader { input_path: filename.tfrecord" }
مسیر فایل lable map هم به صورت زیر مشخص می شود.
label_map_path: "filename.pbtxt"
Train_config بخش های مختلف پروسه آموزش را مشخص می کند.
- مقداردهی پارامترهای مدل
- پیش پردازش ورودی
- پارامترهای SGD
یک مثال از train_config به صورت زیر است:
batch_size: 1
optimizer { momentum_optimizer: { leaing_rate: { manual_step_leaing_rate { initial_leaing_rate: 0.0002 schedule { step: 0 leaing_rate: .0002 } schedule { step: 900000 leaing_rate: .00002 } schedule { step: 1200000 leaing_rate: .000002 } } } momentum_optimizer_value: 0.9 } use_moving_average: false
}
fine_tune_checkpoint: "/usr/home/useame/tmp/model.ckpt-#####"
from_detection_checkpoint: true
gradient_clipping_by_norm: 10.0
data_augmentation_options { random_horizontal_flip { }
}
مقداردهی پارامترهای مدل
از آنجائیکه شناسایی آبجکت از ابتدا کار بسیار زمانگیری است جهت سرعت بخشیدن به عملیات آموزش توصیه می کنیم که از پارامترهای feature extractor موجود استفاده مجدد شود. این پارامترها تحت عنوان فایل chckpnt برای عملیات شناسایی و طبقه بندی استفاده می شود.این بخش دو پارامتر fine_tune_checkpoint و from_detection_checkpoint دارد که پارامتر اول نام فایل chckpnt از قبل موجود را در آن معرفی می کنیم و پارامتر دوم هم برای عملیات شناسایی true می کنیم.
پیش پردازش ورودی :
data_augmentation_options در بخش train_config تعیین می کند که به چه صورت داده های ورودی ما تغییر کند.
پارامترهای SGD :
یکی از موارد قابل تنظیم در train_config بخش هایپر پارامترهای گرادیان نزولی است.انتخاب پارامترهای بهینه در این بخش به نحوه راه اندازی عملیات آموزش بستگی دارد مثلا تعداد worker ها یا نوع GPU و غیره ...
