Skip to content

Commit a857001

Browse files
committed
fix fine-tuning example: paths, test acc., and total fine-tuning time
1 parent adbea64 commit a857001

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

examples/finetune_flickr_style/readme.md

+33-32
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ We'll also need the ImageNet-trained model, which you can obtain by running `./s
6060

6161
Now we can train! (You can fine-tune in CPU mode by leaving out the `-gpu` flag.)
6262

63-
caffe % ./build/tools/caffe train -solver models/finetune_flickr_style/flickr_style_solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0
63+
caffe % ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0
6464

6565
[...]
6666

@@ -72,77 +72,78 @@ Now we can train! (You can fine-tune in CPU mode by leaving out the `-gpu` flag.
7272

7373
I0828 22:17:48.338963 11510 solver.cpp:165] Solving FlickrStyleCaffeNet
7474
I0828 22:17:48.339010 11510 solver.cpp:251] Iteration 0, Testing net (#0)
75-
I0828 22:18:14.313817 11510 solver.cpp:302] Test net output #0: accuracy = 0.0416
76-
I0828 22:18:14.476822 11510 solver.cpp:195] Iteration 0, loss = 3.75717
75+
I0828 22:18:14.313817 11510 solver.cpp:302] Test net output #0: accuracy = 0.0308
76+
I0828 22:18:14.476822 11510 solver.cpp:195] Iteration 0, loss = 3.78589
7777
I0828 22:18:14.476878 11510 solver.cpp:397] Iteration 0, lr = 0.001
78-
I0828 22:18:19.700408 11510 solver.cpp:195] Iteration 20, loss = 3.1689
78+
I0828 22:18:19.700408 11510 solver.cpp:195] Iteration 20, loss = 3.25728
7979
I0828 22:18:19.700461 11510 solver.cpp:397] Iteration 20, lr = 0.001
80-
I0828 22:18:24.924685 11510 solver.cpp:195] Iteration 40, loss = 2.3549
80+
I0828 22:18:24.924685 11510 solver.cpp:195] Iteration 40, loss = 2.18531
8181
I0828 22:18:24.924741 11510 solver.cpp:397] Iteration 40, lr = 0.001
82-
I0828 22:18:30.114858 11510 solver.cpp:195] Iteration 60, loss = 2.74191
82+
I0828 22:18:30.114858 11510 solver.cpp:195] Iteration 60, loss = 2.4915
8383
I0828 22:18:30.114910 11510 solver.cpp:397] Iteration 60, lr = 0.001
84-
I0828 22:18:35.328071 11510 solver.cpp:195] Iteration 80, loss = 1.9147
84+
I0828 22:18:35.328071 11510 solver.cpp:195] Iteration 80, loss = 2.04539
8585
I0828 22:18:35.328127 11510 solver.cpp:397] Iteration 80, lr = 0.001
86-
I0828 22:18:40.588317 11510 solver.cpp:195] Iteration 100, loss = 1.81419
86+
I0828 22:18:40.588317 11510 solver.cpp:195] Iteration 100, loss = 2.1924
8787
I0828 22:18:40.588373 11510 solver.cpp:397] Iteration 100, lr = 0.001
88-
I0828 22:18:46.171576 11510 solver.cpp:195] Iteration 120, loss = 2.02105
88+
I0828 22:18:46.171576 11510 solver.cpp:195] Iteration 120, loss = 2.25107
8989
I0828 22:18:46.171669 11510 solver.cpp:397] Iteration 120, lr = 0.001
90-
I0828 22:18:51.757809 11510 solver.cpp:195] Iteration 140, loss = 1.49083
90+
I0828 22:18:51.757809 11510 solver.cpp:195] Iteration 140, loss = 1.355
9191
I0828 22:18:51.757863 11510 solver.cpp:397] Iteration 140, lr = 0.001
92-
I0828 22:18:57.345080 11510 solver.cpp:195] Iteration 160, loss = 1.35319
92+
I0828 22:18:57.345080 11510 solver.cpp:195] Iteration 160, loss = 1.40815
9393
I0828 22:18:57.345135 11510 solver.cpp:397] Iteration 160, lr = 0.001
94-
I0828 22:19:02.928794 11510 solver.cpp:195] Iteration 180, loss = 1.11658
94+
I0828 22:19:02.928794 11510 solver.cpp:195] Iteration 180, loss = 1.6558
9595
I0828 22:19:02.928850 11510 solver.cpp:397] Iteration 180, lr = 0.001
96-
I0828 22:19:08.514497 11510 solver.cpp:195] Iteration 200, loss = 1.08851
96+
I0828 22:19:08.514497 11510 solver.cpp:195] Iteration 200, loss = 0.88126
9797
I0828 22:19:08.514552 11510 solver.cpp:397] Iteration 200, lr = 0.001
9898

9999
[...]
100100

101-
I0828 22:22:40.789010 11510 solver.cpp:195] Iteration 960, loss = 0.0844627
101+
I0828 22:22:40.789010 11510 solver.cpp:195] Iteration 960, loss = 0.112586
102102
I0828 22:22:40.789175 11510 solver.cpp:397] Iteration 960, lr = 0.001
103-
I0828 22:22:46.376626 11510 solver.cpp:195] Iteration 980, loss = 0.0110937
103+
I0828 22:22:46.376626 11510 solver.cpp:195] Iteration 980, loss = 0.0959077
104104
I0828 22:22:46.376682 11510 solver.cpp:397] Iteration 980, lr = 0.001
105105
I0828 22:22:51.687258 11510 solver.cpp:251] Iteration 1000, Testing net (#0)
106-
I0828 22:23:17.438894 11510 solver.cpp:302] Test net output #0: accuracy = 1
106+
I0828 22:23:17.438894 11510 solver.cpp:302] Test net output #0: accuracy = 0.2356
107107

108-
Note how rapidly the loss went down. Although the 100% accuracy is optimistic, it is evidence the model is learning quickly and well.
108+
Note how rapidly the loss went down. Although the 23.5% accuracy is only modest, it was achieved in only 1000, and evidence that the model is starting to learn quickly and well.
109+
Once the model is fully fine-tuned on the whole training set over 100,000 iterations the final validation accuracy is 91.64%. This takes ~7 hours in Caffe on a K40 GPU.
109110

110111
For comparison, here is how the loss goes down when we do not start with a pre-trained model:
111112

112113
I0828 22:24:18.624004 12919 solver.cpp:165] Solving FlickrStyleCaffeNet
113114
I0828 22:24:18.624099 12919 solver.cpp:251] Iteration 0, Testing net (#0)
114-
I0828 22:24:44.520992 12919 solver.cpp:302] Test net output #0: accuracy = 0.045
115-
I0828 22:24:44.676905 12919 solver.cpp:195] Iteration 0, loss = 3.33111
115+
I0828 22:24:44.520992 12919 solver.cpp:302] Test net output #0: accuracy = 0.0366
116+
I0828 22:24:44.676905 12919 solver.cpp:195] Iteration 0, loss = 3.47942
116117
I0828 22:24:44.677120 12919 solver.cpp:397] Iteration 0, lr = 0.001
117-
I0828 22:24:50.152454 12919 solver.cpp:195] Iteration 20, loss = 2.98133
118+
I0828 22:24:50.152454 12919 solver.cpp:195] Iteration 20, loss = 2.99694
118119
I0828 22:24:50.152509 12919 solver.cpp:397] Iteration 20, lr = 0.001
119-
I0828 22:24:55.736256 12919 solver.cpp:195] Iteration 40, loss = 3.02124
120+
I0828 22:24:55.736256 12919 solver.cpp:195] Iteration 40, loss = 3.0498
120121
I0828 22:24:55.736311 12919 solver.cpp:397] Iteration 40, lr = 0.001
121-
I0828 22:25:01.316514 12919 solver.cpp:195] Iteration 60, loss = 2.99509
122+
I0828 22:25:01.316514 12919 solver.cpp:195] Iteration 60, loss = 2.99549
122123
I0828 22:25:01.316567 12919 solver.cpp:397] Iteration 60, lr = 0.001
123-
I0828 22:25:06.899554 12919 solver.cpp:195] Iteration 80, loss = 2.9928
124+
I0828 22:25:06.899554 12919 solver.cpp:195] Iteration 80, loss = 3.00573
124125
I0828 22:25:06.899610 12919 solver.cpp:397] Iteration 80, lr = 0.001
125-
I0828 22:25:12.484624 12919 solver.cpp:195] Iteration 100, loss = 2.99072
126+
I0828 22:25:12.484624 12919 solver.cpp:195] Iteration 100, loss = 2.99094
126127
I0828 22:25:12.484678 12919 solver.cpp:397] Iteration 100, lr = 0.001
127-
I0828 22:25:18.069056 12919 solver.cpp:195] Iteration 120, loss = 3.01816
128+
I0828 22:25:18.069056 12919 solver.cpp:195] Iteration 120, loss = 3.01616
128129
I0828 22:25:18.069149 12919 solver.cpp:397] Iteration 120, lr = 0.001
129-
I0828 22:25:23.650928 12919 solver.cpp:195] Iteration 140, loss = 2.9694
130+
I0828 22:25:23.650928 12919 solver.cpp:195] Iteration 140, loss = 2.98786
130131
I0828 22:25:23.650984 12919 solver.cpp:397] Iteration 140, lr = 0.001
131-
I0828 22:25:29.235535 12919 solver.cpp:195] Iteration 160, loss = 3.00383
132+
I0828 22:25:29.235535 12919 solver.cpp:195] Iteration 160, loss = 3.00724
132133
I0828 22:25:29.235589 12919 solver.cpp:397] Iteration 160, lr = 0.001
133-
I0828 22:25:34.816898 12919 solver.cpp:195] Iteration 180, loss = 2.99802
134+
I0828 22:25:34.816898 12919 solver.cpp:195] Iteration 180, loss = 3.00099
134135
I0828 22:25:34.816953 12919 solver.cpp:397] Iteration 180, lr = 0.001
135-
I0828 22:25:40.396656 12919 solver.cpp:195] Iteration 200, loss = 2.99769
136+
I0828 22:25:40.396656 12919 solver.cpp:195] Iteration 200, loss = 2.99848
136137
I0828 22:25:40.396711 12919 solver.cpp:397] Iteration 200, lr = 0.001
137138

138139
[...]
139140

140-
I0828 22:29:12.539094 12919 solver.cpp:195] Iteration 960, loss = 2.99314
141+
I0828 22:29:12.539094 12919 solver.cpp:195] Iteration 960, loss = 2.99203
141142
I0828 22:29:12.539258 12919 solver.cpp:397] Iteration 960, lr = 0.001
142-
I0828 22:29:18.123092 12919 solver.cpp:195] Iteration 980, loss = 2.99503
143+
I0828 22:29:18.123092 12919 solver.cpp:195] Iteration 980, loss = 2.99345
143144
I0828 22:29:18.123147 12919 solver.cpp:397] Iteration 980, lr = 0.001
144145
I0828 22:29:23.432059 12919 solver.cpp:251] Iteration 1000, Testing net (#0)
145-
I0828 22:29:49.409044 12919 solver.cpp:302] Test net output #0: accuracy = 0.0624
146+
I0828 22:29:49.409044 12919 solver.cpp:302] Test net output #0: accuracy = 0.0572
146147

147148
This model is only beginning to learn.
148149

models/finetune_flickr_style/train_val.prototxt

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ layers {
2323
top: "data"
2424
top: "label"
2525
image_data_param {
26-
source: "data/flickr_style/train.txt"
26+
source: "data/flickr_style/test.txt"
2727
batch_size: 50
2828
new_height: 256
2929
new_width: 256

0 commit comments

Comments
 (0)