بعد از اینکه شبکه به طور کامل با داده های val, train با دقت ۹۸٪ اموزش دید در مرحله تست دقت 0
شد که خیلی به نظرم عجیبه و متوجه نمیشم چرا؟!
احتمال overfitشدن را هم بررسی کردم داده همگی شافل شده هستند و روی کلاس خاصی بایاس نیست
خروجی تابع زیر را هم دیدم همگی با هم برابر و 0
میباشد بنا بر این چون حتمال همه کلاس ها مساوی بوده و همگی برابر با 0
میاشد همه سمپل ها را لیبل کلاس 0
میزند!
prediction = net.predict([input_image])
تعدا کلاس:20
train: 660
itr_train=2000
bachsize=256
validation: 160 تعداد
bachsize=50
test:160 تعداد
data base: lmdb
نوع شبکه :alexnet
تنظیمات solver:
net: "****/train_val.prototxt"
test_iter: 4
test_interval: 500
base_lr: 0.001
lr_policy: "step"
gamma: 0.1
stepsize: 100000
display: 40
max_iter: 450000
momentum: 0.9
weight_decay: 0.0005
snapshot: 100
snapshot_prefix: "****_train"
solver_mode: GPU
پارامتر های مربوط به تست:
MEAN_FILE = CAFFE_ROOT+'/python/caffe/imagenet/ilsvrc_2012_mean.npy'
TEST_FILE = CAFFE_ROOT +'/data/test1/test.txt' TEST_FOLDER =
CAFFE_ROOT+'/data/test1/pic/' LABLE_FILE = CAFFE_ROOT+
'/data/test1/labels.txt' MODEL_FILE = CAFFE_ROOT+
'/models/test1/deploy.prototxt' PRETRAINED = CAFFE_ROOT +
'/model/test1/snapshout/test1_train_iter_2000.caffemodel'
آپدیت :
در این قطعه کد من داده خودم را که تا حالا شبکه ندیده تست میکنم
اما خروجی net.predictتماما 0
هست
test _code
اصلاحیه کد :
غلط :TEST_FILE = CAFFE_ROOT +'/data/test1/val.txt'
صحیح:TEST_FILE = CAFFE_ROOT +'/data/test1/test.txt'
روی این کد حتی داده های valو train هم نتیجه مشابه دارند
کد تولید «lmdb