در این مطلب، ویدئو مدیریت پیکربندی برای علم داده با Hydra آسان شده است با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:28:12
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,839
در اکثر پروژههای علم داده،
2
00:00:01,839 –> 00:00:03,199
چه در حال انجام
3
00:00:03,199 –> 00:00:05,520
پردازش دادهها یا تجزیه و تحلیل دادههای
4
00:00:05,520 –> 00:00:07,279
اسکراپینگ یادگیری ماشینی باشید، مجموعهای از
5
00:00:07,279 –> 00:00:09,440
تنظیمات پیکربندی در جایی خواهید داشت،
6
00:00:09,440 –> 00:00:11,360
اما بهترین مکان برای ذخیره این
7
00:00:11,360 –> 00:00:13,280
تنظیمات چیست و چگونه کد خود را طراحی میکنید
8
00:00:13,280 –> 00:00:15,280
که تنظیمات شما هستند. پیدا کردن آسان و
9
00:00:15,280 –> 00:00:16,800
تغییر آسان، من قصد دارم
10
00:00:16,800 –> 00:00:19,359
در این ویدیو نکاتی را به شما ارائه کنم که آنها را در یک
11
00:00:19,359 –> 00:00:22,000
مثال علم داده به کار ببرید و همچنین در مورد
12
00:00:22,000 –> 00:00:24,160
بسته بسیار مفیدی صحبت کنم تا در این مورد به شما کمک
13
00:00:24,160 –> 00:00:26,000
کند اگر می خواهید روش
14
00:00:26,000 –> 00:00:28,400
طراحی نرم افزار خود را بهبود بخشید. من یک راهنمای رایگان برای شما نوشته ام که در این زمینه
15
00:00:28,400 –> 00:00:30,400
به شما کمک می کند که
16
00:00:30,400 –> 00:00:33,520
در راهنمای طراحی ironcodes.com در دسترس است و
17
00:00:33,520 –> 00:00:35,920
شما را طی هفت
18
00:00:35,920 –> 00:00:38,320
مرحله طی می کند تا زمانی که یک
19
00:00:38,320 –> 00:00:39,840
برنامه نرم افزاری جدید ایجاد می کنید واقعاً
20
00:00:39,840 –> 00:00:41,600
کاربردی است تا جایی که می توانید آن را
21
00:00:41,600 –> 00:00:43,520
مستقیماً در کدی که
22
00:00:43,520 –> 00:00:46,559
روی آن کار می کنید، بنابراین آن را در راهنمای طراحی ioncodes.com دریافت کنید،
23
00:00:46,559 –> 00:00:48,160
من همچنین پیوند را در
24
00:00:48,160 –> 00:00:50,239
توضیحات این ویدیو قرار داده ام، اکنون بیایید
25
00:00:50,239 –> 00:00:52,320
به مثالی بپردازیم اگر برخی از
26
00:00:52,320 –> 00:00:54,160
ویدیوهای قبلی من را تماشا کرده اید ممکن است
27
00:00:54,160 –> 00:00:56,160
این مثال را تشخیص دهد، این مثالی است که از
28
00:00:56,160 –> 00:00:58,960
مشعل برای ایجاد یک مدل یک شبکه خطی استفاده میکند و
29
00:00:58,960 –> 00:01:01,760
سپس مجموعهای از آزمایشها را روی دادههای آزمایشی اجرا میکند.
30
00:01:01,760 –> 00:01:03,680
31
00:01:03,680 –> 00:01:06,080
32
00:01:06,080 –> 00:01:07,920
33
00:01:07,920 –> 00:01:09,600
با این حال من پیوندی
34
00:01:09,600 –> 00:01:11,680
به آن ویدیو در توضیحات این ویدیو قرار دادهام.
35
00:01:11,680 –> 00:01:13,520
آنچه در نسخه نهایی به پایان رسید
36
00:01:13,520 –> 00:01:15,600
، یک فایل اصلی است که
37
00:01:15,600 –> 00:01:18,000
حاوی تعدادی پارامتر است، بنابراین اینها
38
00:01:18,000 –> 00:01:21,280
مسیرهای اندازههای دستهای شمارش دورهای هستند که ما
39
00:01:21,280 –> 00:01:23,840
دادههای گزارش را خروجی میکنیم.
40
00:01:23,840 –> 00:01:27,280
فایلهای اطلاعات فهرست راهنمای دادههای پیکربندی و غیره، بنابراین
41
00:01:27,280 –> 00:01:29,280
اینها تنظیمات پیکربندی برای
42
00:01:29,280 –> 00:01:31,119
این پروژه هستند و همه آنها در فایل اصلی
43
00:01:31,119 –> 00:01:33,439
به عنوان ثابت تعریف شدهاند، اگر به
44
00:01:33,439 –> 00:01:35,280
خود تابع اصلی نگاه کنید، میبینید که
45
00:01:35,280 –> 00:01:37,360
این ثابتها سپس
46
00:01:37,360 –> 00:01:39,520
برای ایجاد بارکنندههای داده استفاده میشوند. آنها
47
00:01:39,520 –> 00:01:42,079
به سیستم ردیابی آزمایش
48
00:01:42,079 –> 00:01:44,320
منتقل می شوند که در اجرای جعبه الکترونیکی
49
00:01:44,320 –> 00:01:46,320
و غیره و غیره از
50
00:01:46,320 –> 00:01:48,159
آنها استفاده می شود، بنابراین این تنظیمات اساساً از طریق
51
00:01:48,159 –> 00:01:50,320
بقیه کدها از بالای صفحه عبور می کنند. خوب است
52
00:01:50,320 –> 00:01:52,479
زیرا ما همه این تنظیمات را
53
00:01:52,479 –> 00:01:54,640
در یک مکان در فایل اصلی
54
00:01:54,640 –> 00:01:56,479
در نسخه اصلی این پروژه داریم
55
00:01:56,479 –> 00:01:58,479
56
00:01:58,479 –> 00:02:00,399
57
00:02:00,399 –> 00:02:02,560
. نسخه اصلی
58
00:02:02,560 –> 00:02:04,000
تعریف متفاوتی دارد،
59
00:02:04,000 –> 00:02:05,520
چند پارامتر در اینجا وجود دارد که چیز خوبی است،
60
00:02:05,520 –> 00:02:08,399
اما اگر به فایلهای دیگر مانند
61
00:02:08,399 –> 00:02:10,560
فایل داده بارگذاری که در اینجا میبینید نگاه کنید، میبینید
62
00:02:10,560 –> 00:02:12,239
که تنظیمات پیکربندی وجود دارد،
63
00:02:12,239 –> 00:02:14,000
در اینجا فهرستی وجود دارد که در اینجا
64
00:02:14,000 –> 00:02:16,239
مراجع به تصاویر واضح است. و این
65
00:02:16,239 –> 00:02:17,760
باعث میشود که دستیابی به یک
66
00:02:17,760 –> 00:02:19,680
نمای کلی واضح از اینکه دقیقاً چه
67
00:02:19,680 –> 00:02:21,520
تنظیماتی برای یک پروژه هستند را
68
00:02:21,520 –> 00:02:23,599
دشوار میکند، زیرا حتی در فایل اصلی این
69
00:02:23,599 –> 00:02:25,120
نسخه اصلی میبینید که
70
00:02:25,120 –> 00:02:26,560
برخی از پارامترها در اینجا وجود دارد، اما اگر به پایین اسکرول کنید
71
00:02:26,560 –> 00:02:29,200
، در واقع یک پارامتر پارامتر اضافی وجود
72
00:02:29,200 –> 00:02:31,680
دارد. در جاهای دیگر نیز مانند
73
00:02:31,680 –> 00:02:32,879
اینجا که
74
00:02:32,879 –> 00:02:35,280
آزمایش تانسوربرد را تعریف میکنیم، یک
75
00:02:35,280 –> 00:02:37,519
دایرکتوری گزارش را ارسال میکنیم که در این مسیر خاص ساخته شده است که در
76
00:02:37,519 –> 00:02:39,920
اینجا ارائه میکنیم، بنابراین
77
00:02:39,920 –> 00:02:41,599
در t نسخه اصلی این پروژه،
78
00:02:41,599 –> 00:02:42,959
شما اساساً باید
79
00:02:42,959 –> 00:02:44,319
تمام کدها را بررسی کنید تا متوجه شوید
80
00:02:44,319 –> 00:02:46,160
تنظیمات پیکربندی چیست و
81
00:02:46,160 –> 00:02:48,400
آنچه در نسخه به روز شده در آن
82
00:02:48,400 –> 00:02:50,239
ویدیو انجام دادم، همه آنها را در یک
83
00:02:50,239 –> 00:02:52,319
مکان واحد در اینجا در فایل اصلی قرار دادم.
84
00:02:52,319 –> 00:02:54,400
بهتر است اما هنوز ایدهآل نیست که
85
00:02:54,400 –> 00:02:56,160
این تنظیمات پیکربندی را مستقیماً در کد خود داشته باشید
86
00:02:56,160 –> 00:02:57,680
و این به چند
87
00:02:57,680 –> 00:02:59,680
دلیل است که دلیل اول این است که فرض
88
00:02:59,680 –> 00:03:01,519
کنید میخواهید همکارانی از
89
00:03:01,519 –> 00:03:03,599
اسکریپت شما برای انجام انواع
90
00:03:03,599 –> 00:03:05,360
آزمایشها استفاده کنند و شاید آن همکارانی
91
00:03:05,360 –> 00:03:06,879
که آنها را نمیشناسند. چگونه در پایتون به خوبی کدنویسی کنیم
92
00:03:06,879 –> 00:03:08,879
اکنون آنها باید به فایل های پایتون شیرجه بزنند
93
00:03:08,879 –> 00:03:10,959
و مقادیر را در اینجا تغییر دهند
94
00:03:10,959 –> 00:03:12,800
که برای آنها واقعاً سخت است
95
00:03:12,800 –> 00:03:16,000
دلیل دیگر این است که این هنوز شما را به عنوان
96
00:03:16,000 –> 00:03:18,239
یک برنامه نویس دعوت می کند تا این
97
00:03:18,239 –> 00:03:20,239
تنظیمات پیکربندی را در همه جای
98
00:03:20,239 –> 00:03:22,319
کد تعریف کنید زیرا وجود دارد اینجا جایی نوشته نشده است
99
00:03:22,319 –> 00:03:24,159
که فقط باید آنها را اینجا
100
00:03:24,159 –> 00:03:26,159
درست کنید و اغلب راحت تر است فقط بگویید
101
00:03:26,159 –> 00:03:28,159
اوه می دانید چه چیزی را مستقیماً
102
00:03:28,159 –> 00:03:29,680
در این فایل قرار داده ام و نمی دانم
103
00:03:29,680 –> 00:03:31,599
نگران انتقال آن به تابع یا
104
00:03:31,599 –> 00:03:33,920
هر چیز دیگری با رها کردن این تنظیمات پیکربندی به
105
00:03:33,920 –> 00:03:35,920
صراحت در فایل کد
106
00:03:35,920 –> 00:03:38,640
خود هستید، در واقع در حال ترویج شیوه های بد
107
00:03:38,640 –> 00:03:40,319
برای مقابله با پیکربندی ها هستید و این
108
00:03:40,319 –> 00:03:42,480
ارتباط نزدیکی با دلیل سوم دارد
109
00:03:42,480 –> 00:03:44,159
که این است که اگر تنظیمات پیکربندی خود را قرار دهید
110
00:03:44,159 –> 00:03:46,480
خارج از
111
00:03:46,480 –> 00:03:48,640
کد، به این معنی است که شما همچنین می توانید آنها را
112
00:03:48,640 –> 00:03:50,799
بدون تغییر کد
113
00:03:50,799 –> 00:03:52,319
تغییر دهید و زمانی که می خواهید
114
00:03:52,319 –> 00:03:54,560
پیکربندی را تغییر دهید، نیازی به تغییر کد ندارید،
115
00:03:54,560 –> 00:03:56,400
زیرا این بدان معناست که می توانید کارهای دیگری انجام دهید،
116
00:03:56,400 –> 00:03:58,159
مثلاً فرض کنید می خواهید
117
00:03:58,159 –> 00:04:01,040
این آزمایش پنج را اجرا کنید. بارها، اما هر کدام
118
00:04:01,040 –> 00:04:02,640
با دستهای از تنظیمات پیکربندی متفاوت
119
00:04:02,640 –> 00:04:04,080
است، روشی که اکنون تنظیم شده است،
120
00:04:04,080 –> 00:04:05,760
شامل کار دستی است زیرا هر بار
121
00:04:05,760 –> 00:04:07,200
که نیاز به اجرای آزمایش دارید،
122
00:04:07,200 –> 00:04:09,519
باید مقادیر این متغیرهای پیکربندی را به صورت دستی در اینجا تغییر دهید
123
00:04:09,519 –> 00:04:11,599
و
124
00:04:11,599 –> 00:04:13,519
سپس آزمایش را دوباره اجرا کنید، در حالی که اگر
125
00:04:13,519 –> 00:04:15,760
تنظیمات پیکربندی
126
00:04:15,760 –> 00:04:17,759
خارج از کد اصلی ذخیره میشوند، سپس میتوانید
127
00:04:17,759 –> 00:04:19,918
اساساً اسکریپتی بنویسید که آن را اجرا کند
128
00:04:19,918 –> 00:04:21,680
پنج بار با پنج
129
00:04:21,680 –> 00:04:23,199
فایل مختلف آزمایش کنید و حتی میتوانید
130
00:04:23,199 –> 00:04:24,880
131
00:04:24,880 –> 00:04:26,800
تنظیمات پیکربندی مختلف را با استفاده از
132
00:04:26,800 –> 00:04:28,560
مقادیر تصادفی یا هر کاری که میخواهید انجام دهید،
133
00:04:28,560 –> 00:04:30,720
به طور کلی حذف
134
00:04:30,720 –> 00:04:32,800
تنظیمات پیکربندی از کد اصلی شما بسیار
135
00:04:32,800 –> 00:04:34,320
مهم است و به شما کمک میکند
136
00:04:34,320 –> 00:04:37,040
بیشتر بنویسید. اسکریپتهای پایتون انعطافپذیر
137
00:04:37,040 –> 00:04:38,479
در پایان، بنابراین این همان کاری است که من
138
00:04:38,479 –> 00:04:40,560
امروز با این مثال انجام میدهم قبل از اینکه
139
00:04:40,560 –> 00:04:42,720
این کد را تغییر دهم، میخواهم در مورد
140
00:04:42,720 –> 00:04:44,400
cohesion و coupling و نحوه
141
00:04:44,400 –> 00:04:47,040
تعامل پارامترهای پیکربندی با
142
00:04:47,040 –> 00:04:49,520
آن مفاهیم صحبت کنم اگر این کد را اجرا کنید، پس
143
00:04:49,520 –> 00:04:52,400
این همان چیزی است که این اتفاق میافتد،
144
00:04:52,639 –> 00:04:54,639
بنابراین میبینید که در حال آموزش و اعتبارسنجی
145
00:04:54,639 –> 00:04:56,720
دادهها است و همه دادهها را
146
00:04:56,720 –> 00:04:58,560
از فایلهایی که ما با استفاده از
147
00:04:58,560 –> 00:05:01,280
این پارامترها در اینجا
148
00:05:01,280 –> 00:05:03,600
149
00:05:03,600 –> 00:05:06,000
150
00:05:06,000 –> 00:05:07,680
تعریف کردیم، بازیابی میکند.
151
00:05:07,680 –> 00:05:09,440
از مکانهای مختلف کد خود، اگر
152
00:05:09,440 –> 00:05:11,440
مدل یادگیری ماشینی دارید، ممکن است
153
00:05:11,440 –> 00:05:13,759
به مسیری برای دادههای ورودی نیاز داشته باشید که ممکن است
154
00:05:13,759 –> 00:05:16,000
نیاز به تعیین آن داشته باشید.
155
00:05:16,000 –> 00:05:17,919
اگر شما یک
156
00:05:17,919 –> 00:05:20,080
سیستم ردیابی آزمایش دارید، ممکن است برای فایلهایی که حاوی آن دادهها هستند، به مسیری برای
157
00:05:20,080 –> 00:05:22,080
ذخیره گزارشهای آزمایشی نیاز داشته باشید.
158
00:05:22,080 –> 00:05:24,080
159
00:05:24,080 –> 00:05:26,240
160
00:05:26,240 –> 00:05:28,320
همه این
161
00:05:28,320 –> 00:05:30,479
موارد تنظیمات پیکربندی هستند که
162
00:05:30,479 –> 00:05:32,560
اساساً در کل پایه کد شما پخش می
163
00:05:32,560 –> 00:05:34,800
شوند، از طرف دیگر شما
164
00:05:34,800 –> 00:05:36,639
می خواهید یک مکان واحد داشته باشید
165
00:05:36,639 –> 00:05:38,479
که آنها را تعریف کنید زیرا در غیر این صورت
166
00:05:38,479 –> 00:05:40,639
پیگیری همه
167
00:05:40,639 –> 00:05:42,400
تنظیماتی که در آنجا هستند و
168
00:05:42,400 –> 00:05:44,240
ممکن است بخواهید غیرممکن است. تغییر در آینده
169
00:05:44,240 –> 00:05:46,080
به نظر می رسد که
170
00:05:46,080 –> 00:05:48,320
اگر تنظیمات پیکربندی خود را
171
00:05:48,320 –> 00:05:50,000
در یک مکان ذخیره کنید، به یک مشکل غیرقابل حل منجر می شود، باید
172
00:05:50,000 –> 00:05:52,000
آنها را به همه جا منتقل کنید که منجر
173
00:05:52,000 –> 00:05:53,919
به توابع با تعداد زیادی آرگومان می شود
174
00:05:53,919 –> 00:05:56,720
که تنظیمات پیکربندی دقیق
175
00:05:56,720 –> 00:05:59,280
را به عملکردهای سطح پایین تر منتقل می کند.
176
00:05:59,280 –> 00:06:01,360
از سوی دیگر، اگر
177
00:06:01,360 –> 00:06:03,840
تنظیمات پیکربندی را به عنوان یک متغیر جهانی در
178
00:06:03,840 –> 00:06:05,600
جایی که وارد میکنید و
179
00:06:05,600 –> 00:06:06,960
تمام آنهای مختلف f iles و
180
00:06:06,960 –> 00:06:08,639
این منجر به کوپلینگ های زیادی می شود
181
00:06:08,639 –> 00:06:10,800
زیرا اگر آن تنظیمات پیکربندی وجود نداشته
182
00:06:10,800 –> 00:06:12,560
باشد، کد شما نیز
183
00:06:12,560 –> 00:06:14,800
در این مثال شکسته می شود، من اساساً
184
00:06:14,800 –> 00:06:16,400
همه تنظیمات پیکربندی
185
00:06:16,400 –> 00:06:18,880
را اکنون در فایل اصلی برای یک پروژه بسیار ساده
186
00:06:18,880 –> 00:06:20,800
مانند این ذخیره کردم. واقعاً
187
00:06:20,800 –> 00:06:22,720
مشکل چندانی نیست، اما اگر پروژه های علم داده
188
00:06:22,720 –> 00:06:24,720
شما بزرگتر شوند، نمی خواهید
189
00:06:24,720 –> 00:06:27,199
تعدادی تنظیمات پیکربندی را
190
00:06:27,199 –> 00:06:28,800
در فایل اصلی خود ذخیره کنید که فقط
191
00:06:28,800 –> 00:06:30,880
همه چیز را به هم می زند،
192
00:06:30,880 –> 00:06:32,800
بنابراین چند راه حل دیگر برای مقابله
193
00:06:32,800 –> 00:06:34,880
با آن چیست؟ تنظیمات پیکربندی به خوبی
194
00:06:34,880 –> 00:06:37,039
اولین مورد این است که شما می توانید هر
195
00:06:37,039 –> 00:06:40,160
تنظیمات را به صورت محلی در نزدیکی یا در فایلی
196
00:06:40,160 –> 00:06:42,160
که قرار است مورد نیاز باشد تعریف کنید به این ترتیب
197
00:06:42,160 –> 00:06:44,160
همچنین مشخص است که کدام تنظیمات
198
00:06:44,160 –> 00:06:46,319
قرار است در کجا استفاده شود و همچنین
199
00:06:46,319 –> 00:06:48,720
نوعی ساختار را ارائه می دهد که نقطه ضعف آن است. که
200
00:06:48,720 –> 00:06:50,720
پس از آن در نهایت تنظیمات را
201
00:06:50,720 –> 00:06:52,400
در همه جای کد خود
202
00:06:52,400 –> 00:06:54,240
خواهید داشت و یافتن آنها دشوارتر خواهد بود.
203
00:06:54,240 –> 00:06:56,080
راه حل دوم این است که از متغیرهای محیطی استفاده می کنید.
204
00:06:56,080 –> 00:06:58,160
kage
205
00:06:58,160 –> 00:06:59,280
که می توانید برای آن استفاده کنید python.n نامیده می شود
206
00:06:59,280 –> 00:07:01,759
که واقعاً مفید است و
207
00:07:01,759 –> 00:07:03,599
روش کار به این صورت است که شما
208
00:07:03,599 –> 00:07:05,599
یک دسته از متغیرهای محیطی را
209
00:07:05,599 –> 00:07:07,280
تعریف می کنید که حاوی تمام تنظیمات
210
00:07:07,280 –> 00:07:09,360
مورد نیاز شما هستند و سپس کدی که اسکریپت
211
00:07:09,360 –> 00:07:12,080
اساساً به آن متغیرها دسترسی پیدا می کند و
212
00:07:12,080 –> 00:07:14,479
سپس استفاده می کند. مقادیری که در آنها ذخیره می شود
213
00:07:14,479 –> 00:07:16,800
مزیت این رویکرد نسبت
214
00:07:16,800 –> 00:07:19,520
به تعریف مستقیم تنظیمات
215
00:07:19,520 –> 00:07:21,039
داخل فایل کد این است که می توانید
216
00:07:21,039 –> 00:07:22,720
آنها را تغییر دهید و بدون نیاز به تغییر کد دوباره کد را اجرا کنید
217
00:07:22,720 –> 00:07:24,880
218
00:07:24,880 –> 00:07:27,520
بسته ای مانند python.n واقعا مفید است
219
00:07:27,520 –> 00:07:29,840
زیرا که به شما امکان میدهد فایلهای نقطهای را ایجاد کنید
220
00:07:29,840 –> 00:07:32,240
که سپس شامل
221
00:07:32,240 –> 00:07:34,080
تعاریف آن متغیرهای محیطی در یک
222
00:07:34,080 –> 00:07:36,160
مکان واحد میشود که بسیار خوب است،
223
00:07:36,160 –> 00:07:38,479
نقطه ضعف آن این است که از روی کد
224
00:07:38,479 –> 00:07:40,720
مستقیماً آسان نیست که ببینید واقعاً چه
225
00:07:40,720 –> 00:07:42,639
متغیرهای پیکربندی وجود
226
00:07:42,639 –> 00:07:44,800
دارد و کدامها را میتوانید تغییر دهید و
227
00:07:44,800 –> 00:07:47,039
همچنین هیچ ساختاری برای این متغیرها وجود ندارد،
228
00:07:47,039 –> 00:07:48,960
بنابراین ممکن است با
229
00:07:48,960 –> 00:07:51,440
لیست بزرگی از متغیرهای نامرتبط روبرو شوید که
230
00:07:51,440 –> 00:07:53,280
همه انواع مختلفی دارند. از مقادیر و
231
00:07:53,280 –> 00:07:55,280
در نتیجه ممکن است ندانید کدام
232
00:07:55,280 –> 00:07:57,199
متغیر قرار است در کجا استفاده شود و
233
00:07:57,199 –> 00:07:58,639
چه تأثیری از
234
00:07:58,639 –> 00:08:00,639
تغییر مقدار آن متغیر خواهد داشت،
235
00:08:00,639 –> 00:08:02,960
راه حل سوم این است که به جای یک
236
00:08:02,960 –> 00:08:04,960
فایل dot n حاوی متغیرهای محیطی
237
00:08:04,960 –> 00:08:07,919
که استفاده می کنید. یک فایل json یا yaml که
238
00:08:07,919 –> 00:08:10,160
حاوی مشخصات تنظیمات شماست.
239
00:08:10,160 –> 00:08:11,599
نکته خوب در مورد این
240
00:08:11,599 –> 00:08:13,280
رویکرد این است که می توانید
241
00:08:13,280 –> 00:08:15,199
ساختاری را نیز ارائه دهید، به عنوان مثال
242
00:08:15,199 –> 00:08:17,360
می توانید اشیاء فرعی ایجاد کنید که سپس
243
00:08:17,360 –> 00:08:19,759
با لایه های مختلف برنامه شما مطابقت
244
00:08:19,759 –> 00:08:21,440
دارند، یک بسته واقعاً زیبا وجود دارد.
245
00:08:21,440 –> 00:08:23,759
hydra نامیده می شود و به شما اجازه می دهد
246
00:08:23,759 –> 00:08:26,000
تا کارهای زیادی را با
247
00:08:26,000 –> 00:08:27,599
فایل های پیکربندی انجام دهید، می توانید فایل های yaml را
248
00:08:27,599 –> 00:08:30,160
که حاوی تنظیمات زیرمجموعه
249
00:08:30,160 –> 00:08:31,840
تنظیمات هستند تعریف کنید، حتی می توانید
250
00:08:31,840 –> 00:08:33,760
تنظیمات را در چندین فایل تعریف کنید.
251
00:08:33,760 –> 00:08:35,839
252
00:08:35,839 –> 00:08:38,320
253
00:08:38,320 –> 00:08:40,240
254
00:08:40,240 –> 00:08:42,719
تنظیمات را انجام دهید و
255
00:08:42,719 –> 00:08:45,440
اسکریپت خود را چندین بار و بسیاری موارد دیگر اجرا
256
00:08:45,440 –> 00:08:47,120
کنید و این واقعاً مفید است
257
00:08:47,120 –> 00:08:48,720
شما آزمایشهایی را اجرا میکنید و فقط
258
00:08:48,720 –> 00:08:50,640
میخواهید بدون نیاز به تغییر کد، تعدادی از آنها را اجرا کنید که
259
00:08:50,640 –> 00:08:52,640
برخی از مقادیر را تغییر میدهند،
260
00:08:52,640 –> 00:08:54,560
بنابراین بیایید به مثال نگاهی بیندازیم
261
00:08:54,560 –> 00:08:56,640
و ببینیم چگونه میتوانیم از hydra برای
262
00:08:56,640 –> 00:08:58,640
بهبود مدیریت تنظیمات پیکربندی خود
263
00:08:58,640 –> 00:09:00,959
با بسته hydra استفاده کنیم. می تواند
264
00:09:00,959 –> 00:09:04,000
همه این پارامترها را در یک فایل yama قرار دهد و
265
00:09:04,000 –> 00:09:06,480
این واقعاً کد شما را بسیار پاک می کند، بنابراین
266
00:09:06,480 –> 00:09:08,640
به عنوان یک نقطه شروع، اجازه دهید یک
267
00:09:08,640 –> 00:09:11,279
فایل yama ساده ایجاد کنیم که حاوی این
268
00:09:11,279 –> 00:09:13,600
پارامترها باشد تا دوره شمارش lr و
269
00:09:13,600 –> 00:09:15,680
اندازه دسته ای که واقعا
270
00:09:15,680 –> 00:09:18,160
الگوریتمی تر است. پارامترها بنابراین کاری که
271
00:09:18,160 –> 00:09:20,320
من می خواهم انجام دهم این است که در پوشه منبع خود
272
00:09:20,320 –> 00:09:22,800
یک پوشه جدید به نام conf ایجاد کنم
273
00:09:22,800 –> 00:09:25,120
و این شامل تمام
274
00:09:25,120 –> 00:09:28,240
تنظیمات پیکربندی ما خواهد بود بنابراین من یک
275
00:09:28,240 –> 00:09:30,800
فایل yammer ساده به نام config.yml را در اینجا قرار خواهم
276
00:09:30,800 –> 00:09:32,959
داد. این
277
00:09:32,959 –> 00:09:34,720
شامل تمام تنظیماتی است که میخواهیم
278
00:09:34,720 –> 00:09:36,800
داشته باشیم، کاری که من میخواهم انجام دهیم این است که به سادگی
279
00:09:36,800 –> 00:09:39,040
روی این پارامترها در اینجا epoch در
280
00:09:39,040 –> 00:09:41,360
lr و اندازه دستهای کپی کنید، بنابراین بیایید
281
00:09:41,360 –> 00:09:43,600
فعلاً بگذاریم که اینجا بدیهی است که این درست نیست.
282
00:09:43,600 –> 00:09:45,760
فرمت ect yama بنابراین باید
283
00:09:45,760 –> 00:09:48,399
کمی این را تغییر دهیم، فرض کنید یک
284
00:09:48,399 –> 00:09:50,959
بخش را در اینجا تعریف می کنیم که به آن پارامتر می گوییم
285
00:09:50,959 –> 00:09:52,640
که این چیزها هستند و من
286
00:09:52,640 –> 00:09:55,120
اینها را انتخاب می کنم و آنها را تورفتگی می کنم و به
287
00:09:55,120 –> 00:09:57,040
طور پیش فرض در فایل های yammer باید از
288
00:09:57,040 –> 00:10:00,000
حروف کوچک استفاده کنید. نامها پس بیایید این را به
289
00:10:00,000 –> 00:10:02,560
تعداد دورهها تغییر دهیم و از یک ستون برای
290
00:10:02,560 –> 00:10:06,320
اختصاص مقدار استفاده میکنیم، بنابراین این چیزی است که به
291
00:10:08,800 –> 00:10:10,800
آنجا میرسیم، میرویم که مجموعهای از پارامترها بسیار ساده است
292
00:10:10,800 –> 00:10:12,560
و اکنون
293
00:10:12,560 –> 00:10:14,800
برای وارد کردن آنها در کد خود چه کاری باید انجام
294
00:10:14,800 –> 00:10:16,640
دهیم. در مرحله اول بسیار ساده است،
295
00:10:16,640 –> 00:10:18,959
بیایید hydra را وارد کنیم
296
00:10:18,959 –> 00:10:21,600
و کاری که باید انجام دهید، اجازه دهید من به
297
00:10:21,600 –> 00:10:24,000
تابع اصلی در اینجا بروم این است که یک دکوراتور را در
298
00:10:24,000 –> 00:10:26,399
بالای عملکرد اصلی قرار دهیم تا مطمئن شویم
299
00:10:26,399 –> 00:10:28,399
که hydra می داند که باید
300
00:10:28,399 –> 00:10:30,480
تنظیمات را قبل از اجرای این اصلی بارگذاری کند.
301
00:10:30,480 –> 00:10:32,399
تابع و این چیزی است که به
302
00:10:32,399 –> 00:10:34,880
نظر می رسد
303
00:10:35,120 –> 00:10:37,440
و ما باید دو چیز را ارائه دهیم
304
00:10:37,440 –> 00:10:39,519
، مسیری که hydra می تواند پیکربندی را پیدا کند،
305
00:10:39,519 –> 00:10:41,920
بنابراین پوشه conf است
306
00:10:41,920 –> 00:10:43,920
که من ایجاد کردم
307
00:10:43,920 –> 00:10:46,560
و نام فایل پیکربندی
308
00:10:46,560 –> 00:10:48,640
که config است و سپس کاری که باید
309
00:10:48,640 –> 00:10:51,519
انجام دهم این است. آ dd یک پارامتر اضافی برای تابع اصلی من
310
00:10:51,519 –> 00:10:54,160
بیایید آن پیکربندی را فراخوانی کنیم،
311
00:10:54,160 –> 00:10:55,600
من با انواع سروکار ندارم، در عرض یک دقیقه به شما نشان خواهم داد
312
00:10:55,600 –> 00:10:57,360
که چگونه کار می کند، بنابراین اکنون اتفاق می افتد
313
00:10:57,360 –> 00:10:59,279
که hydra به طور خودکار
314
00:10:59,279 –> 00:11:01,760
فایل پیکربندی را در این مکان بارگذاری می کند
315
00:11:01,760 –> 00:11:04,320
و داده ها را در این شی که
316
00:11:04,320 –> 00:11:06,959
می توانید سپس در تابع اصلی خود استفاده کنید،
317
00:11:06,959 –> 00:11:08,399
بیایید این را چاپ کنیم
318
00:11:08,399 –> 00:11:10,720
و ببینیم چه چیزی به دست می آوریم و من فقط
319
00:11:10,720 –> 00:11:12,720
بعد از دستور چاپ برمی گردم تا
320
00:11:12,720 –> 00:11:15,920
اگر من این را اجرا کنم همه چیزهای دیگر را انجام ندهیم، آنوقت
321
00:11:15,920 –> 00:11:17,600
می بینید که hydra
322
00:11:17,600 –> 00:11:19,519
فایل پیکربندی را بارگیری میکند و اکنون
323
00:11:19,519 –> 00:11:22,959
دادههایی را که در آنجا قرار دادهایم دریافت میکنیم، بنابراین اگر
324
00:11:23,399 –> 00:11:24,720
params.epoccounts.lr.batchsize و
325
00:11:24,720 –> 00:11:26,640
اکنون میتوانیم از طریق شیء پیکربندی به این موارد دسترسی داشته باشیم
326
00:11:26,640 –> 00:11:29,680
و در کد خود در اینجا استفاده کنیم،
327
00:11:29,680 –> 00:11:32,160
بنابراین این واقعاً مفید است، اجازه دهید آن را نیز
328
00:11:32,160 –> 00:11:34,399
قرار دهیم. تنظیمات پیکربندی دیگر در
329
00:11:34,399 –> 00:11:36,959
همان فایل پیکربندی، بنابراین ما
330
00:11:36,959 –> 00:11:38,959
اکنون پارامترهایی داریم که ما نیز داریم، مجموعه
331
00:11:38,959 –> 00:11:40,160
ای از فایل ها هستند
332
00:11:40,160 –> 00:11:41,920
که اساساً فایل هایی هستند که
333
00:11:41,920 –> 00:11:44,160
در اینجا پیدا می کنید،
334
00:11:44,160 –> 00:11:45,600
بنابراین من می خواهم
335
00:11:45,600 –> 00:11:48,320
گروه دیگری به نام فایل ها را در اینجا اضافه کنم
336
00:11:48,320 –> 00:11:51,040
و این همان داده های پرونده است. به نظر می
337
00:11:51,040 –> 00:11:53,360
رسد بنابراین ما چهار فایل داریم برچسبهای دادههای آزمایشی
338
00:11:53,360 –> 00:11:56,240
دادههای قطار و برچسبهای قطار و
339
00:11:56,240 –> 00:11:58,639
سپس گروه نهایی پارامترها
340
00:11:58,639 –> 00:12:00,399
پوشههایی هستند که در آن چیزهایی داریم، بنابراین
341
00:12:00,399 –> 00:12:04,720
مسیر ورود به سیستم را داریم و دادهها را در آنجا داریم،
342
00:12:06,639 –> 00:12:10,240
بنابراین اجازه دهید آنها را در
343
00:12:10,240 –> 00:12:12,240
اینجا قرار دهیم. برای فراخوانی این log به طوری
344
00:12:12,240 –> 00:12:14,639
که پوشه runs باشد و پوشه data
345
00:12:14,639 –> 00:12:16,800
این است
346
00:12:16,800 –> 00:12:18,639
که ما به اینجا می رویم، چیزی که hydra
347
00:12:18,639 –> 00:12:20,880
نیز انجام می دهد این است که این پوشه حاوی خروجی ها را ایجاد می کند،
348
00:12:20,880 –> 00:12:22,959
بنابراین می توانید ببینید که
349
00:12:22,959 –> 00:12:25,360
ما در اینجا در هر تاریخ تعدادی
350
00:12:25,360 –> 00:12:27,600
خروجی داریم و اساساً این یک شکاف زمانی است،
351
00:12:27,600 –> 00:12:30,160
بنابراین این آخرین باری است که من
352
00:12:30,160 –> 00:12:32,480
کد واقعی را اجرا کردم که همان چیزی بود که به
353
00:12:32,480 –> 00:12:33,839
شما نشان دادم و اینجاست که
354
00:12:33,839 –> 00:12:35,839
تمام موارد مربوط
355
00:12:35,839 –> 00:12:38,240
به hydra را قرار می دهد و چون hydra این کار را انجام می دهد
356
00:12:38,240 –> 00:12:39,920
به این معنی است که hydra نیز تغییر می کند.
357
00:12:39,920 –> 00:12:41,680
دایرکتوری کاری به دایرکتوری خروجی
358
00:12:41,680 –> 00:12:43,839
، بنابراین کاری که باید انجام دهید این است
359
00:12:43,839 –> 00:12:46,560
که مطمئن شوید فایلهایی که
360
00:12:46,560 –> 00:12:48,959
در اینجا ارائه میدهید در واقع
361
00:12:48,959 –> 00:12:51,120
با دایرکتوری کاری فعلی مرتبط هستند و اجازه
362
00:12:51,120 –> 00:12:53,279
دهید این کار را برای دادهها انجام دهم، در واقع این
363
00:12:53,279 –> 00:12:56,000
نقل قولهای دوگانه نیستند در yaml مورد نیاز است،
364
00:12:56,000 –> 00:12:58,480
بنابراین برای دادهها، کاری که میتوانید برای دریافت
365
00:12:58,480 –> 00:13:03,519
دایرکتوری کاری فعلی انجام دهید، استفاده از این است،
366
00:13:03,600 –> 00:13:05,279
بنابراین این فهرست راهنمای فعلی را به ما میدهد،
367
00:13:05,279 –> 00:13:07,279
اجازه دهید پس از آن یک اسلش اضافه کنیم
368
00:13:07,279 –> 00:13:08,880
و سپس مطمئن هستیم که دادهها را
369
00:13:08,880 –> 00:13:10,800
از جای مناسب بارگیری میکنیم، اکنون hydra دارد
370
00:13:10,800 –> 00:13:12,399
چند پارامتر دیگر نیز که
371
00:13:12,399 –> 00:13:14,399
می توانید در این فایل پیکربندی با استفاده از ساختاری مشابه به آنها دسترسی داشته باشید،
372
00:13:14,399 –> 00:13:16,639
بنابراین
373
00:13:16,639 –> 00:13:18,560
بسیار مفید است، حتی می توانید به
374
00:13:18,560 –> 00:13:21,040
مقادیر دیگر در خود پیکربندی مراجعه کنید،
375
00:13:21,040 –> 00:13:23,360
بنابراین این اکنون پیکربندی اصلی ما است
376
00:13:23,360 –> 00:13:25,360
که شامل تمام داده های مورد نیاز ما است.
377
00:13:25,360 –> 00:13:27,600
به فایل اصلی برگردید و اجازه دهید
378
00:13:27,600 –> 00:13:29,680
یک بار دیگر پیکربندی را چاپ
379
00:13:29,680 –> 00:13:31,360
کنیم تا مطمئن شویم که ما واقعاً
380
00:13:31,360 –> 00:13:33,120
همه این اطلاعات را دریافت می کنیم، بنابراین در
381
00:13:33,120 –> 00:13:35,200
اینجاست که می بینید همه این موارد را دریافت می کنیم که
382
00:13:35,200 –> 00:13:37,600
عالی است و اکنون می توانیم از
383
00:13:37,600 –> 00:13:40,079
مقادیر در این استفاده کنیم. جسم پیکربندی و
384
00:13:40,079 –> 00:13:41,760
به جای استفاده از این ثابت ها در اینجا
385
00:13:41,760 –> 00:13:43,839
می توانم از مقادیر استفاده کنم تا آنها را به
386
00:13:43,839 –> 00:13:45,839
قسمت های مختل