Search code examples
conv-neural-networkcaffemobilenet

How to do incremental learning on MobileNet-SSD caffe


I'm training my classifier on 20k images but every week I get more new pictures so I want to incrementally train my previous model(last stopped iteration) instead of retraining 20k+new_images on all the images again which is a waste of time and compute

I figured out incremental training with Yolo but can't seem to find anything for MobileNet-SSD caffe implemented here https://github.com/chuanqi305/MobileNet-SSD

To understand more about what I'm talking about refer to this: How to do incremental training on the basis of yolov3.weights & answer to this mention here:

 darknet.exe partial cfg/yolov3.cfg yolov3.weights yolov3.conv.105 105 

Solution

  • You need to pass previous iteration in train.sh instead of 73000 iteration. The new iteration are found in snapshot folder once you are done training

    if ! test -f example/MobileNetSSD_train.prototxt ;then
    echo "error: example/MobileNetSSD_train.prototxt does not exist."
    echo "please use the gen_model.sh to generate your own model."
    exit 1
    fi
    mkdir -p snapshot
    
    #Initiate a new training
    $CAFFE_ROOT/build/tools/caffe train -solver="solver_train.prototxt" \
    -weights="mobilenet_iter_73000.caffemodel" \
    -gpu 0