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