در این مطلب، ویدئو از سرگیری آموزش و نقاط بازرسی در Python TensorFlow Keras (13.2) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:26
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,599
سلام این است جف هیتون به
2
00:00:01,599 –> 00:00:03,120
برنامه های کاربردی شبکه های عصبی عمیق
3
00:00:03,120 –> 00:00:04,799
با دانشگاه واشنگتن
4
00:00:04,799 –> 00:00:06,399
در این ارائه خوش آمدید، من می خواهم به
5
00:00:06,399 –> 00:00:08,559
شما نشان دهم که چگونه می توانید
6
00:00:08,559 –> 00:00:16,400
یک مدل را در Cura ادامه دهید،
7
00:00:16,400 –> 00:00:18,160
بنابراین اولین کاری که می خواهم برای
8
00:00:18,160 –> 00:00:20,080
یادداشت های کلاس انجام دهم. و این
9
00:00:20,080 –> 00:00:22,000
فقط در مخزن github من است، من یک
10
00:00:22,000 –> 00:00:22,400
لینک
11
00:00:22,400 –> 00:00:23,840
در توضیحات دارم، بنابراین میتوانید مستقیماً به آن بروید،
12
00:00:23,840 –> 00:00:26,000
13
00:00:26,000 –> 00:00:28,240
وقتی که در حال آموزش
14
00:00:28,240 –> 00:00:30,480
مدلهای پیچیده بزرگ هستید، اغلب
15
00:00:30,480 –> 00:00:31,439
میخواهید آموزش را
16
00:00:31,439 –> 00:00:33,280
متوقف کرده و دوباره شروع کنید، روی open و collapse کلیک میکنم. چون
17
00:00:33,280 –> 00:00:35,440
ممکن است چندین روز ادامه داشته باشند، شما
18
00:00:35,440 –> 00:00:37,360
همیشه
19
00:00:37,360 –> 00:00:40,160
نه لزوماً عمداً قطع میشوید، اما
20
00:00:40,160 –> 00:00:41,840
به راهی برای ادامه نیاز دارید
21
00:00:41,840 –> 00:00:44,000
و این چیزی است که من در این ارائه به شما نشان میدهم،
22
00:00:44,000 –> 00:00:45,520
23
00:00:45,520 –> 00:00:47,600
ادامه دهید و کمی بزرگنمایی کنید
24
00:00:47,600 –> 00:00:49,280
تا اکنون در حال اجرا در collab، من
25
00:00:49,280 –> 00:00:50,559
میروم و آن را در درایو g خود کپی میکنم،
26
00:00:50,559 –> 00:00:52,239
حتی اگر واقعاً
27
00:00:52,239 –> 00:00:53,920
از فایلهای واقعی در درایو g استفاده نکنم،
28
00:00:53,920 –> 00:00:56,399
میخواهم مطمئن شوم که
29
00:00:56,399 –> 00:00:58,559
نوع زمان اجرا دارای یک gpu است
30
00:00:58,559 –> 00:01:01,120
که این کار را انجام میدهد. برای این کار به collab pro نیاز ندارید
31
00:01:01,120 –> 00:01:02,559
حتی اگر میبینید که
32
00:01:02,559 –> 00:01:03,039
33
00:01:03,039 –> 00:01:06,240
colebro را اجرا میکنم، این کد مقدماتی را
34
00:01:06,240 –> 00:01:08,000
در اینجا اجرا میکنم که شما را شروع میکند،
35
00:01:08,000 –> 00:01:11,200
این نیز یک تابع کوچک تعریف میکند
36
00:01:11,200 –> 00:01:13,040
که به شما نشان میدهد چقدر زمان
37
00:01:13,040 –> 00:01:15,280
سپری شده در یک کد قابل خواندن توسط انسان از
38
00:01:15,280 –> 00:01:17,520
این کد که من دارم. این کدی
39
00:01:17,520 –> 00:01:18,720
است که وقتی پروژه پیچیدهتری را اجرا میکنم از آن استفاده میکنم،
40
00:01:18,720 –> 00:01:21,119
41
00:01:21,119 –> 00:01:21,840
42
00:01:21,840 –> 00:01:24,840
در واقع این کد را بر اساس nvidia
43
00:01:24,840 –> 00:01:26,880
stylegand2ada قرار میدهم. آنها کدهای بسیار خوبی در
44
00:01:26,880 –> 00:01:27,360
45
00:01:27,360 –> 00:01:31,119
آنجا داشتند تا فهرستهای خروجی ایجاد کنند که
46
00:01:31,119 –> 00:01:31,600
47
00:01:31,600 –> 00:01:34,880
برچسبگذاری شدهاند همیشه در حال افزایش هستند و همچنین
48
00:01:34,880 –> 00:01:36,400
استاندارد را
49
00:01:36,400 –> 00:01:39,040
در یک گزارش ثبت میکنند. فایل، بنابراین اگر با
50
00:01:39,040 –> 00:01:40,880
stylegan2 کار می کردید،
51
00:01:40,880 –> 00:01:43,600
مقداری از این کد را قبلاً در اینجا دیده اید،
52
00:01:43,600 –> 00:01:44,479
اساساً روش کار
53
00:01:44,479 –> 00:01:47,600
این است که این تابع لاگر و
54
00:01:47,600 –> 00:01:50,799
در واقع یک کلاس لاگر وجود دارد و
55
00:01:50,799 –> 00:01:54,000
برای بسته بندی کد شما استفاده می شود تا هر چیزی
56
00:01:54,000 –> 00:01:55,600
که به صورت استاندارد خارج می شود به
57
00:01:55,600 –> 00:01:57,680
فایل log و همچنین به صورت استاندارد، بنابراین
58
00:01:57,680 –> 00:01:58,240
یک
59
00:01:58,240 –> 00:02:01,360
نوع راحت ورود به سیستم با درجه پایین است، اگر
60
00:02:01,360 –> 00:02:02,880
61
00:02:02,880 –> 00:02:05,280
سطح تولید بیشتری می خواهید، احتمالاً می خواهید
62
00:02:05,280 –> 00:02:06,240
از
63
00:02:06,240 –> 00:02:09,199
لاگ برای پایتون یا سایر کتابخانه ها استفاده کنید. at
64
00:02:09,199 –> 00:02:10,639
برای آن موجود است، اما من می خواهم
65
00:02:10,639 –> 00:02:11,200
این را اجرا
66
00:02:11,200 –> 00:02:13,599
کنم تا تعریف شود خوب، بیایید به
67
00:02:13,599 –> 00:02:15,040
قسمت بعدی برویم،
68
00:02:15,040 –> 00:02:17,040
اینجا جایی است که من می خواهم
69
00:02:17,040 –> 00:02:18,080
فایل های چک را ذخیره
70
00:02:18,080 –> 00:02:20,480
کنم، بنابراین من یک callback در keira قرار می
71
00:02:20,480 –> 00:02:22,959
دهم که هر بار منتظر می ماند.
72
00:02:22,959 –> 00:02:26,239
مراحل بسیار زیادی
73
00:02:26,239 –> 00:02:28,800
در پایان هر دوره در واقع
74
00:02:28,800 –> 00:02:30,000
75
00:02:30,000 –> 00:02:32,959
یک نسخه کامل از شبکه عصبی شما
76
00:02:32,959 –> 00:02:33,680
77
00:02:33,680 –> 00:02:35,760
و همچنین وضعیت آموزش ذخیره می شود تا بتوانید
78
00:02:35,760 –> 00:02:36,720
79
00:02:36,720 –> 00:02:38,640
آموزش را از سر بگیرید زیرا اگر
80
00:02:38,640 –> 00:02:40,000
وضعیت آموزش
81
00:02:40,000 –> 00:02:42,879
و همچنین شبکه عصبی را ضبط نکنید پس
82
00:02:42,879 –> 00:02:44,160
رزومه آموزشی شما ناکارآمد خواهد بود به
83
00:02:44,160 –> 00:02:45,120
84
00:02:45,120 –> 00:02:46,800
آن فکر کنید که انگار در وسط
85
00:02:46,800 –> 00:02:49,280
یک ترم دانشگاه
86
00:02:49,280 –> 00:02:52,080
هستید و نمیدانم زندگی در
87
00:02:52,080 –> 00:02:53,120
مسیری قرار میگیرد که باید ترک تحصیل
88
00:02:53,120 –> 00:02:55,280
کنید، اما وقتی دوباره برمیگردید
89
00:02:55,280 –> 00:02:56,319
برگردید
90
00:02:56,319 –> 00:02:57,920
آیا می خواهید از ابتدای
91
00:02:57,920 –> 00:02:59,599
برنامه درجه عمیق خود شروع کنید یا می خواهید
92
00:02:59,599 –> 00:03:00,959
از جایی شروع کنید که آن را متوقف
93
00:03:00,959 –> 00:03:02,400
کرده اید، مانند هدف
94
00:03:02,400 –> 00:03:04,159
آموزشی شما، هدف آموزشی شما مانند دانشگاهی است
95
00:03:04,159 –> 00:03:04,800
که می
96
00:03:04,800 –> 00:03:06,159
خواهید، نمی خواهید مجبور به تکرار آن ها شوید.
97
00:03:06,159 –> 00:03:07,760
ترم چون نمی رود برای
98
00:03:07,760 –> 00:03:08,720
انجام هر کار خیری به
99
00:03:08,720 –> 00:03:10,239
شما، شما هنوز هم مانند شبکه عصبی، تمام دانش را در
100
00:03:10,239 –> 00:03:11,760
مغز خود دارید، به
101
00:03:11,760 –> 00:03:13,760
همین دلیل است که می خواهید
102
00:03:13,760 –> 00:03:15,360
وضعیت آموزش را که مانند
103
00:03:15,360 –> 00:03:17,200
کارنامه شما در دانشگاه است
104
00:03:17,200 –> 00:03:18,959
و شبکه عصبی که
105
00:03:18,959 –> 00:03:20,879
هوشمندی شما است که یاد گرفته اید را ذخیره کنید.
106
00:03:20,879 –> 00:03:22,480
اکنون دقیقاً مانند یک رونوشت، شما فقط
107
00:03:22,480 –> 00:03:24,159
میخواهید آن دروس
108
00:03:24,159 –> 00:03:26,159
را به ترم بازگردانید، بنابراین ترم
109
00:03:26,159 –> 00:03:27,360
مانند دوره
110
00:03:27,360 –> 00:03:30,159
پایان دوره است که
111
00:03:30,159 –> 00:03:30,959
112
00:03:30,959 –> 00:03:34,239
وضعیت آموزش
113
00:03:34,239 –> 00:03:35,599
و همچنین شبکه عصبی را که میروید ذخیره میکند.
114
00:03:35,599 –> 00:03:37,599
برای از دست دادن هر چیزی که در میانه دوره اتفاق می افتد
115
00:03:37,599 –> 00:03:39,040
تا زمان دیگری، بنابراین
116
00:03:39,040 –> 00:03:40,000
117
00:03:40,000 –> 00:03:41,840
کمی متفاوت است، اما
118
00:03:41,840 –> 00:03:43,360
اساساً اینگونه کار می کند،
119
00:03:43,360 –> 00:03:47,040
من این کد را اجرا می کنم و
120
00:03:47,040 –> 00:03:48,720
آن را در این فهرست داده ذخیره می کنم
121
00:03:48,720 –> 00:03:50,239
که فقط
122
00:03:50,239 –> 00:03:54,080
یک مکان در نمونه colab من
123
00:03:54,080 –> 00:03:55,519
که به محض
124
00:03:55,519 –> 00:03:56,879
راهاندازی مجدد از بین میرود، اما این فقط برای
125
00:03:56,879 –> 00:03:58,840
مثال است که احتمالاً آن را به
126
00:03:58,840 –> 00:04:00,879
جای دیگری منتقل کنید، این فقط به
127
00:04:00,879 –> 00:04:01,920
اندازه دستهای خواهد بود
128
00:04:01,920 –> 00:04:03,760
که تعداد کلاسهایی را که در حال انجام یک
129
00:04:03,760 –> 00:04:05,599
طبقهبندی هستیم در حال انجام ارقام
130
00:04:05,599 –> 00:04:06,080
خرد شده کلاسیک
131
00:04:06,080 –> 00:04:08,239
هستیم، بنابراین ما به آن آموزش می دهیم که
132
00:04:08,239 –> 00:04:09,840
این ارقام دست نویس را طبقه بندی کند، 10 رقم وجود دارد،
133
00:04:09,840 –> 00:04:10,480
134
00:04:10,480 –> 00:04:12,080
به همین دلیل است که 10 کلاس وجود دارد که
135
00:04:12,080 –> 00:04:13,760
نتایج در
136
00:04:13,760 –> 00:04:15,439
قطار آزمایشی صفر صفر ذخیره می شود
137
00:04:15,439 –> 00:04:17,358
، این نام آزمایشی است که
138
00:04:17,358 –> 00:04:19,279
من داشتم. در حال اجرا و این
139
00:04:19,279 –> 00:04:22,320
فقط یک عدد روزافزون است که
140
00:04:22,320 –> 00:04:23,840
اینها را از هم جدا نگه میدارد تا بتوانید
141
00:04:23,840 –> 00:04:24,720
سریعاً
142
00:04:24,720 –> 00:04:27,040
به اجراهای قبلی برگردید و از آنجایی که ما
143
00:04:27,040 –> 00:04:28,000
وضعیت
144
00:04:28,000 –> 00:04:30,800
آموزش را در یک فایل json ذخیره میکنیم، میتوانید به آن
145
00:04:30,800 –> 00:04:32,000
نگاه کنید و ببینید
146
00:04:32,000 –> 00:04:33,759
این که چگونه این اجراهای منفرد بودند،
147
00:04:33,759 –> 00:04:35,840
در یک پروژه نوع تحقیقاتی بسیار مفید
148
00:04:35,840 –> 00:04:38,320
است، بنابراین ما میخواهیم این
149
00:04:38,320 –> 00:04:40,320
کلاس را به نام من مدل بازرسی تعریف کنیم.
150
00:04:40,320 –> 00:04:41,919
151
00:04:41,919 –> 00:04:43,520
152
00:04:43,520 –> 00:04:44,479
153
00:04:44,479 –> 00:04:46,479
154
00:04:46,479 –> 00:04:49,040
شبکه عصبی شما و پارامترهای آموزشی و به
155
00:04:49,040 –> 00:04:52,479
همین ترتیب در پایان دوره، بنابراین
156
00:04:52,479 –> 00:04:54,800
میخواهیم زمانی که هر دوره به پایان میرسد
157
00:04:54,800 –> 00:04:57,759
، این فراخوانی شود، ابتدا
158
00:04:57,759 –> 00:04:59,040
159
00:04:59,040 –> 00:05:01,039
کلاس قبلی را فراخوانی میکنیم که بر اساس آن،
160
00:05:01,039 –> 00:05:02,960
نقطه کنترل مدل است. t که توسط keras ارائه میشود،
161
00:05:02,960 –> 00:05:04,000
162
00:05:04,000 –> 00:05:05,759
بنابراین میخواهید مطمئن شوید
163
00:05:05,759 –> 00:05:07,840
که چیزهای داخلی هنوز نامیده میشوند، این
164
00:05:07,840 –> 00:05:08,560
چیزی است که در واقع
165
00:05:08,560 –> 00:05:11,520
حالت مدل شما را نجات میدهد، ما
166
00:05:11,520 –> 00:05:12,960
فقط کارهای اضافی را
167
00:05:12,960 –> 00:05:16,000
که میخواهیم انجام دهیم فراتر از آنچه keras ساخته است انجام
168
00:05:16,000 –> 00:05:16,639
169
00:05:16,639 –> 00:05:20,000
دهیم کار اضافی این است که ما
170
00:05:20,000 –> 00:05:22,560
حالت بهینه ساز را ذخیره می کنیم،
171
00:05:22,560 –> 00:05:23,280
172
00:05:23,280 –> 00:05:26,240
بنابراین من مسیر فایل را می گیرم تا این
173
00:05:26,240 –> 00:05:26,960
174
00:05:26,960 –> 00:05:30,720
نام hdf5 را داشته باشم، فکر می کنم این است که
175
00:05:30,720 –> 00:05:33,199
مدل را در یک فرمت باینری ذخیره می کند
176
00:05:33,199 –> 00:05:33,840
که مدل
177
00:05:33,840 –> 00:05:35,919
ذخیره می شود، اما من می خواهم که وضعیت آموزشی
178
00:05:35,919 –> 00:05:38,720
همان نام مدل را داشته باشد،
179
00:05:38,720 –> 00:05:40,080
فقط یک پسوند متفاوت
180
00:05:40,080 –> 00:05:42,800
، این یک فایل pkl خواهد بود، زیرا ما آن
181
00:05:42,800 –> 00:05:43,120
را
182
00:05:43,120 –> 00:05:45,600
ترشی می کنیم، سپس فایل ترشی را باز می
183
00:05:45,600 –> 00:05:47,039
کنم و
184
00:05:47,039 –> 00:05:50,320
اساساً در ترشی می نویسم.
185
00:05:50,320 –> 00:05:53,360
یک فرهنگ لغت که همه این
186
00:05:53,360 –> 00:05:54,479
اطلاعات را در اینجا داشته
187
00:05:54,479 –> 00:05:58,080
باشد، بنابراین بهینهسازی که
188
00:05:58,080 –> 00:06:00,319
اساساً من میخواهم هر
189
00:06:00,319 –> 00:06:01,919
بهینهسازی را که مدل از آن استفاده میکند، صدا بزنم،
190
00:06:01,919 –> 00:06:03,440
چیزی شبیه به اتم
191
00:06:03,440 –> 00:06:06,000
یا گرادیان اشکال دیگری از
192
00:06:06,000 –> 00:06:06,960
193
00:06:06,960 –> 00:06:10,720
الگوریتمهای مبتنی بر گرادیان تقویتشده است که
194
00:06:10,720 –> 00:06:13,360
دقیقاً نحوه بهینهسازی آن است.
195
00:06:13,360 –> 00:06:15,440
گرادیان تصادفی فرود نیز
196
00:06:15,440 –> 00:06:18,400
امکان دیگری است که ما باید در آن
197
00:06:18,400 –> 00:06:19,680
دوره ای که در آن هستیم ذخیره کنیم،
198
00:06:19,680 –> 00:06:20,800
زیرا در این مورد نیز
199
00:06:20,800 –> 00:06:22,400
کاهش نرخ یادگیری را انجام می دهیم، بنابراین با تمرین
200
00:06:22,400 –> 00:06:24,479
کردن، نرخ یادگیری به تدریج کاهش می یابد،
201
00:06:24,479 –> 00:06:25,440
202
00:06:25,440 –> 00:06:28,000
شما نمی خواهید این تغییر کند فقط
203
00:06:28,000 –> 00:06:29,360
به این دلیل شما می خواهید آموزش را مجدداً راه اندازی کنید
204
00:06:29,360 –> 00:06:32,160
و این به عنوان یک فایل ترشی
205
00:06:32,160 –> 00:06:32,560
ذخیره می شود،
2