File size: 11,889 Bytes
0182da2 | 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 | 1
00:00:00,390 --> 00:00:06,030
Hi and welcome to 12. tree where we start building our fruit classifier and we start using some of these
2
00:00:06,030 --> 00:00:08,290
callbacks we learnt in the previous section.
3
00:00:08,670 --> 00:00:13,110
So let's talk a bit about fruit datasets called fruit 360.
4
00:00:13,110 --> 00:00:16,440
Basically it was it was part of a Kaggle competition.
5
00:00:16,530 --> 00:00:18,530
This is a link to the actual dataset here.
6
00:00:18,780 --> 00:00:21,460
It consists of 81 types of fruits.
7
00:00:21,840 --> 00:00:28,770
That's 81 classes and approximately 45 images per class and all images are rendered by 100 pixels and
8
00:00:28,770 --> 00:00:30,000
in color.
9
00:00:30,660 --> 00:00:33,040
So these are some examples of fruits here.
10
00:00:34,030 --> 00:00:36,780
Honestly I can't identify some of these myself.
11
00:00:37,420 --> 00:00:40,950
But you we're going to try and justify it to do just that.
12
00:00:40,970 --> 00:00:43,480
So let's go to I put it in the book.
13
00:00:43,810 --> 00:00:44,080
OK.
14
00:00:44,080 --> 00:00:47,860
So here we are at Chapter 12 the building of a fruit classifier.
15
00:00:47,890 --> 00:00:49,040
Let's bring up this file.
16
00:00:50,100 --> 00:00:54,400
But before we begin I hope you downloaded your fruit trees 60 datasets.
17
00:00:54,760 --> 00:00:58,290
And I wanted you to put that at File.
18
00:00:58,290 --> 00:00:59,630
Let's go to it here.
19
00:01:00,090 --> 00:01:03,450
Into this folder that it should have extracted into this for the here.
20
00:01:03,930 --> 00:01:08,850
And basically I want you to make sure that it's named train and validation.
21
00:01:08,850 --> 00:01:14,480
It should be as I've zipped it or compressed it correctly and you can take a look at the fruits here.
22
00:01:14,520 --> 00:01:20,540
So you can take a look at some mangoes of mangos all look quite similar to each other.
23
00:01:20,940 --> 00:01:21,210
OK.
24
00:01:21,220 --> 00:01:22,450
So let's go back to this here.
25
00:01:22,500 --> 00:01:33,610
So let's go back to the book and Firstly like we have done in our dogs with cats CNN we declare our
26
00:01:33,630 --> 00:01:39,380
doctors here and we just create some image data generators for training and validation and are trained
27
00:01:39,380 --> 00:01:44,400
and ready to and validation generates a notice with no categorical and binary.
28
00:01:44,730 --> 00:01:48,780
And also notice we have to declare a number of classes here as well.
29
00:01:48,860 --> 00:01:54,830
This dataset even though the data set is encoded into 100 by 100 pixels I'm going to use a resize as
30
00:01:54,840 --> 00:01:58,890
to the two Bertelli to basically make our training faster.
31
00:01:59,010 --> 00:02:02,090
We use a similar scene and never used for Safar here as well.
32
00:02:04,470 --> 00:02:10,680
And then we declare this is important but that's creates all callbacks So as you can see in the presentation
33
00:02:11,160 --> 00:02:17,430
this one is a checkpoint Colback and checkpointing basically ensures I received a best model after every
34
00:02:17,430 --> 00:02:17,810
box.
35
00:02:17,820 --> 00:02:23,550
If you train for 20 bucks and the best model is an e-book 16 it'll be that will be the one we save here.
36
00:02:24,060 --> 00:02:24,840
We need to specify.
37
00:02:24,840 --> 00:02:28,910
Finally I'm actually didn't mention that in our slides but it's much just the directory it's actually
38
00:02:28,910 --> 00:02:32,590
a file and we want to see it as otherwise it will not work.
39
00:02:32,630 --> 00:02:38,760
Ill be stopping here really stopping the problems as we have said here and it is something basically
40
00:02:38,760 --> 00:02:45,540
tells us when if this thing has stopped improving it'll stop letting the plateau which wasn't actually
41
00:02:45,540 --> 00:02:47,340
used in this example here.
42
00:02:47,430 --> 00:02:50,640
However we could have used it in another example it really happens.
43
00:02:50,640 --> 00:02:55,820
Unless you have training for exhaustive number of ebox but it's always good to have it just in case.
44
00:02:55,920 --> 00:02:59,880
So we create our callbacks here and actually did not add it in here.
45
00:03:00,150 --> 00:03:01,440
Quickly put it in.
46
00:03:01,730 --> 00:03:07,620
And basically what we do when we compile sorry not comparable with that model is that we point our callbacks
47
00:03:07,620 --> 00:03:10,180
to a callback array here.
48
00:03:10,410 --> 00:03:18,870
So as you can see you know we've trained for five hypoxia and basically you can see this up with this.
49
00:03:19,290 --> 00:03:23,740
Basically this tells us that a model was saved to hear after every epoch.
50
00:03:24,090 --> 00:03:29,460
And basically what happened is that after here it noted that valediction loss didn't improve didn't
51
00:03:29,460 --> 00:03:30,150
improve.
52
00:03:30,330 --> 00:03:33,680
If we are trained for more ebox which I probably should have left it for this example.
53
00:03:33,690 --> 00:03:39,330
But if we are trained for more POCs we would've initiated the stopping metric and this would have stopped
54
00:03:39,330 --> 00:03:40,260
training.
55
00:03:40,260 --> 00:03:47,760
So basically I could have said it to train at 10 epochs which I probably should have done away with
56
00:03:47,760 --> 00:03:47,850
it.
57
00:03:47,850 --> 00:03:49,020
I did find a box here.
58
00:03:49,020 --> 00:03:49,620
Sorry.
59
00:03:49,980 --> 00:03:51,410
And you can do it on your own.
60
00:03:51,450 --> 00:03:58,140
Set it to return the box and train it and you'll see it's going to stop after maybe six ebox.
61
00:03:58,230 --> 00:04:00,640
So let's take a look at the confusion metrics here.
62
00:04:00,900 --> 00:04:04,250
It's not printed correctly and I'll show you how we solve this too.
63
00:04:04,470 --> 00:04:08,120
And that's because we have 81 classes in this year.
64
00:04:08,260 --> 00:04:12,560
Our pacification report is well laid out.
65
00:04:12,570 --> 00:04:17,570
But it's a bit tedious to read don't get a ton of information unless you actually drill down and see
66
00:04:17,570 --> 00:04:20,510
something like oh pomegranates are basically bad.
67
00:04:20,890 --> 00:04:29,150
OK so here's another way to visualize the confusion matrix which was probably not best visualize at
68
00:04:29,150 --> 00:04:30,330
all like that.
69
00:04:31,610 --> 00:04:32,270
So here we go.
70
00:04:32,300 --> 00:04:36,720
Now there's a problem here with this we can actually increase the plot size here.
71
00:04:36,710 --> 00:04:40,570
Let's try 20 by 20.
72
00:04:40,700 --> 00:04:43,280
I'll probably take about maybe 10 seconds to run.
73
00:04:44,400 --> 00:04:47,200
Of Allision that did degenerate that isn't run.
74
00:04:47,200 --> 00:04:51,280
So let's quickly go back here and run this in the beginning.
75
00:04:51,430 --> 00:04:54,980
It's good that actually you actually see these areas and see how I solve it.
76
00:04:55,510 --> 00:04:55,960
OK.
77
00:04:56,290 --> 00:04:59,790
That's because when the book was saved would actually run.
78
00:05:00,040 --> 00:05:02,200
And let's run this this should work now.
79
00:05:04,170 --> 00:05:06,500
It's loading on model that's a model I see.
80
00:05:06,520 --> 00:05:12,120
Prior to training that one I think it was a fairly good model if I'm not mistaken.
81
00:05:23,260 --> 00:05:23,710
There we go.
82
00:05:23,740 --> 00:05:27,320
So this 20 20 did make a nice difference.
83
00:05:27,380 --> 00:05:29,360
We have a nice legend here as well.
84
00:05:29,530 --> 00:05:33,690
So you can see there's a nice diagonal in the middle here.
85
00:05:33,940 --> 00:05:35,570
So that is good.
86
00:05:35,590 --> 00:05:38,110
Now we can see little spots here and there.
87
00:05:38,170 --> 00:05:39,490
This one is here.
88
00:05:39,500 --> 00:05:41,600
I'm not sure what it is corresponds to.
89
00:05:41,920 --> 00:05:42,700
Let's see.
90
00:05:42,700 --> 00:05:44,280
Looks like kumquats.
91
00:05:44,320 --> 00:05:50,300
And it's been mixed up with and I think this is mandarin's entirely sure.
92
00:05:50,330 --> 00:05:55,720
But you can analyze this on your own and take a look and see what's being confused as what.
93
00:05:55,720 --> 00:05:59,960
So this is a nice visual representation of all confusion matrix here.
94
00:06:00,690 --> 00:06:01,610
OK.
95
00:06:01,990 --> 00:06:04,550
So let's test this here.
96
00:06:04,570 --> 00:06:09,270
Now I've created this open see the thing that actually brings up our fruits and tells us to predict
97
00:06:09,280 --> 00:06:11,250
value and what it actually was.
98
00:06:11,470 --> 00:06:12,580
So let's run this.
99
00:06:12,590 --> 00:06:13,200
Here we are.
100
00:06:13,450 --> 00:06:16,890
So predicted a passion for it actually was a passion for it.
101
00:06:16,930 --> 00:06:19,090
And that is not whole depression.
102
00:06:19,120 --> 00:06:22,220
I've seen look but fair enough.
103
00:06:22,220 --> 00:06:26,760
Brandied is a red banana and it got it correctly as a red banana tomato tree.
104
00:06:26,760 --> 00:06:29,860
I think that's type tree good here.
105
00:06:30,830 --> 00:06:31,470
Group.
106
00:06:31,530 --> 00:06:32,640
White or green.
107
00:06:32,640 --> 00:06:34,390
Looks like a light green to me.
108
00:06:34,440 --> 00:06:35,520
Avocado ripe.
109
00:06:35,520 --> 00:06:35,910
Good to know.
110
00:06:35,920 --> 00:06:37,410
That's right.
111
00:06:37,950 --> 00:06:40,910
Goldberry said actually getting everything right.
112
00:06:40,980 --> 00:06:43,460
This is quite quite good classify.
113
00:06:44,190 --> 00:06:48,330
And basically we can take a look at old classified results which probably should have mentioned before
114
00:06:48,750 --> 00:06:50,530
it is 3 percent.
115
00:06:50,730 --> 00:06:52,410
But is that the one we actually use.
116
00:06:52,410 --> 00:06:53,190
No.
117
00:06:53,190 --> 00:06:57,600
The one we actually would be with checkpointing which is very useful.
118
00:06:57,610 --> 00:07:03,060
The one we actually use probably was one of about 92 points of nine percent almost 90 percent after
119
00:07:03,070 --> 00:07:04,050
destry pox.
120
00:07:04,140 --> 00:07:08,280
In each Epopt of what just over five under five minutes to run.
121
00:07:08,280 --> 00:07:12,250
So this is quite good for treating such a complicated dataset using OCP.
122
00:07:12,750 --> 00:07:14,950
So let's just run it want one more time.
123
00:07:14,970 --> 00:07:17,780
Let's see if we get Shirleys get 1 in 10 wrong.
124
00:07:17,850 --> 00:07:19,080
It's a good one.
125
00:07:19,080 --> 00:07:20,460
We're all very good.
126
00:07:20,520 --> 00:07:23,220
So yes pomegranates are a problem.
127
00:07:23,220 --> 00:07:25,790
I'll be fair to be fair to stars that I can apply to me.
128
00:07:25,830 --> 00:07:29,060
However this part of it is something like an apple good.
129
00:07:29,220 --> 00:07:32,610
So everything else is correct.
130
00:07:32,670 --> 00:07:36,630
So that's it for basically using carrots is called Back future.
131
00:07:36,860 --> 00:07:40,970
We've seen checkpoints stopping and leaning read adjustments on too.
132
00:07:41,340 --> 00:07:42,340
That's it for the Shapter.
|