This repository has been archived by the owner on Aug 19, 2019. It is now read-only.
/
Train_run_in_colab.ipynb
1004 lines (1004 loc) · 125 KB
/
Train_run_in_colab.ipynb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "4ExqwmBECVgX"
},
"source": [
"## Computer Vision\n",
"# Places Recognizer Project\n",
"\n",
"Mahya Mahdian - 94471039 \n",
"\n",
"Mohammad Hassan Sattarian - 94471035\n",
"\n",
"\n",
"---\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "toc",
"id": "Lx0Py03lhtFc"
},
"source": [
">>[Computer Vision](#scrollTo=4ExqwmBECVgX)\n",
"\n",
">[Project : Places Recognition](#scrollTo=4ExqwmBECVgX)\n",
"\n",
">>[Initializing Colab Environment](#scrollTo=fDQ-HSD3mdfE)\n",
"\n",
">>[training](#scrollTo=AynFlbiZVY9d)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "fDQ-HSD3mdfE"
},
"source": [
"## Initializing Colab Environment"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "BNUSJdJAlIKJ"
},
"source": [
"Unfortunately files are not kept in colabs environment more than 12 hours and this steps are neccesary each time.\n",
"\n",
"##### Importing and using required authentication functions for Transfering data from **Drive** to **Colab**:"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
}
},
"colab_type": "code",
"id": "RKhCeEy7rL_D"
},
"outputs": [],
"source": [
"!pip install -U -q PyDrive # PyDrive is an easy-to-use wrapper for googleOAuth\n",
"import os\n",
"from pydrive.auth import GoogleAuth\n",
"from pydrive.drive import GoogleDrive\n",
"from google.colab import auth\n",
"from oauth2client.client import GoogleCredentials\n",
"\n",
"# Authenticate and create the PyDrive client. remmmber that \n",
"auth.authenticate_user()\n",
"gauth = GoogleAuth()\n",
"gauth.credentials = GoogleCredentials.get_application_default()\n",
"drive = GoogleDrive(gauth)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "wTNQpdOQkXTF"
},
"source": [
"##### Listing files available in Drive directory ***[CV project](https://drive.google.com/drive/folders/1UO9LYakqN6GEvXGRZYNkwPQMAqMARw55?usp=sharing)***\n",
"\n",
"if mentioned directory is not available replace folder-id in following cell with a valid folder-id containing required files (Base model, Weights, Train Script, ...)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 197
},
"colab_type": "code",
"executionInfo": {
"elapsed": 2690,
"status": "ok",
"timestamp": 1528918846668,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "jteLOS_4rSCi",
"outputId": "e3588bf4-4f9c-4f94-b15c-edec5fcb2553"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"title: 4.ipynb, id: 1AHZpmT8wUFFcWeh9dM1K1XL5FUaPuB9W\n",
"title: dataset-fixed.zip, id: 1jdpVeH4nQ-_aP_6GMB6whoQDrDqVifYK\n",
"title: dataset2.zip, id: 1FiIwrRaYA7ihAUWAABxMjWhL4maRuad3\n",
"title: 3_third_run.ipynb, id: 1yczEywMerXZZeJEvr2l-Jep7sokrayp2\n",
"title: places_utils.py, id: 1hzTYJHWq9Hlnl1LeBB5fzheJUhNgeq-G\n",
"title: DriveFUSE.ipynb, id: 1ev4_U1bI3soHd4Cql4cKvTL9GIQRwWSo\n",
"title: dataset.zip, id: 1BzMIOGprUSvjJHO7h6erj8mGmURgqTle\n",
"title: vgg16-places365_weights_tf_dim_ordering_tf_kernels.h5, id: 1fqikchoa4I0XNK1MN8s7SuSFquM2VnFu\n",
"title: vgg16_places_365.py, id: 1Hlpo9W8EERT1afq1fEoEKnR-hxY58hbd\n",
"title: vgg16-places365_weights_tf_dim_ordering_tf_kernels_notop.h5, id: 1pHKIug9GcZPOHG_3j6IPzXz3hjNoikQp\n"
]
}
],
"source": [
"file_list = drive.ListFile( # list files in a drive folder given it's Id\n",
" {'q': \"'1GBXbaaNCrTctlo9YU8ODfmyHCgB-mQXa' in parents\"}).GetList()\n",
"\n",
"for f in file_list:\n",
" # Create & download by id.\n",
" print('title: %s, id: %s' % (f['title'], f['id']))\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "1Je7bHH8mBd9"
},
"source": [
"##### Yet our colab environment is empty!\n",
"\n",
"looking for a proof? :"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 35
},
"colab_type": "code",
"executionInfo": {
"elapsed": 1762,
"status": "ok",
"timestamp": 1528918849048,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "VBRrbUsjr_x3",
"outputId": "51b4293b-a5a8-4cd3-a607-4c2226cc87eb"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"'ls' is not recognized as an internal or external command,\n",
"operable program or batch file.\n"
]
}
],
"source": [
"!ls # terminal commands are accessible using ! operator!"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "w8APRGw1mILf"
},
"source": [
"##### *Transferring* files from Drive to Colab:"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
}
},
"colab_type": "code",
"id": "t0dbYjrSt7oi"
},
"outputs": [],
"source": [
"for f in file_list:\n",
" fname = f['title']\n",
" f_ = drive.CreateFile({'id': f['id']})\n",
" f_.GetContentFile(fname)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "v1KcYGq8mNAf"
},
"source": [
"##### now files are in colab environment:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 143
},
"colab_type": "code",
"executionInfo": {
"elapsed": 1807,
"status": "ok",
"timestamp": 1528918940778,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "FXqYpwRqxfAW",
"outputId": "4e431aab-4f69-4503-d5d7-7ba8fe51e054"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3_third_run.ipynb places_utils.py\r\n",
"4.ipynb\t\t Test\r\n",
"datalab\t\t Train\r\n",
"dataset2.zip\t vgg16_places_365.py\r\n",
"dataset-fixed.zip vgg16-places365_weights_tf_dim_ordering_tf_kernels.h5\r\n",
"dataset.zip\t vgg16-places365_weights_tf_dim_ordering_tf_kernels_notop.h5\r\n",
"DriveFUSE.ipynb\r\n"
]
}
],
"source": [
"!ls"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "CyUm7rWOmREs"
},
"source": [
"##### Unzip images file:"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
}
},
"colab_type": "code",
"id": "4tDA_Y3M6Jod"
},
"outputs": [],
"source": [
"!unzip -aq dataset.zip"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "AynFlbiZVY9d"
},
"source": [
"## training"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "zGkN2Ew1mzcJ"
},
"source": [
"##### Base Model used in this Fine tuning Network is a [VGG16 network pretrained Places365-Standard](https://github.com/GKalliatakis/Keras-VGG16-places365).\n",
"this network is implemented in **vgg16_places_365** file and imported in the code."
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "nOErqxCtoLlE"
},
"source": [
"##### Required libraries and base model (vgg16-places) without fully-connected layers imported. 5 last layers of base model would be *unfrozen*.\n",
"\n",
"##### Then own model based on VGG616:Places365 model with additional fully-connected layers containing 256 and 6 nodes, with, respectively Relu and Softmax as activation functions for detecting nonlinearities and coding result in 6 classes is defined:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 35
},
"colab_type": "code",
"executionInfo": {
"elapsed": 10298,
"status": "ok",
"timestamp": 1528918963897,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "8RkcGBFapp4A",
"outputId": "e5b11805-f689-4951-8a4a-eceffc0c5ab6"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"from vgg16_places_365 import VGG16_Places365\n",
"from keras import layers, models, optimizers\n",
"\n",
"base_model = VGG16_Places365(include_top=False, weights='places', input_shape=(108, 192, 3))\n",
"\n",
"# making 5 last layers *Unfreez*\n",
"for layer in base_model.layers[:12]:\n",
" layer.trainable = True\n",
"\n",
"for layer in base_model.layers[12:]:\n",
" layer.trainable = False\n",
"\n",
"model = models.Sequential()\n",
"model.add(base_model)\n",
"model.add(layers.Flatten())\n",
"model.add(layers.Dense(256, activation='relu'))\n",
"model.add(layers.Dense(6, activation='softmax'))"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "uPEXQ4-dpvTl"
},
"source": [
"##### base model and model summeries are printed. mainly to check trainable data numbers:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 1097
},
"colab_type": "code",
"executionInfo": {
"elapsed": 1434,
"status": "ok",
"timestamp": 1528918976502,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "68FLE2LlqEXk",
"outputId": "00d2374a-e597-48c8-bd8f-1e8919b40e17"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"input_1 (InputLayer) (None, 108, 192, 3) 0 \n",
"_________________________________________________________________\n",
"block1_conv1 (Conv2D) (None, 108, 192, 64) 1792 \n",
"_________________________________________________________________\n",
"block1_conv2 (Conv2D) (None, 108, 192, 64) 36928 \n",
"_________________________________________________________________\n",
"block1_pool (MaxPooling2D) (None, 54, 96, 64) 0 \n",
"_________________________________________________________________\n",
"block2_conv1 (Conv2D) (None, 54, 96, 128) 73856 \n",
"_________________________________________________________________\n",
"block2_conv2 (Conv2D) (None, 54, 96, 128) 147584 \n",
"_________________________________________________________________\n",
"block2_pool (MaxPooling2D) (None, 27, 48, 128) 0 \n",
"_________________________________________________________________\n",
"block3_conv1 (Conv2D) (None, 27, 48, 256) 295168 \n",
"_________________________________________________________________\n",
"block3_conv2 (Conv2D) (None, 27, 48, 256) 590080 \n",
"_________________________________________________________________\n",
"block3_conv3 (Conv2D) (None, 27, 48, 256) 590080 \n",
"_________________________________________________________________\n",
"block3_pool (MaxPooling2D) (None, 13, 24, 256) 0 \n",
"_________________________________________________________________\n",
"block4_conv1 (Conv2D) (None, 13, 24, 512) 1180160 \n",
"_________________________________________________________________\n",
"block4_conv2 (Conv2D) (None, 13, 24, 512) 2359808 \n",
"_________________________________________________________________\n",
"block4_conv3 (Conv2D) (None, 13, 24, 512) 2359808 \n",
"_________________________________________________________________\n",
"block4_pool (MaxPooling2D) (None, 6, 12, 512) 0 \n",
"_________________________________________________________________\n",
"block5_conv1 (Conv2D) (None, 6, 12, 512) 2359808 \n",
"_________________________________________________________________\n",
"block5_conv2 (Conv2D) (None, 6, 12, 512) 2359808 \n",
"_________________________________________________________________\n",
"block5_conv3 (Conv2D) (None, 6, 12, 512) 2359808 \n",
"_________________________________________________________________\n",
"block5_pool (MaxPooling2D) (None, 3, 6, 512) 0 \n",
"=================================================================\n",
"Total params: 14,714,688\n",
"Trainable params: 2,915,648\n",
"Non-trainable params: 11,799,040\n",
"_________________________________________________________________\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"vgg16-places365 (Model) (None, 3, 6, 512) 14714688 \n",
"_________________________________________________________________\n",
"flatten_1 (Flatten) (None, 9216) 0 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 256) 2359552 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 6) 1542 \n",
"=================================================================\n",
"Total params: 17,075,782\n",
"Trainable params: 5,276,742\n",
"Non-trainable params: 11,799,040\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"base_model.summary()\n",
"model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "N2AVzQ8JqFoZ"
},
"source": [
"##### data agumentation methods are used to achive better result; methods to augument images selected according to real-life situations to simulate real cases."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 53
},
"colab_type": "code",
"executionInfo": {
"elapsed": 2778,
"status": "ok",
"timestamp": 1528919020469,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "ZZYp52SItlT4",
"outputId": "40230490-5d7a-4d9b-f996-56e8a83a819f"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 2971 images belonging to 6 classes.\n",
"Found 1796 images belonging to 6 classes.\n"
]
}
],
"source": [
"from keras.preprocessing.image import ImageDataGenerator\n",
"\n",
"train_datagen = ImageDataGenerator(\n",
" rescale=1./255,\n",
" rotation_range=40,\n",
" shear_range=0.2,\n",
" zoom_range=0.2,\n",
" fill_mode='nearest'\n",
")\n",
"\n",
"# Note that the validation data should not be augmented!\n",
"test_datagen = ImageDataGenerator(rescale=1./255)\n",
"\n",
"# data generators are used to feed the network from **Train** and **Test** directories.\n",
"train_dir = 'Train'\n",
"validation_dir = 'Test'\n",
"\n",
"train_generator = train_datagen.flow_from_directory(\n",
" # This is the target directory\n",
" train_dir,\n",
" # All images will be resized to 150x150\n",
" target_size=(108, 192),\n",
" batch_size=20,\n",
" # Since we use binary_crossentropy loss, we need binary labels\n",
" class_mode='categorical')\n",
"\n",
"validation_generator = test_datagen.flow_from_directory(\n",
" validation_dir,\n",
" target_size=(108, 192),\n",
" batch_size=20,\n",
" class_mode='categorical')\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "VEj7ceP9tmXw"
},
"source": [
"##### Compiling the model with *categorical_crossentropy* loss 'cause our problem is categorical using RMSProp optimizer and *accuracy* metrics; then fitting it with created generators within 30 epochs.\n",
"(this step would take some time!)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 397
},
"colab_type": "code",
"executionInfo": {
"elapsed": 542464,
"status": "ok",
"timestamp": 1528919581131,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "c9nHUls46XdH",
"outputId": "53b3dc30-30d3-4144-b53d-f727c9f85605"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/10\n",
"149/149 [==============================] - 60s 406ms/step - loss: 0.8934 - acc: 0.7796 - val_loss: 0.6186 - val_acc: 0.8703\n",
"Epoch 2/10\n",
"149/149 [==============================] - 53s 357ms/step - loss: 0.3518 - acc: 0.9695 - val_loss: 0.4202 - val_acc: 0.9488\n",
"Epoch 3/10\n",
"144/149 [===========================>..] - ETA: 1s - loss: 0.2761 - acc: 0.9903149/149 [==============================] - 53s 357ms/step - loss: 0.2752 - acc: 0.9906 - val_loss: 0.4083 - val_acc: 0.9555\n",
"Epoch 4/10\n",
"149/149 [==============================] - 53s 357ms/step - loss: 0.2600 - acc: 0.9903 - val_loss: 0.3628 - val_acc: 0.9699\n",
"Epoch 5/10\n",
"149/149 [==============================] - 53s 357ms/step - loss: 0.2486 - acc: 0.9956 - val_loss: 0.3315 - val_acc: 0.9744\n",
"Epoch 6/10\n",
" 29/149 [====>.........................] - ETA: 34s - loss: 0.2433 - acc: 1.0000149/149 [==============================] - 53s 357ms/step - loss: 0.2450 - acc: 0.9977 - val_loss: 0.4051 - val_acc: 0.9549\n",
"Epoch 7/10\n",
"149/149 [==============================] - 53s 357ms/step - loss: 0.2380 - acc: 0.9987 - val_loss: 0.3459 - val_acc: 0.9744\n",
"Epoch 8/10\n",
"149/149 [==============================] - 53s 357ms/step - loss: 0.2385 - acc: 0.9980 - val_loss: 0.3573 - val_acc: 0.9749\n",
"Epoch 9/10\n",
" 10/149 [=>............................] - ETA: 40s - loss: 0.2315 - acc: 1.0000149/149 [==============================] - 53s 357ms/step - loss: 0.2387 - acc: 0.9970 - val_loss: 0.3369 - val_acc: 0.9744\n",
"Epoch 10/10\n",
"149/149 [==============================] - 53s 356ms/step - loss: 0.2345 - acc: 0.9993 - val_loss: 0.3969 - val_acc: 0.9588\n"
]
}
],
"source": [
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=optimizers.RMSprop(lr=2e-5),\n",
" metrics=['acc'])\n",
"\n",
"history = model.fit_generator(\n",
" train_generator,\n",
" steps_per_epoch=149,\n",
" epochs=10,\n",
" validation_data=validation_generator,\n",
" validation_steps=90)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### showing visualizations of model\n",
" *Training and validation accuracy*\n",
" and\n",
" *Training and validation loss*\n",
" plots"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 707
},
"colab_type": "code",
"executionInfo": {
"elapsed": 3928,
"status": "ok",
"timestamp": 1528919725001,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "gL7pKzMf4wWe",
"outputId": "c5788a61-4596-4e24-9249-6a59e392198b"
},
"outputs": [
{
"data": {
"image/png": "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\nnKOiokhPT89/fOTIESIjIwHYs2cPDRo0ICIiAoA2bdqwdetW7rjjDho3bgzADTfcwLFjx3C5XFgs\nxYdvRkZOmd7I+SIjw0hLO1mu25TCVGf/UJ39R7X2D9W55C8npR7W7tChAykpKQBs27aNqKgoQkND\nAYiOjmbPnj2cPn0agK1bt3LllVfyxhtv8MknnwCwa9cuIiIiSgxmEREROavUnnPr1q1p0aIFcXFx\nmEwmpk2bRmJiImFhYcTGxjJq1CiGDx+OxWLhhhtuoE2bNtSvX5+HHnqId999F6fTyYwZM/zxXkRE\nRIKCyXPuSeQAKu/DGzpk4h+qs3+ozv6jWvuH6lzGw9oiIiLiXwpnERERg1E4i4iIGIzCWURExGAU\nziIiIgajcBYRETEYhbOIiIjBKJxFREQMRuEsIiJiMApnERERg1E4i4iIGIzCWURExGAUziIiIgaj\ncBYRETEYhbOIiIjBKJxFREQMRuEsIiJiMApnERERg1E4i4iIGIzCWURExGAUziIiIgajcBYRETEY\nhbOIiIjBKJxFREQMRuEsIiJiMApnERERg1E4i4iIGIzCWURExGAUziIiIgajcBYRETEYhbOIiIjB\nKJxFREQMRuEsIiJiMApnERERg1E4i4iIGIzCWURExGAUziIiIgajcBYRETEYhbOIiIjBKJxFREQM\nRuEsIiJiMApnERERg1E4i4iIGIzCWURExGAUziIiIgajcBYRETEYhbOIiIjBKJxFREQMRuEsIiJi\nMApnERERg1E4i4iIGIzCWURExGAUziIiIgZjvZAnzZw5kx9++AGTyUR8fDytWrXK/92yZcv46KOP\nMJvNtGzZksceewyHw8GUKVM4ePAgFouFp59+mgYNGvjsTYiIiASTUnvOmzZtYt++fSQkJDBjxgxm\nzJiR/7usrCwWLlzIsmXLWL58OXv27OH777/nk08+oXr16ixfvpyxY8cye/Zsn74JERGRYFJqOG/Y\nsIGYmBgAGjduTGZmJllZWQDYbDZsNhs5OTk4nU5OnTpFjRo12LBhA7GxsQC0b9+eLVu2+PAtiIiI\nBJdSwzk9PZ3w8PD8xxEREaSlpQEQEhLChAkTiImJoUuXLlx33XU0atSI9PR0IiIivC9gNmMymcjL\ny/PRWxAREQkuF3TO+Vwejyf/56ysLObPn09ycjKhoaGMGDGCnTt3lrhOccLDq2G1Wi62OSWKjAwr\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f13aeff4780>"
]
},
"metadata": {
"tags": []
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nqamphIWF0adPH0aMGMHQoUOx2Wx07tyZyy67zBftFhER8XsW4+STvD5Q2+cGdL7Bd1Rr31CdfUN1\n9g3V2aPa54RFRETEOxTCIiIiJlEIi4iImEQhLCIiYhKFsIiIiEkUwiIiIiZRCIuIiJhEISwiImIS\nhbCIiIhJFMIiIiImUQiLiIiYRCEsIiJiEoWwiIiISRTCIiIiJlEIi4iImEQhLCIiYhKFsIiIiEkU\nwiIiIiZRCIuIiJhEISwiImIShbCIiIhJFMIiIiImUQiLiIiYRCEsIiJiEoWwiIiISRTCIiIiJlEI\ni4iImEQhLCIiYhKFsIiIiEkUwiIiIiZRCIuIiJhEISwiImISe1VelJyczObNm7FYLCQmJtKpUycA\nfv/9dx599NHS1+3bt4/x48fTv39/77RWRESkHqk0hNevX8+ePXtISUlh165dJCYmkpKSAkCLFi1Y\ntGgRAE6nkyFDhtCrVy/vtlhERKSeqPRw9Nq1a4mLiwOgTZs25Obmkp+ff8rrli5dSt++fWncuHHt\nt1JERKQeqjSEs7KyCA8PL30eERFBZmbmKa97//33uf3222u3dSIiIvVYlc4Jn8wwjFOWbdq0iQsu\nuIDQ0NBK1w8PD8Fut53p255WZGRYrW5PKqZa+4bq7Buqs2+ozhWrNISjoqLIysoqfX7o0CEiIyPL\nvGbNmjV069atSm+YnV14hk08vcjIMDIz82p1m1I+1do3VGffUJ19Q3X2qOiLSKWHo7t37056ejoA\nW7duJSoq6pQe748//kj79u1roZkiIiINR6U94S5duhAbG0tCQgIWi4WkpCRSU1MJCwujT58+AGRm\nZtKsWTOvN1ZERKQ+sRjlneT1oto+LKFDHb6jWvuG6uwbqrNvqM4e1T4cLSIiIt6hEBYRETGJQlhE\nRMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYRER\nEZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURE\nTKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkfh3Cu3dbuOkm+PVXi9lNERER\nOWN2sxtQE4cOWfj4Y8jPDyYlpcjs5oiIiJwRv+4J/+UvbuLi4PPP7Xz+uc3s5oiIiJwRvw5hiwWe\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f13b0056710>"
]
},
"metadata": {
"tags": []
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"acc = history.history['acc']\n",
"val_acc = history.history['val_acc']\n",
"loss = history.history['loss']\n",
"val_loss = history.history['val_loss']\n",
"\n",
"epochs = range(len(acc))\n",
"\n",
"plt.plot(epochs, acc, 'bo', label='Training acc')\n",
"plt.plot(epochs, val_acc, 'b', label='Validation acc')\n",
"plt.title('Training and validation accuracy')\n",
"plt.legend()\n",
"\n",
"plt.figure()\n",
"\n",
"plt.plot(epochs, loss, 'bo', label='Training loss')\n",
"plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
"plt.title('Training and validation loss')\n",
"plt.legend()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "g1FOREzmuelJ"
},
"source": [
"##### finally for testing, an unseen image is down/loaded and used for prediction:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 320
},
"colab_type": "code",
"executionInfo": {
"elapsed": 2339,
"status": "ok",
"timestamp": 1528920193788,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "idfDhZ12bDOs",
"outputId": "efa44582-e440-4d1f-8987-fe4c7544f4a1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0. 0. 1. 0. 0. 0.]]\n"
]
},
{
"data": {
"image/png": "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\n7d69O/rIRz7SBglbR9tc1tu3b8d73/teAMAJJ5yAQ4cOYWJiol3iHFa87W1vw0MPPQQAWLRoEaan\np4Po944G7NixA+95z3sAABdccAG2b9/eZokOPx555BHccMMN7RbjsKFYLGLr1q1Yvnx5/Ribx+ef\nfx6nnXYaBgYG0N3djbPOOgs7d+5sl9gtg93nHXfcgQ984AMAapbTwYMH2yXeYQO7T4ajcT4NXn31\nVYyPjx9xXte2/SDv27cPQ0ND9c9LlizB3r172yXOYUUul6u7MZ966in81V/9FXK5HJ544glcffXV\n+OxnP4v9+/e3WcrDg1deeQWf+cxn8LGPfQz//u//junp6bqLeunSpUfNnBr86le/wsqVKzE8PAwA\nePjhh/GJT3wCmzdvppy3RwLy+bzDt8vmcd++fViyZEn9nCPtmWX32dvbi1wuh0qlgieffBKXXHIJ\ngBov87p163DVVVfhm9/8ZjvEnTfYfQJw3j9H43wa/NM//RNGRkbqn/ft24dbbrkFV111VWLrqdPQ\n1j1kG9FRyOD5L//yL3jqqafw6KOP4oUXXsDg4CBOPvlkfP3rX8eXv/xlbN68ud0iLghr1qzBTTfd\nhA9+8IPYvXs3rr766oQn4Gic06eeegof+chHAABXX301TjzxRKxatQp33HEHvv3tb+Paa69ts4SH\nH2nzeLTMb6VSwfr163HOOefg3HPPBQCsX78eH/7wh5HJZDAyMoK1a9fitNNOa7Ok88df//VfO++f\nv/zLv0ycc7TM59zcHH75y19iy5YtAIDBwUHceuut+PCHP4zx8XFcfvnlOOecc5p6ENqBtlnIy5cv\nx759++qfX3/99brVcTTg3/7t3/DVr34VW7duxcDAAM4991ycfPLJAIALL7wQL7/8cpslXDhWrFiB\nD33oQ8hkMli1ahWWLVuGQ4cO1S3F0dHRjlz0C8GOHTvqL7L3ve99WLVqFYCjZ04Nent7nXlkz+zR\nML+33347Vq9ejZtuuql+7GMf+xj6+vrQ29uLc84554ifW/b+OVrn8+c//3nCVd3f34+PfvSjKBQK\nWLJkCU499VS8+uqrbZQwHW37QX7HO96BZ599FgDw4osvYvny5ejv72+XOIcV4+PjuO+++/C1r32t\nHtV48803Y/fu3QBqL3UTmXwkY9u2bfjGN74BANi7dy/eeOMNXHbZZfV5fe6553D++ee3U8TDitHR\nUfT19aFYLCKKIlxzzTUYGxsDcPTMqcF5553nzOMZZ5yBXbt2YWxsDJOTk9i5cyfWrl3bZkkXhm3b\ntqFQKOCWW26pH3v11Vexbt06RFGEcrmMnTt3HvFzy94/R+N8AsCuXbtw0kkn1T//7Gc/wz333AOg\nVmbxpZdewvHHH98u8bxom8v6rLPOwimnnIKrrroKmUwGd9xxR7tEOex45plncODAAdx22231Y5dd\ndhluu+029PT0oLe3t75AjmRceOGF+NznPod//dd/RalUwpYtW3DyySdjw4YN+M53voNjjz0Wl156\nabvFPGzYu3dvfc8tk8ngiiuuwDXXXIOenh6sWLECN998c5slnB9eeOEF3HvvvdizZw/y+TyeffZZ\nPPDAA9i4cWNiHguFAtatW4drr70WmUwGN954IwYGBtotfjDYfb7xxhvo6urCJz/5SQC1ANMtW7bg\nmGOOwd/8zd8gm83iwgsvPKKCg9h9joyMOO+f7u7uo24+v/SlL2Hv3r11zxUArF27Fk8//TSuvPJK\nVCoVXH/99VixYkUbJU+Hll9UKBQKhaIDoExdCoVCoVB0APQHWaFQKBSKDoD+ICsUCoVC0QHQH2SF\nQqFQKDoA+oOsUCgUCkUHQH+QFQqFQqHoAOgPskKhUCgUHQD9QVYoFAqFogPw/wFMMugGNQDs5wAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f13b00d5438>"
]
},
"metadata": {
"tags": []
},
"output_type": "display_data"
}
],
"source": [
"from keras.preprocessing import image\n",
"import numpy as np\n",
"from keras.applications.imagenet_utils import _obtain_input_shape\n",
"from places_utils import preprocess_input # places_utiles file is provided by VGG16:places contributors.\n",
"\n",
"# labels ordered corresponding to recognized classes by model.\n",
"# extracted from --> label_map = (train_generator.class_indices)\n",
"labels = ['Architect Campus', 'Buffet', 'Computer Campus', 'Culture house', 'Field', 'Self']\n",
"\n",
"# downloafing unseen image\n",
"!wget https://image.ibb.co/e0iWXy/CC_807.jpg # image in 'Computer Campus' category\n",
"\n",
"# predicting\n",
"img_path = 'CC_807.jpg'\n",
"img = image.load_img(img_path, target_size=(108, 192))\n",
"plt.imshow(img) # showing image in cell's output (if not showing add '%matplotlib inline')\n",
"x = image.img_to_array(img)\n",
"x = np.expand_dims(x, axis=0)\n",
"x = preprocess_input(x)\n",
"\n",
"# printing prediction \n",
"prediction = model.predict(x)\n",
"# y_classes = y_prob.argmax() # --> uncomment for printing it's most probable Class Number\n",
"# y_true_labels = train_generator.classes # --> uncomment for printing each train image Class Number\n",
"print (prediction)\n",
"\n",
"# Printing each class probability\n",
"for i, p in enumerate(prediction[0]):\n",
" print('%s Probability: \\t %f' % (labels[i], p))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Save and Backup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Saving model for further use:"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
}
},
"colab_type": "code",
"id": "lATTgJLsAFJ1"
},
"outputs": [],
"source": [
"model.save('model.h5')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### transferring saved model to google drive:"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
},
"base_uri": "https://localhost:8080/",
"height": 35
},
"colab_type": "code",
"executionInfo": {
"elapsed": 4120,
"status": "ok",
"timestamp": 1528920579931,
"user": {
"displayName": "m.hassan sattarian",
"photoUrl": "//lh4.googleusercontent.com/-g7CXt89YadI/AAAAAAAAAAI/AAAAAAAACN8/B_KMRZkKYjA/s50-c-k-no/photo.jpg",
"userId": "114996396191740313928"
},
"user_tz": -270
},
"id": "AEoOYA5QghKP",
"outputId": "a6a9129e-6f1c-44e3-bf23-755ec69f1eb2"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File ID: 1ex24S7_CPRKO6eRHey_jDe8rOSiRB0I0\n"
]
}
],
"source": [
"from googleapiclient.http import MediaFileUpload\n",
"from googleapiclient.discovery import build\n",
"drive_service = build('drive', 'v3')\n",
"\n",
"file_metadata = {\n",
" 'name': 'SRU_Places_6.h5', # name of the saved file\n",
" 'mimeType': 'text/plain' # type of the saved file\n",
"}\n",
"media = MediaFileUpload('model.h5', # name of existing file\n",
" mimetype='text/plain',\n",
" resumable=True)\n",
"created = drive_service.files().create(body=file_metadata,\n",
" media_body=media,\n",
" fields='id').execute()\n",
"print('File ID: {}'.format(created.get('id'))) # after successful transfer FileId would be printed"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"autoexec": {
"startup": false,
"wait_interval": 0
}
},
"colab_type": "code",
"id": "vNBFaDjSodSY"
},
"outputs": [],
"source": []
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [],
"default_view": {},
"name": "4.ipynb",
"provenance": [],
"version": "0.3.2",
"views": {}
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}