Hi every one ,
I have a data set of 6000 image of three objects (Lamborghini ,cylinder head and a piece of plane )
link to view the dataset.
I split my data set 5000 for training and 1000 for testing.The
architecture of CNN is modified version of AlexNet . In fact , I have
modified num_out of fc6 and fc7 to 1000. Also , the batch size of
training is 50 and for test is 20.
I have the following parameters of solver :
net: "/home/jaba/caffe/data/diota_model/train_val.prototxt"
test_iter: 100
test_interval: 500
base_lr: 0.001
lr_policy: "step"
gamma: 0.1
stepsize: 500
display: 500
max_iter: 4000
momentum: 0.5
weight_decay: 0.0005
snapshot: 100
snapshot_prefix: "/home/jaba/caffe/data/diota_model/snap_shot_model"
solver_mode: GPU
But after training for 4000 iterations , I have some weird accuracy values :
- after 0 iterations , accuracy is 0
- after 500 iterations , accuracy is 1
- after 1000 iterations , accuracy is 0
- after 1500 iterations , accuracy is 0.489
- after 2000 iterations , accuracy is 0.4885
- after 2500 iterations , accuracy is 0.4885
- after 3000 iterations ,accuracy is 0.489
- after 3500 iterations , accuracy is 0.489
- after 4000 iterations , accuracy is 0.489
So , why the accuracy is like that ?
I wonder if the training from scratch of modified AlexNet is not suitable for my use case (Classifying the three objects ) ? Should I use a
ConvNet as fixed feature extractor and train a linear classifier on my dataset ? Any suggestions
I have attached log file of training and train_val.prototxt
Thanks