jay-mahadeokar / pynetbuilder

pyNetBuilder is a modular pytonic interface with builtin modules for generating popular caffe prototxt network file definitions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bottleneck resnet18 acc is low, only 58.21% top1 and 81.30% top 5 acc.

KevinYuk opened this issue · comments

commented
  1. My solver is:
    test_iter: 500
    test_interval: 6000
    base_lr: 0.05
    display: 30
    max_iter: 1500000
    lr_policy: "multistep"
    gamma: 0.1
    momentum: 0.9
    weight_decay: 5e-05
    snapshot: 6000
    solver_mode: CPU
    stepvalue: 150000
    stepvalue: 300000
    stepvalue: 600000
    stepvalue: 800000

  2. train_val.prototxt is generated by the "python app/imagenet/build_resnet.py -m bottleneck -b 2 2 2 2 -n 64 --no-fc_layers".

  3. Data layer is something like:
    transform_param {
    mirror: true
    crop_size: 224
    mean_file: "/xxxxxxx/imagenet/lmdb/imagenet_mean.binaryproto"
    }
    data_param {
    source: "/xxxxxxx/imagenet/lmdb/ilsvrc12_train_lmdb"
    batch_size: 100
    backend: LMDB
    prefetch: 2
    }

Is there anyone know why?

Thanks a lot.

@KevinYuk, have you solved this problem?
I also trained resnet18+SSD but my situation is worse. My detection_eval is only 0.4. I check the detection_out and found that there are 200 box predicted for each image, the score of these boxes are all about 0.99. Have you checked your detection output?
My training batch size is 20, iter_size is 2, model input size is 320, base_lr starts from 0.005, after training 200k iteration, the output is still the same.

commented

@a26908456 Yes. I have tuned it to 64.1 mAP.
My training batch size is 32, testing batch size is 1, model input size is 300, base_lr starts from 0.001. BTW, I just use normal reset18, and don't use bottleneck resnet18.

By using the same method with changing input model size to 320 and using MS coco dataset to pretrain, could increase mAP to 72.3.

Below is my solver, please refer it:
rain_net: "xxx/train.prototxt"
test_net: "xxx/test.prototxt"

test_iter: 4952
test_interval: 10000
base_lr: 0.001
display: 10
max_iter: 120000
lr_policy: "multistep"
gamma: 0.1
momentum: 0.9
weight_decay: 0.0005
snapshot: 10000
snapshot_prefix: ""
solver_mode: CPU
device_id: 0
debug_info: false
snapshot_after_train: true
test_initialization: false
average_loss: 10
stepvalue: 80000
stepvalue: 100000
stepvalue: 120000
iter_size: 1
type: "SGD"
eval_type: "detection"
ap_version: "11point"

@KevinYuk, thanks a lot!
I tried another training with these hyper-parameter, but the false positive boxes are still 200 per image after 25k iteration ( detection eval = 0.38 ).
Maybe there is something wrong with my .mdb file or other settings. I'll check them again.
Thanks for your reply!

Hi @KevinYuk, Thanks for sharing! I have also tried to tune SSD+ResNet18 on VOC2007 trainval, but I only get 0.41mAP@0.5IoU on VOC2007 test. I am wondering from which layers in ResNet are you collecting feature maps for the detection head? (I am using the feature map suggested in the DSSD paper from conv3_x, conv_5x, as well as the extra conv layers added after the backbone ResNet-18 network)

can U tell me how to create prototxt and give me pre-train model to train my own dataset???