https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
1. 在小数据集上训练神经网络:40行代码达到80%的准确率
/usr/bin/python2
.7 "/home/vickyleexy/keras/image classification models using little data/classifier_from_little_data_script_1.py"
Using TensorFlow backend.
Found
2000 images belonging
to 2 classes.
Found
800 images belonging
to 2 classes.
Epoch
1/
50
2017-
04-
13 17:
53:
08.838264: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use SSE4
.1 instructions, but these are available
on your machine
and could speed up CPU computations.
2017-
04-
13 17:
53:
08.838309: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use SSE4
.2 instructions, but these are available
on your machine
and could speed up CPU computations.
2017-
04-
13 17:
53:
08.838322: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use AVX instructions, but these are available
on your machine
and could speed up CPU computations.
125/
125 [==============================] -
188s - loss:
0.7686 - acc:
0.5360 - val_loss:
0.8013 - val_acc:
0.5000
Epoch
2/
50
125/
125 [==============================] -
184s - loss:
0.6855 - acc:
0.5780 - val_loss:
0.6268 - val_acc:
0.6825
Epoch
3/
50
125/
125 [==============================] -
184s - loss:
0.6469 - acc:
0.6450 - val_loss:
0.5994 - val_acc:
0.6062
Epoch
4/
50
125/
125 [==============================] -
184s - loss:
0.6209 - acc:
0.6710 - val_loss:
0.5678 - val_acc:
0.6937
Epoch
5/
50
125/
125 [==============================] -
184s - loss:
0.5925 - acc:
0.6930 - val_loss:
0.5044 - val_acc:
0.7650
Epoch
6/
50
125/
125 [==============================] -
184s - loss:
0.5729 - acc:
0.7145 - val_loss:
0.4939 - val_acc:
0.7738
Epoch
7/
50
125/
125 [==============================] -
184s - loss:
0.5537 - acc:
0.7295 - val_loss:
0.5289 - val_acc:
0.7350
Epoch
8/
50
125/
125 [==============================] -
183s - loss:
0.5565 - acc:
0.7260 - val_loss:
0.4755 - val_acc:
0.7788
Epoch
9/
50
125/
125 [==============================] -
185s - loss:
0.5426 - acc:
0.7470 - val_loss:
0.4998 - val_acc:
0.7612
Epoch
10/
50
125/
125 [==============================] -
183s - loss:
0.5164 - acc:
0.7495 - val_loss:
0.5502 - val_acc:
0.7163
Epoch
11/
50
125/
125 [==============================] -
184s - loss:
0.5063 - acc:
0.7680 - val_loss:
0.4713 - val_acc:
0.7800
Epoch
12/
50
125/
125 [==============================] -
181s - loss:
0.4986 - acc:
0.7705 - val_loss:
0.5489 - val_acc:
0.7338
Epoch
13/
50
125/
125 [==============================] -
179s - loss:
0.4748 - acc:
0.7755 - val_loss:
0.5087 - val_acc:
0.7412
Epoch
14/
50
125/
125 [==============================] -
179s - loss:
0.4942 - acc:
0.7735 - val_loss:
0.4680 - val_acc:
0.7788
Epoch
15/
50
125/
125 [==============================] -
131s - loss:
0.4848 - acc:
0.7795 - val_loss:
0.4485 - val_acc:
0.7950
Epoch
16/
50
125/
125 [==============================] -
105s - loss:
0.4630 - acc:
0.7870 - val_loss:
0.4478 - val_acc:
0.8113
Epoch
17/
50
125/
125 [==============================] -
105s - loss:
0.4666 - acc:
0.7965 - val_loss:
0.5163 - val_acc:
0.7400
Epoch
18/
50
125/
125 [==============================] -
105s - loss:
0.4662 - acc:
0.7825 - val_loss:
0.4536 - val_acc:
0.8013
Epoch
19/
50
125/
125 [==============================] -
105s - loss:
0.4459 - acc:
0.8070 - val_loss:
0.5453 - val_acc:
0.7712
Epoch
20/
50
125/
125 [==============================] -
105s - loss:
0.4493 - acc:
0.7985 - val_loss:
0.4779 - val_acc:
0.7788
Epoch
21/
50
125/
125 [==============================] -
105s - loss:
0.4577 - acc:
0.7965 - val_loss:
0.5021 - val_acc:
0.7937
Epoch
22/
50
125/
125 [==============================] -
105s - loss:
0.4499 - acc:
0.8010 - val_loss:
0.4421 - val_acc:
0.8250
Epoch
23/
50
125/
125 [==============================] -
105s - loss:
0.4401 - acc:
0.8115 - val_loss:
0.5273 - val_acc:
0.7963
Epoch
24/
50
125/
125 [==============================] -
112s - loss:
0.4250 - acc:
0.8135 - val_loss:
0.4785 - val_acc:
0.7900
Epoch
25/
50
125/
125 [==============================] -
112s - loss:
0.4113 - acc:
0.8125 - val_loss:
0.4585 - val_acc:
0.8187
Epoch
26/
50
125/
125 [==============================] -
106s - loss:
0.4268 - acc:
0.8105 - val_loss:
0.4773 - val_acc:
0.8063
Epoch
27/
50
125/
125 [==============================] -
103s - loss:
0.4249 - acc:
0.8085 - val_loss:
0.4448 - val_acc:
0.8350
Epoch
28/
50
125/
125 [==============================] -
103s - loss:
0.4267 - acc:
0.8055 - val_loss:
0.7409 - val_acc:
0.7063
Epoch
29/
50
125/
125 [==============================] -
109s - loss:
0.3955 - acc:
0.8325 - val_loss:
0.4703 - val_acc:
0.7975
Epoch
30/
50
125/
125 [==============================] -
109s - loss:
0.4086 - acc:
0.8210 - val_loss:
0.5015 - val_acc:
0.8200
Epoch
31/
50
125/
125 [==============================] -
105s - loss:
0.4150 - acc:
0.8250 - val_loss:
0.4813 - val_acc:
0.7987
Epoch
32/
50
125/
125 [==============================] -
116s - loss:
0.4277 - acc:
0.8085 - val_loss:
0.5484 - val_acc:
0.7488
Epoch
33/
50
125/
125 [==============================] -
104s - loss:
0.4184 - acc:
0.8225 - val_loss:
0.4896 - val_acc:
0.7950
Epoch
34/
50
125/
125 [==============================] -
104s - loss:
0.4206 - acc:
0.8260 - val_loss:
0.4914 - val_acc:
0.8025
Epoch
35/
50
125/
125 [==============================] -
104s - loss:
0.4236 - acc:
0.8205 - val_loss:
0.5932 - val_acc:
0.7825
Epoch
36/
50
125/
125 [==============================] -
104s - loss:
0.4139 - acc:
0.8320 - val_loss:
0.4592 - val_acc:
0.8200
Epoch
37/
50
125/
125 [==============================] -
104s - loss:
0.3872 - acc:
0.8350 - val_loss:
0.4539 - val_acc:
0.8150
Epoch
38/
50
125/
125 [==============================] -
104s - loss:
0.3798 - acc:
0.8420 - val_loss:
0.4844 - val_acc:
0.8200
Epoch
39/
50
125/
125 [==============================] -
104s - loss:
0.4203 - acc:
0.8330 - val_loss:
0.5019 - val_acc:
0.7937
Epoch
40/
50
125/
125 [==============================] -
104s - loss:
0.4072 - acc:
0.8255 - val_loss:
0.5300 - val_acc:
0.7887
Epoch
41/
50
125/
125 [==============================] -
104s - loss:
0.4017 - acc:
0.8255 - val_loss:
0.4658 - val_acc:
0.8100
Epoch
42/
50
125/
125 [==============================] -
104s - loss:
0.3894 - acc:
0.8340 - val_loss:
0.7020 - val_acc:
0.7512
Epoch
43/
50
125/
125 [==============================] -
109s - loss:
0.3915 - acc:
0.8415 - val_loss:
0.4835 - val_acc:
0.8063
Epoch
44/
50
125/
125 [==============================] -
112s - loss:
0.4098 - acc:
0.8250 - val_loss:
0.4822 - val_acc:
0.8075
Epoch
45/
50
125/
125 [==============================] -
108s - loss:
0.3835 - acc:
0.8430 - val_loss:
0.5384 - val_acc:
0.8063
Epoch
46/
50
125/
125 [==============================] -
110s - loss:
0.4102 - acc:
0.8310 - val_loss:
0.4724 - val_acc:
0.7850
Epoch
47/
50
125/
125 [==============================] -
113s - loss:
0.3926 - acc:
0.8440 - val_loss:
0.5055 - val_acc:
0.8063
Epoch
48/
50
125/
125 [==============================] -
109s - loss:
0.3918 - acc:
0.8340 - val_loss:
0.6078 - val_acc:
0.7675
Epoch
49/
50
125/
125 [==============================] -
109s - loss:
0.3808 - acc:
0.8420 - val_loss:
0.4490 - val_acc:
0.8137
Epoch
50/
50
125/
125 [==============================] -
104s - loss:
0.4033 - acc:
0.8320 - val_loss:
0.5457 - val_acc:
0.8213
Process finished
with exit code
0
2.使用预训练网络的bottleneck特征:一分钟达到90%的正确率
/usr/bin/python2
.7 "/home/vickyleexy/keras/image classification models using little data/classifier_from_little_data_script_2.py"
Using TensorFlow backend.
2017-
04-
13 20:
01:
28.444837: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use SSE4
.1 instructions, but these are available
on your machine
and could speed up CPU computations.
2017-
04-
13 20:
01:
28.444871: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use SSE4
.2 instructions, but these are available
on your machine
and could speed up CPU computations.
2017-
04-
13 20:
01:
28.444879: W tensorflow/core/platform/cpu_feature_guard.cc:
45] The TensorFlow
library wasn
't compiled
to use AVX instructions, but these are available
on your machine
and could speed up CPU computations.
Found
2000 images belonging
to 2 classes.
Found
800 images belonging
to 2 classes.
Train
on 2000 samples, validate
on 800 samples
Epoch
1/
50
2000/
2000 [==============================] -
5s - loss:
0.7468 - acc:
0.7645 - val_loss:
0.3196 - val_acc:
0.8462
Epoch
2/
50
2000/
2000 [==============================] -
5s - loss:
0.4271 - acc:
0.8300 - val_loss:
0.2687 - val_acc:
0.8900
Epoch
3/
50
2000/
2000 [==============================] -
5s - loss:
0.3352 - acc:
0.8750 - val_loss:
0.3109 - val_acc:
0.8888
Epoch
4/
50
2000/
2000 [==============================] -
5s - loss:
0.2989 - acc:
0.8875 - val_loss:
0.3212 - val_acc:
0.8800
Epoch
5/
50
2000/
2000 [==============================] -
5s - loss:
0.2424 - acc:
0.9010 - val_loss:
0.4034 - val_acc:
0.8600
Epoch
6/
50
2000/
2000 [==============================] -
5s - loss:
0.2400 - acc:
0.9115 - val_loss:
0.3544 - val_acc:
0.8750
Epoch
7/
50
2000/
2000 [==============================] -
5s - loss:
0.2006 - acc:
0.9255 - val_loss:
0.3102 - val_acc:
0.8962
Epoch
8/
50
2000/
2000 [==============================] -
5s - loss:
0.1786 - acc:
0.9310 - val_loss:
0.4162 - val_acc:
0.8838
Epoch
9/
50
2000/
2000 [==============================] -
5s - loss:
0.1574 - acc:
0.9410 - val_loss:
0.4382 - val_acc:
0.8912
Epoch
10/
50
2000/
2000 [==============================] -
5s - loss:
0.1662 - acc:
0.9460 - val_loss:
0.4042 - val_acc:
0.8862
Epoch
11/
50
2000/
2000 [==============================] -
5s - loss:
0.1322 - acc:
0.9495 - val_loss:
0.4317 - val_acc:
0.8938
Epoch
12/
50
2000/
2000 [==============================] -
6s - loss:
0.1043 - acc:
0.9625 - val_loss:
0.4873 - val_acc:
0.8900
Epoch
13/
50
2000/
2000 [==============================] -
7s - loss:
0.1080 - acc:
0.9630 - val_loss:
0.5025 - val_acc:
0.8938
Epoch
14/
50
2000/
2000 [==============================] -
5s - loss:
0.0993 - acc:
0.9690 - val_loss:
0.6389 - val_acc:
0.8775
Epoch
15/
50
2000/
2000 [==============================] -
5s - loss:
0.0819 - acc:
0.9705 - val_loss:
0.6256 - val_acc:
0.8975
Epoch
16/
50
2000/
2000 [==============================] -
5s - loss:
0.0821 - acc:
0.9695 - val_loss:
0.6024 - val_acc:
0.8838
Epoch
17/
50
2000/
2000 [==============================] -
5s - loss:
0.0652 - acc:
0.9805 - val_loss:
0.8193 - val_acc:
0.8725
Epoch
18/
50
2000/
2000 [==============================] -
5s - loss:
0.0685 - acc:
0.9765 - val_loss:
0.6938 - val_acc:
0.8762
Epoch
19/
50
2000/
2000 [==============================] -
5s - loss:
0.0512 - acc:
0.9825 - val_loss:
0.6736 - val_acc:
0.8888
Epoch
20/
50
2000/
2000 [==============================] -
5s - loss:
0.0468 - acc:
0.9825 - val_loss:
0.8682 - val_acc:
0.8625
Epoch
21/
50
2000/
2000 [==============================] -
5s - loss:
0.0556 - acc:
0.9830 - val_loss:
0.8739 - val_acc:
0.8725
Epoch
22/
50
2000/
2000 [==============================] -
5s - loss:
0.0311 - acc:
0.9895 - val_loss:
0.7556 - val_acc:
0.8888
Epoch
23/
50
2000/
2000 [==============================] -
5s - loss:
0.0353 - acc:
0.9880 - val_loss:
0.7451 - val_acc:
0.8962
Epoch
24/
50
2000/
2000 [==============================] -
5s - loss:
0.0384 - acc:
0.9885 - val_loss:
0.7958 - val_acc:
0.8725
Epoch
25/
50
2000/
2000 [==============================] -
5s - loss:
0.0407 - acc:
0.9905 - val_loss:
0.7584 - val_acc:
0.8888
Epoch
26/
50
2000/
2000 [==============================] -
5s - loss:
0.0286 - acc:
0.9915 - val_loss:
0.8506 - val_acc:
0.8938
Epoch
27/
50
2000/
2000 [==============================] -
5s - loss:
0.0389 - acc:
0.9875 - val_loss:
0.8518 - val_acc:
0.8825
Epoch
28/
50
2000/
2000 [==============================] -
5s - loss:
0.0173 - acc:
0.9935 - val_loss:
0.9391 - val_acc:
0.8862
Epoch
29/
50
2000/
2000 [==============================] -
5s - loss:
0.0448 - acc:
0.9875 - val_loss:
0.9252 - val_acc:
0.8725
Epoch
30/
50
2000/
2000 [==============================] -
5s - loss:
0.0292 - acc:
0.9920 - val_loss:
0.8644 - val_acc:
0.8912
Epoch
31/
50
2000/
2000 [==============================] -
5s - loss:
0.0197 - acc:
0.9905 - val_loss:
0.8346 - val_acc:
0.8838
Epoch
32/
50
2000/
2000 [==============================] -
5s - loss:
0.0250 - acc:
0.9930 - val_loss:
0.8354 - val_acc:
0.8900
Epoch
33/
50
2000/
2000 [==============================] -
5s - loss:
0.0275 - acc:
0.9910 - val_loss:
0.9280 - val_acc:
0.8762
Epoch
34/
50
2000/
2000 [==============================] -
5s - loss:
0.0233 - acc:
0.9940 - val_loss:
0.9231 - val_acc:
0.8938
Epoch
35/
50
2000/
2000 [==============================] -
5s - loss:
0.0191 - acc:
0.9935 - val_loss:
0.9371 - val_acc:
0.8888
Epoch
36/
50
2000/
2000 [==============================] -
5s - loss:
0.0160 - acc:
0.9950 - val_loss:
1.0164 - val_acc:
0.8688
Epoch
37/
50
2000/
2000 [==============================] -
5s - loss:
0.0129 - acc:
0.9950 - val_loss:
0.9943 - val_acc:
0.8812
Epoch
38/
50
2000/
2000 [==============================] -
5s - loss:
0.0153 - acc:
0.9945 - val_loss:
0.9951 - val_acc:
0.8762
Epoch
39/
50
2000/
2000 [==============================] -
5s - loss:
0.0206 - acc:
0.9905 - val_loss:
1.0088 - val_acc:
0.8938
Epoch
40/
50
2000/
2000 [==============================] -
5s - loss:
0.0123 - acc:
0.9955 - val_loss:
1.0122 - val_acc:
0.8862
Epoch
41/
50
2000/
2000 [==============================] -
5s - loss:
0.0174 - acc:
0.9955 - val_loss:
0.9950 - val_acc:
0.8900
Epoch
42/
50
2000/
2000 [==============================] -
5s - loss:
0.0251 - acc:
0.9945 - val_loss:
1.0275 - val_acc:
0.8850
Epoch
43/
50
2000/
2000 [==============================] -
5s - loss:
0.0193 - acc:
0.9950 - val_loss:
0.9883 - val_acc:
0.8825
Epoch
44/
50
2000/
2000 [==============================] -
5s - loss:
0.0082 - acc:
0.9965 - val_loss:
1.0449 - val_acc:
0.8862
Epoch
45/
50
2000/
2000 [==============================] -
5s - loss:
0.0191 - acc:
0.9950 - val_loss:
1.0368 - val_acc:
0.8900
Epoch
46/
50
2000/
2000 [==============================] -
5s - loss:
0.0200 - acc:
0.9950 - val_loss:
1.0392 - val_acc:
0.8888
Epoch
47/
50
2000/
2000 [==============================] -
5s - loss:
0.0098 - acc:
0.9965 - val_loss:
1.0480 - val_acc:
0.8850
Epoch
48/
50
2000/
2000 [==============================] -
5s - loss:
0.0170 - acc:
0.9955 - val_loss:
1.0748 - val_acc:
0.8925
Epoch
49/
50
2000/
2000 [==============================] -
5s - loss:
0.0118 - acc:
0.9970 - val_loss:
1.0363 - val_acc:
0.8862
Epoch
50/
50
2000/
2000 [==============================] -
5s - loss:
0.0080 - acc:
0.9980 - val_loss:
1.0833 - val_acc:
0.8912
Process finished
with exit code
0
3. 在预训练的网络上fine-tune