سلام .
برای سوالهای ۱ و ۲ :
کلا در کفی شما میتونی فازها و همینطور stageهای مختلفی رو مشخص کنید که هرکدوم هم با یک دیتاست کار کنن و تنظیمات هرکدوم هم مشخص کنید .
مثلا :
layer {
type: "Data"
...
include {
phase: TRAIN
}
}
layer {
type: "Data"
...
include {
phase: TEST
stage: "validation"
}
}
layer {
type: "Data"
...
include {
phase: TEST
stage: "test"
}
}
در سالور هم بعدش باید مشخصات هر stageرو مشخص کنید . مثلا اینطوری :
test_iter: 200
test_state {
stage: "validation"
}
test_iter: 100
test_state {
stage: "test"
}
ولی من خودم شخصا (و اکثر کسایی که دیدم ) از حالت پیشفرض استفاده میکنن که توضیح میدم پایین .
ببینید برای کفی فرقی بین validationو testو ... نیست . این تمایز ها برای ماست که منظور خاصی از استفاده از هرکدوم داریم . برای همین شما خیلی راحت دوتا دیتاست میسازید یکی برای تست و یکی برای ولیدیشن و کاری که میکنید اینه که معماری خودتون رو بصورت train/val میسازید و در فاز test دیتاست ولیدیشن شما استفاده میشه . شبکه رو تنظیم میکنید تا به بهترین دقت برسید وقتی که رسیدید خیلی راحت میتونید دو کار کنید .
۱. برای تست از سویچ testاستفاده کنید .
۲.خیلی راحت جای دیتاست validationو تست رو عوض کنید و شبکه رو روی تست اموزش بدید و دقتش رو گزارش کنید.
برای Kfoldهم به همین شکل پیش میریم