در این مطلب، ویدئو طبقه بندی تصاویر با MobileNetV2 با استفاده از Keras و Python [بخش 3] با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:39
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:01,839
سلام نام من سباستین ماتو است و
2
00:00:01,839 –> 00:00:04,000
به این سومین
3
00:00:04,000 –> 00:00:06,319
آموزش ویدیویی در سری
4
00:00:06,319 –> 00:00:08,559
آموزش عمیق پایتون با kiras خوش آمدید،
5
00:00:08,559 –> 00:00:10,400
اکنون در آموزش قبلی دیدیم که چگونه
6
00:00:10,400 –> 00:00:12,559
می توانید از kiras برای ساخت یک
7
00:00:12,559 –> 00:00:14,960
شبکه عصبی پایه بسیار ساده سه لایه استفاده کنید و
8
00:00:14,960 –> 00:00:16,400
چگونه شما می توانید آن را آموزش دهید و
9
00:00:16,400 –> 00:00:18,080
با آن پیش بینی کنید،
10
00:00:18,080 –> 00:00:20,160
اما البته یادگیری عمیق
11
00:00:20,160 –> 00:00:21,119
کار با
12
00:00:21,119 –> 00:00:22,880
شبکه های سه لایه نیست، بلکه
13
00:00:22,880 –> 00:00:24,640
کار با شبکه های بسیار بزرگی است که
14
00:00:24,640 –> 00:00:27,359
از ده ها یا صدها لایه تشکیل شده است،
15
00:00:27,359 –> 00:00:28,640
بنابراین این کاری است که ما در آن انجام خواهیم داد. در این
16
00:00:28,640 –> 00:00:30,640
آموزش قصد نداریم یکی از
17
00:00:30,640 –> 00:00:32,320
این مدل ها را خودمان بسازیم بلکه
18
00:00:32,320 –> 00:00:33,280
19
00:00:33,280 –> 00:00:37,120
یک مدل از پیش آموزش دیده موبایل نت نسخه 2 را دانلود
20
00:00:37,120 –> 00:00:38,480
می کنیم و از موبایل نت
21
00:00:38,480 –> 00:00:41,920
نسخه 2 برای طبقه بندی تصویر استفاده
22
00:00:41,920 –> 00:00:45,440
می کنیم پس بیایید با شروع وارد کردن وارد کردن
23
00:00:45,440 –> 00:00:48,559
24
00:00:48,559 –> 00:00:52,239
25
00:00:52,239 –> 00:00:56,000
موبایل نت نسخه 2. و سپس من می گویم از برنامه های kiras dot نسخه موبایل نت
26
00:00:56,000 –> 00:00:59,600
نسخه 2 را وارد کنید
27
00:00:59,600 –> 00:01:02,719
.
28
00:01:02,719 –> 00:01:04,479
29
00:01:04,479 –> 00:01:05,680
30
00:01:05,680 –> 00:01:06,560
31
00:01:06,560 –> 00:01:09,119
شبکه عصبی عمیق
32
00:01:09,119 –> 00:01:10,960
نسبتاً کوچک که نسبتاً کوچک است زیرا
33
00:01:10,960 –> 00:01:13,360
برای استفاده در دستگاه های تلفن همراه در نظر گرفته شده
34
00:01:13,360 –> 00:01:15,280
است بنابراین از نظر تعداد پارامترها کمی کوچکتر
35
00:01:15,280 –> 00:01:16,799
36
00:01:16,799 –> 00:01:17,759
از vgg
37
00:01:17,759 –> 00:01:19,680
19 است اما در واقع
38
00:01:19,680 –> 00:01:21,119
از نظر عملکرد
39
00:01:21,119 –> 00:01:22,320
کاملاً مطمئن است. برای انواع کارهایی که
40
00:01:22,320 –> 00:01:25,119
در اینجا قرار است انجام دهیم کاملاً قابل مقایسه است،
41
00:01:25,119 –> 00:01:29,360
بنابراین من دوست دارم اکنون از آن استفاده
42
00:01:29,360 –> 00:01:32,079
کنم چگونه این مدل را دانلود یا نمونه سازی
43
00:01:32,079 –> 00:01:33,040
44
00:01:33,040 –> 00:01:35,920
کنیم، گفتیم مدل واقعاً به همین سادگی است
45
00:01:35,920 –> 00:01:36,560
بنابراین
46
00:01:36,560 –> 00:01:39,600
واقعاً نسخه موبایل نت 2 بسیار زیبایی است.
47
00:01:39,600 –> 00:01:40,799
اولین باری که
48
00:01:40,799 –> 00:01:42,720
اجرا کردید اگر بخواهید در واقع آن را از اینترنت دانلود می کنید
49
00:01:42,720 –> 00:01:45,200
،
50
00:01:45,200 –> 00:01:47,600
اگر آن را به
51
00:01:47,600 –> 00:01:48,880
این شکل صدا می کنید، معماری مدل را دریافت
52
00:01:48,880 –> 00:01:49,680
53
00:01:49,680 –> 00:01:51,680
می کنید اما از قبل آموزش داده نشده است، بنابراین
54
00:01:51,680 –> 00:01:53,520
55
00:01:53,520 –> 00:01:54,960
اگر می خواهید همه وزن ها تصادفی باشد. یک شبکه از قبل آموزش دیده
56
00:01:54,960 –> 00:01:56,719
است و ما می خواهیم که در غیر این صورت
57
00:01:56,719 –> 00:01:58,560
باید خودمان آن را آموزش دهیم
58
00:01:58,560 –> 00:02:00,880
و سپس باید بگویید وزن
59
00:02:00,880 –> 00:02:02,079
imagenet است
60
00:02:02,079 –> 00:02:03,920
و این نشان می دهد که می خواهید
61
00:02:03,920 –> 00:02:05,280
از وزن
62
00:02:05,280 –> 00:02:07,200
های مدل به عنوان من استفاده کنید. بعد از اینکه
63
00:02:07,200 –> 00:02:09,520
روی
64
00:02:09,520 –> 00:02:14,400
مجموعه داده های تصویر بسیار بزرگ imagenet آموزش داده شد، اجازه دهید این را اجرا کنیم،
65
00:02:14,400 –> 00:02:18,080
بنابراین اکنون مدل خود را به خوبی در اختیار داریم،
66
00:02:18,080 –> 00:02:19,520
اگر آن را در اینجا چاپ کنم، می گویم
67
00:02:19,520 –> 00:02:22,080
model.summary در اینجا در ترمینال، می
68
00:02:22,080 –> 00:02:23,760
توانید ایده ای در مورد چگونگی دریافت کنید. پیچیده این
69
00:02:23,760 –> 00:02:25,520
مودال در واقع مدل
70
00:02:25,520 –> 00:02:27,840
بالا است.خلاصه من به بالا پیمایش می کنم و
71
00:02:27,840 –> 00:02:29,520
می بینید که بسیاری از
72
00:02:29,520 –> 00:02:30,000
لایه ها
73
00:02:30,000 –> 00:02:32,560
بسیار زیاد هستند بسیاری از بسیاری بسیاری از 150 یا چیزی
74
00:02:32,560 –> 00:02:34,480
شبیه به
75
00:02:34,480 –> 00:02:36,400
آن هنوز یک شبکه خیلی بزرگ
76
00:02:36,400 –> 00:02:37,840
نیست زیرا لایه ها
77
00:02:37,840 –> 00:02:39,200
دارای لایه های زیادی هستند اما آنها
78
00:02:39,200 –> 00:02:42,319
خیلی گسترده نیستند، بنابراین در واقع
79
00:02:42,319 –> 00:02:44,560
بیشتر شبکه ها تمایل دارند لایه های گسترده تری داشته باشند
80
00:02:44,560 –> 00:02:46,959
اما تعداد آنها کمتر است،
81
00:02:46,959 –> 00:02:49,760
اما هنوز واقعاً عمیق است و
82
00:02:49,760 –> 00:02:50,000
در اینجا
83
00:02:50,000 –> 00:02:52,319
زیر می توانید ببینید که تعداد
84
00:02:52,319 –> 00:02:54,000
کل پارامترها سه و نیم
85
00:02:54,000 –> 00:02:54,800
میلیون
86
00:02:54,800 –> 00:02:57,360
است. آموزش قبلی ما یک
87
00:02:57,360 –> 00:02:59,760
شبکه ساده با 34 پارامتر درست
88
00:02:59,760 –> 00:03:03,680
vgg ایجاد کردیم که در 19 است در واقع 150 میلیون دارد،
89
00:03:03,680 –> 00:03:05,840
بنابراین حتی 50 برابر بزرگتر از این است،
90
00:03:05,840 –> 00:03:08,640
بنابراین به شما ایده می دهد که
91
00:03:08,640 –> 00:03:10,239
این مدل از نظر پیچیدگی مدل در
92
00:03:10,239 –> 00:03:11,040
93
00:03:11,040 –> 00:03:14,319
کجا قرار دارد. بزرگ نیست و
94
00:03:14,319 –> 00:03:16,319
از نظر معماری بسیار عمیق است اما نه خیلی
95
00:03:16,319 –> 00:03:16,879
عریض
96
00:03:16,879 –> 00:03:20,080
است، این مدلی است که
97
00:03:20,080 –> 00:03:22,959
اشکالی ندارد، بنابراین آنچه که اکنون میخواهیم انجام دهیم این است
98
00:03:22,959 –> 00:03:25,440
که تصویر زیر
99
00:03:25,440 –> 00:03:29,040
را در اینجا طبقهبندی کنیم
100
00:03:29,040 –> 00:03:33,120
و مشاهده کنیم، بنابراین آن را قرار میدهم.
101
00:03:33,120 –> 00:03:36,480
102
00:03:36,480 –> 00:03:38,239
این عکسی است که
103
00:03:38,239 –> 00:03:40,400
در روز تولد غرفه گرفته شده است و او
104
00:03:40,400 –> 00:03:42,239
در خانه مادرم جشن گرفته است
105
00:03:42,239 –> 00:03:44,560
و مادرم احساس می کند که شما می
106
00:03:44,560 –> 00:03:46,080
دانید که او در حال لذت بردن است و کمی
107
00:03:46,080 –> 00:03:47,680
کمی تزئین است،
108
00:03:47,680 –> 00:03:49,840
بنابراین این یک اسم حیوان دست اموز است، من فکر می کنم شاید
109
00:03:49,840 –> 00:03:51,280
شما آن را به عنوان اسم حیوان دست اموز تشخیص دهید، اما
110
00:03:51,280 –> 00:03:52,879
برای رایانه ای چالش برانگیز است
111
00:03:52,879 –> 00:03:54,480
که تشخیص دهد این یک اسم حیوان دست اموز است،
112
00:03:54,480 –> 00:03:55,120
113
00:03:55,120 –> 00:03:57,439
بنابراین بیایید با همه موها و چیزهای دیگر ببینیم، تا
114
00:03:57,439 –> 00:04:00,000
ببینیم موبایل نت اکنون از آن چه می سازد
115
00:04:00,000 –> 00:04:02,239
اولین کاری که ما باید انجام دهیم این
116
00:04:02,239 –> 00:04:04,239
است که البته
117
00:04:04,239 –> 00:04:06,879
سینی خود را درست ایجاد کنیم.
118
00:04:06,879 –> 00:04:08,319
تصویر را
119
00:04:08,319 –> 00:04:11,439
بارگیری می کند و تصویر را بارگیری می کند و آن را
120
00:04:11,439 –> 00:04:14,720
به قالبی تبدیل می کند که اکنون موبایل نت
121
00:04:14,720 –> 00:04:16,798
بتواند بفهمد
122
00:04:16,798 –> 00:04:19,600
که چگونه کار می کند، آن را تایپ می کنم
123
00:04:19,600 –> 00:04:20,798
و سپس آن را توضیح دهید
124
00:04:20,798 –> 00:04:23,919
import nu mpy smp بنابراین ما دوباره
125
00:04:23,919 –> 00:04:25,280
از یک آرایه numpy
126
00:04:25,280 –> 00:04:26,720
به عنوان ورودی مدل استفاده می کنیم،
127
00:04:26,720 –> 00:04:28,320
فرمت های مختلفی وجود دارد که می توانید به مدل وارد کنید
128
00:04:28,320 –> 00:04:28,800
،
129
00:04:28,800 –> 00:04:32,320
اما من آرایه های numpy را دوست دارم و می گویم داده
130
00:04:32,320 –> 00:04:34,320
بله و یک آرایه خالی با شکل صحیح ایجاد خواهم کرد.
131
00:04:34,320 –> 00:04:35,840
132
00:04:35,840 –> 00:04:39,360
و 1 در 224 در 224 در
133
00:04:39,360 –> 00:04:41,120
3 خواهد
134
00:04:41,120 –> 00:04:43,440
بود. این نوع داده ای است که
135
00:04:43,440 –> 00:04:45,040
نوع داده ورودی مورد انتظار مدل است،
136
00:04:45,040 –> 00:04:45,840
137
00:04:45,840 –> 00:04:48,880
پس این به چه معناست اولین
138
00:04:48,880 –> 00:04:52,560
بعد طول یک مشاهدات فردی را نشان می دهد
139
00:04:52,560 –> 00:04:54,479
تا آن ها
140
00:04:54,479 –> 00:04:55,840
تصاویر باشند.
141
00:04:55,840 –> 00:04:57,840
در مورد ما، بنابراین ما فقط
142
00:04:57,840 –> 00:05:00,000
یک تصویر را به مدل وارد می کنیم، بنابراین
143
00:05:00,000 –> 00:05:02,080
بعد اول اندازه یک است، اگر
144
00:05:02,080 –> 00:05:03,680
ده تصویر را به مدل وارد
145
00:05:03,680 –> 00:05:06,960
کنیم، اندازه ده خواهد بود،
146
00:05:06,960 –> 00:05:09,520
این ارتفاع مدل و
147
00:05:09,520 –> 00:05:10,160
این عرض است.
148
00:05:10,160 –> 00:05:12,560
به عبارت دیگر همانطور که
149
00:05:12,560 –> 00:05:14,080
می توانید ببینید که در اینجا
150
00:05:14,080 –> 00:05:14,720
در تصویر
151
00:05:14,720 –> 00:05:16,720
ما تصاویر دو تا چهار در
152
00:05:16,720 –> 00:05:19,199
دو تا چهار پیکسل را به آن وارد می کنیم
153
00:05:19,199 –> 00:05:22,400
و بعد آخر سه
154
00:05:22,400 –> 00:05:24,560
رنگی است
155
00:05:24,560 –> 00:05:27,280
که شاخص رنگ درست است. rgb کانال های رنگی است
156
00:05:27,280 –> 00:05:28,320
157
00:05:28,320 –> 00:05:30,960
بنابراین ما می خواهیم در حال حاضر یک تصویر با
158
00:05:30,960 –> 00:05:34,479
ابعاد 224 در 224 پیکسل
159
00:05:34,479 –> 00:05:37,759
با سه کانال رنگی به آن وارد کنید،
160
00:05:37,759 –> 00:05:39,280
البته ما در واقع
161
00:05:39,280 –> 00:05:42,479
تاریخ را در
162
00:05:42,479 –> 00:05:46,240
آن قرار ندادهایم، اما واقعاً تصویر را
163
00:05:46,240 –> 00:05:46,720
در آنجا قرار ندادهایم،
164
00:05:46,720 –> 00:05:48,960
اما میتوانیم این کار را به راحتی انجام دهیم.
165
00:05:48,960 –> 00:05:51,039
در اولین نمایه
166
00:05:51,039 –> 00:05:54,639
می گوییم
167
00:05:54,639 –> 00:05:58,479
از image i o import من خوانده
168
00:05:58,479 –> 00:06:00,560
می شوم بنابراین image io کتابخانه ای است که
169
00:06:00,560 –> 00:06:03,360
تصاویر را به صورت آرایه های numpy می خواند
170
00:06:03,360 –> 00:06:08,240
و ما از em read woof.jpg استفاده می کنیم بسیار
171
00:06:08,240 –> 00:06:12,240
خوب و سپس اگر f9 را فشار دهم
172
00:06:12,240 –> 00:06:14,720
آن را به درستی می خواند و حالا ما دادههایمان را خواهیم
173
00:06:14,720 –> 00:06:16,400
داشت،
174
00:06:16,400 –> 00:06:19,360
هنوز کاملاً انجام نشده است، بیایید
175
00:06:19,360 –> 00:06:20,000
نگاهی بیندازیم که
176
00:06:20,000 –> 00:06:23,440
177
00:06:23,440 –> 00:06:25,280
اگر دادهها را چاپ
178
00:06:25,280 –> 00:06:28,560
کنم، میبینید که مقادیر یا
179
00:06:28,560 –> 00:06:31,759
بین 0 تا 255 هستند.
180
00:06:31,759 –> 00:06:35,039
181
00:06:35,039 –> 00:06:38,479
حداکثر نقطه صفر داده .min 225 است.
182
00:06:38,479 –> 00:06:42,400
شبکه موبایل 55 um در واقع
183
00:06:42,400 –> 00:06:45,520
مقادیر ورودی um را بین 1-
184
00:06:45,520 –> 00:06:48,000
و 1 درست انتظار دارد، بنابراین مقیاس
185
00:06:48,000 –> 00:06:49,280
اعداد هنوز درست نیست
186
00:06:49,280 –> 00:06:52,319
و مدل ها برای دریافت ورودی صحیح بسیار حساس هستند،
187
00:06:52,319 –> 00:06:54,479
188
00:06:54,479 –> 00:06:56,240
بنابراین این ورودی است. که ما در اینجا داریم
189
00:06:56,240 –> 00:06:58,000
به طور دقیق می تواند به مدل وارد شود،
190
00:06:58,000 –> 00:06:58,720
191
00:06:58,720 –> 00:07:00,560
اما این کار را انجام می دهد واقعاً با
192
00:07:00,560 –> 00:07:02,080
نوع ورودی که روی آن آموزش داده شده مطابقت ندارد
193
00:07:02,080 –> 00:07:03,599
و به همین دلیل احتمالاً نتایج بسیار
194
00:07:03,599 –> 00:07:05,360
عجیبی به همراه دارد، دقیقاً نمیدانم، اما
195
00:07:05,360 –> 00:07:07,680
به احتمال زیاد این اتفاق میافتد،
196
00:07:07,680 –> 00:07:10,080
بنابراین ما میخواهیم این ورودی را در واقع تبدیل یا
197
00:07:10,080 –> 00:07:11,680
از قبل پردازش کنیم.
198
00:07:11,680 –> 00:07:14,400
به گونهای که با ورودیهایی مطابقت دارد
199
00:07:14,400 –> 00:07:15,919
که مدل
200
00:07:15,919 –> 00:07:17,360
واقعاً بر روی آن آموزش داده شده است
201
00:07:17,360 –> 00:07:19,2