github地址:
https://github.com/weiliu89/caffe/tree/ssd
Create the LMDB file.
需要修改相对应的图像文件的存储位置
./data/VOC0712/create_data.sh会报错,'module' object has no attribute 'LabelMap'
参考https://github.com/weiliu89/caffe/issues/4
Train your model and evaluate the model on the fly.
直接执行
python examples/ssd/ssd_pascal.py训练后,得到下面的结果
Learning Rate Policy: multistep
I0216 10:14:54.943616 16036 solver.cpp:243] Iteration 0, loss = 22.6308
I0216 10:14:54.943655 16036 solver.cpp:259] Train net output #0: mbox_loss = 22.6308 (* 1 = 22.6308 loss)
I0216 10:14:54.943709 16036 sgd_solver.cpp:138] Iteration 0, lr = 0.001
I0216 10:15:13.904834 16036 solver.cpp:243] Iteration 10, loss = 17.3445
I0216 10:15:13.904867 16036 solver.cpp:259] Train net output #0: mbox_loss = 16.4141 (* 1 = 16.4141 loss)
I0216 10:15:15.818320 16036 sgd_solver.cpp:138] Iteration 10, lr = 0.001
I0216 10:15:33.259543 16036 solver.cpp:243] Iteration 20, loss = 17.2321
I0216 10:15:33.259728 16036 solver.cpp:259] Train net output #0: mbox_loss = 19.3067 (* 1 = 19.3067 loss)
I0216 10:15:35.130200 16036 sgd_solver.cpp:138] Iteration 20, lr = 0.001
I0216 10:15:53.582626 16036 solver.cpp:243] Iteration 30, loss = 15.4459
I0216 10:15:53.582665 16036 solver.cpp:259] Train net output #0: mbox_loss = 13.2875 (* 1 = 13.2875 loss)
I0216 10:15:54.733492 16036 sgd_solver.cpp:138] Iteration 30, lr = 0.001
I0216 10:16:12.849376 16036 solver.cpp:243] Iteration 40, loss = 15.5455
I0216 10:16:12.849567 16036 solver.cpp:259] Train net output #0: mbox_loss = 16.904 (* 1 = 16.904 loss)
I0216 10:16:14.618623 16036 sgd_solver.cpp:138] Iteration 40, lr = 0.001
I0216 10:16:30.597581 16036 solver.cpp:243] Iteration 50, loss = 19.9011
I0216 10:16:30.597620 16036 solver.cpp:259] Train net output #0: mbox_loss = 21.5839 (* 1 = 21.5839 loss)
I0216 10:16:31.513517 16036 sgd_solver.cpp:138] Iteration 50, lr = 0.001
I0216 10:16:50.461427 16036 solver.cpp:243] Iteration 60, loss = nan
I0216 10:16:50.461556 16036 solver.cpp:259] Train net output #0: mbox_loss = nan (* 1 = nan loss)
I0216 10:16:51.435171 16036 sgd_solver.cpp:138] Iteration 60, lr = 0.001
I0216 10:17:10.880903 16036 solver.cpp:243] Iteration 70, loss = nan
I0216 10:17:10.880944 16036 solver.cpp:259] Train net output #0: mbox_loss = nan (* 1 = nan loss)
I0216 10:17:10.881077 16036 sgd_solver.cpp:138] Iteration 70, lr = 0.001
损失值溢出,从网上找来的意见是修改base_lr,乘以0.1,改为0.0001
只是修改solver.prototxt中的参数,重新执行后base_lr没有改变,但是mbox_loss没有再出现=nan的情况
ctrl+c中断程序后,再重新执行,需要删除/home/idc/deep/gjj/caffe/models/VGGNet/VOC0712/SSD_300x300路径下的临时文件,不然会从中断点继续执行。