در این مطلب، ویدئو من همین مدل را با TensorFlow و PyTorch | ساختم کدام فریم ورک بهتر است؟ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:33
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:05,120 –> 00:00:06,720
کدام چارچوب یادگیری عمیق
2
00:00:06,720 –> 00:00:08,800
بهترین تنسورفلو است پر استفاده ترین
3
00:00:08,800 –> 00:00:11,120
فریم ورک در تولید pytorch
4
00:00:11,120 –> 00:00:12,639
محبوب ترین فریم ورک در بین
5
00:00:12,639 –> 00:00:14,960
محققان در هنگام مقایسه ترندهای گوگل است
6
00:00:14,960 –> 00:00:17,279
که آنها نزدیک به هم هستند
7
00:00:17,279 –> 00:00:19,279
tensorflow زودتر منتشر شد و همیشه محبوب تر
8
00:00:19,279 –> 00:00:21,760
بود، اما pytorch اخیراً
9
00:00:21,760 –> 00:00:23,439
در اینجا پیشتاز شد. برای اولین
10
00:00:23,439 –> 00:00:25,920
بار بر اساس ستاره های github tensorflow
11
00:00:25,920 –> 00:00:27,920
با سه برابر ستاره های مشعل بسیار محبوب تر است
12
00:00:27,920 –> 00:00:30,320
همچنین در
13
00:00:30,320 –> 00:00:32,399
سیستم های تولید tensorflow هنوز
14
00:00:32,399 –> 00:00:34,480
بسیار گسترده تر استفاده می شود و یک
15
00:00:34,480 –> 00:00:36,320
اکوسیستم عالی برای مثال با
16
00:00:36,320 –> 00:00:38,320
tensorflow lite برای دستگاه های تلفن همراه و لبه
17
00:00:38,320 –> 00:00:40,640
ارائه می دهد. tensorflow.js برای
18
00:00:40,640 –> 00:00:43,200
برنامه های کاربردی وب با این حال pytorch در تلاش است
19
00:00:43,200 –> 00:00:45,200
تا در سیستم های تولیدی عقب بیفتد و
20
00:00:45,200 –> 00:00:47,520
به عنوان مثال کتابخانه زنده جدید
21
00:00:47,520 –> 00:00:49,120
pytorch برای استقرار تلفن همراه بسیار امیدوارکننده به نظر می رسد،
22
00:00:49,120 –> 00:00:51,600
بنابراین مانند همیشه باید از کدام یک استفاده
23
00:00:51,600 –> 00:00:53,760
کنید پاسخ ساده نیست و
24
00:00:53,760 –> 00:00:55,680
به نیازهای شما بستگی دارد هر دو
25
00:00:55,680 –> 00:00:57,760
چارچوب مزایا و معایب خود را دارد و
26
00:00:57,760 –> 00:01:00,079
هر دو عالی هستند، بنابراین در این ویدیو من
27
00:01:00,079 –> 00:01:02,000
sa را ایجاد کردم من شبکه عصبی کانولوشنال
28
00:01:02,000 –> 00:01:04,479
با هر دو فریم ورک در این فرآیند
29
00:01:04,479 –> 00:01:06,400
، یاد خواهید گرفت که چگونه از هر فریم ورک استفاده کنید
30
00:01:06,400 –> 00:01:08,799
که api چگونه به نظر می رسد و امیدواریم
31
00:01:08,799 –> 00:01:10,799
احساس بهتری نسبت به معاوضه بین
32
00:01:10,799 –> 00:01:12,880
هر یک از اینها داشته باشید، بنابراین در پایان می
33
00:01:12,880 –> 00:01:14,880
توانید بهترین انتخاب را داشته باشید. پروژه بعدی شما
34
00:01:14,880 –> 00:01:16,720
شبکه عصبی که ما می خواهیم
35
00:01:16,720 –> 00:01:18,880
بسازیم یک شبکه عصبی کانولوشنال ساده برای
36
00:01:18,880 –> 00:01:21,439
طبقه بندی تصاویر است که از چندین
37
00:01:21,439 –> 00:01:23,680
لایه کانولوشن تشکیل شده و به دنبال آن لایه های
38
00:01:23,680 –> 00:01:25,680
طبقه بندی خطی و
39
00:01:25,680 –> 00:01:28,080
توابع تحریک مقدار در بین آن
40
00:01:28,080 –> 00:01:30,400
ها یک مجموعه داده را بارگذاری می کنیم و مدلی را آموزش می دهیم که
41
00:01:30,400 –> 00:01:32,479
باید در هر دو فریم ورک دقیقاً معماری یکسانی داشته باشید
42
00:01:32,479 –> 00:01:34,799
و سپس
43
00:01:34,799 –> 00:01:36,960
مدل را در یک مجموعه آزمایشی ارزیابی میکنیم، بنابراین
44
00:01:36,960 –> 00:01:38,880
45
00:01:38,880 –> 00:01:40,799
اگر میخواهید بیشتر بدانید
46
00:01:40,799 –> 00:01:42,960
، دورههای رایگانی هم برای تنسورفلو و هم برای
47
00:01:42,960 –> 00:01:44,880
pythorg در کانال خود دارم که به شما ارائه میکند.
48
00:01:44,880 –> 00:01:46,799
از مبتدی تا پیشرفته، اما اکنون
49
00:01:46,799 –> 00:01:49,040
بدون هیچ
50
00:01:49,040 –> 00:01:51,759
مقدمه ای بیایید شروع کنیم، tensorflow 1 در سال 2015 توسط گوگل منتشر شد
51
00:01:51,759 –> 00:01:54,240
و به سرعت در سال 2019 به موفقیت بزرگی تبدیل شد.
52
00:01:54,240 –> 00:01:57,040
flow 2 منتشر شد
53
00:01:57,040 –> 00:01:59,200
که یک بازسازی عمده از api را به ارمغان آورد
54
00:01:59,200 –> 00:02:00,880
و آن را بسیار دوستانه تر برای مبتدیان کرد
55
00:02:00,880 –> 00:02:02,880
tensorflow 2 اکنون دو نوع api مختلف ارائه می دهد:
56
00:02:02,880 –> 00:02:05,759
api ترتیبی مناسب
57
00:02:05,759 –> 00:02:08,160
برای مبتدیان و api زیر کلاس
58
00:02:08,160 –> 00:02:10,800
برای متخصصان api متوالی بسیار
59
00:02:10,800 –> 00:02:12,400
محبوب تر است و این چیزی که ما
60
00:02:12,400 –> 00:02:14,560
در این ویدیو از آن استفاده خواهیم کرد، بر
61
00:02:14,560 –> 00:02:16,800
اساس keras api یکی دیگر از کتابخانه های یادگیری عمیق است
62
00:02:16,800 –> 00:02:18,800
که به طور کامل
63
00:02:18,800 –> 00:02:20,879
در tensorflow 2 ادغام شده است. Api سطح بالایی را ارائه می دهد که
64
00:02:20,879 –> 00:02:22,800
بسیار شبیه به
65
00:02:22,800 –> 00:02:25,120
کتابخانه scikit-learn است و
66
00:02:25,120 –> 00:02:27,120
بسیاری از موارد را خلاصه می کند. چیزهای دشوار است، بنابراین بیایید
67
00:02:27,120 –> 00:02:29,520
ببینیم چگونه از آن استفاده کنیم، من از Google call up
68
00:02:29,520 –> 00:02:31,360
در اینجا استفاده می کنم تا نگران
69
00:02:31,360 –> 00:02:33,920
نصب نباشیم و همچنین یک gpu رایگان دریافت کنیم
70
00:02:33,920 –> 00:02:35,840
، اولین کاری که باید انجام دهیم این است که
71
00:02:35,840 –> 00:02:38,560
نوع زمان اجرا را تغییر دهیم و gpu را انتخاب کنیم.
72
00:02:38,560 –> 00:02:41,440
یک gpu tensorflow به طور خودکار
73
00:02:41,440 –> 00:02:43,760
تمام عملیات مربوطه را روی gpu
74
00:02:43,760 –> 00:02:45,840
انجام می دهد و ما اصلاً
75
00:02:45,840 –> 00:02:48,080
در کد خود نگران این موضوع نیستیم، از طرف دیگر بعداً در
76
00:02:48,080 –> 00:02:50,239
pytorch خواهید دید که ما باید خودمان
77
00:02:50,239 –> 00:02:52,319
مراقب این موضوع باشیم. اکنون یک
78
00:02:52,319 –> 00:02:54,319
نکته قابل توجه این است که برخی از قسمتهای
79
00:02:54,319 –> 00:02:56,480
ویدیو با سرعت افزایش یافته نشان داده میشوند، بنابراین
80
00:02:56,480 –> 00:02:58,000
81
00:02:58,000 –> 00:03:00,000
زمان واقعی آموزش را نشان نمیدهد، اما سرعت
82
00:03:00,000 –> 00:03:01,599
تقریباً برای هر دو فریمورک در یک سطح
83
00:03:01,599 –> 00:03:04,000
است، بنابراین بیایید همه ماژولهای
84
00:03:04,000 –> 00:03:06,159
مورد نیاز خود را وارد کنیم. وارد کردن tensorflow
85
00:03:06,159 –> 00:03:08,720
و چند ماژول از tensorflow.keras ما
86
00:03:08,720 –> 00:03:11,360
همچنین از maplotlip برای رسم برخی از تصاویر
87
00:03:11,360 –> 00:03:13,599
به عنوان مجموعه داده استفاده می کنیم. از یکی از
88
00:03:13,599 –> 00:03:16,319
مجموعه داده های داخلی استفاده
89
00:03:16,319 –> 00:03:18,319
90
00:03:18,319 –> 00:03:20,239
91
00:03:20,239 –> 00:03:21,920
می کنیم.
92
00:03:21,920 –> 00:03:23,440
همراه با
93
00:03:23,440 –> 00:03:25,440
برچسب های مربوطه تنها کاری که
94
00:03:25,440 –> 00:03:27,360
با آن انجام می دهیم این است که آن را نرمال کنیم تا
95
00:03:27,360 –> 00:03:29,840
مقادیری بین 0 و 1 داشته باشد. بیایید تصاویر را رسم کنیم
96
00:03:29,840 –> 00:03:31,920
که به سادگی با matplotlib قابل انجام است
97
00:03:31,920 –> 00:03:34,319
و در اینجا می توانیم شبکه ای از
98
00:03:34,319 –> 00:03:36,879
25 تصویر مختلف را ببینیم حالا بیایید مدل را بسازیم.
99
00:03:36,879 –> 00:03:38,879
این معماری است که ما می
100
00:03:38,879 –> 00:03:40,720
خواهیم بسازیم آن شامل سه
101
00:03:40,720 –> 00:03:43,040
لایه کانولوشن با حداکثر تجمع در
102
00:03:43,040 –> 00:03:45,280
بین و به دنبال آن دو لایه خطی
103
00:03:45,280 –> 00:03:47,360
برای طبقه بندی در انتها و
104
00:03:47,360 –> 00:03:49,440
c است. ما همچنین می خواهیم توابع فعال
105
00:03:49,440 –> 00:03:51,440
سازی بین آنها را همانطور که قبلاً ذکر شد استفاده کنیم
106
00:03:51,440 –> 00:03:53,680
از api متوالی که در آن می توانیم
107
00:03:53,680 –> 00:03:55,760
تمام لایه هایی را که می خواهیم اضافه کنیم با
108
00:03:55,760 –> 00:03:57,760
افزودن یک لایه کانولوشن شروع می کنیم که در آن
109
00:03:57,760 –> 00:04:00,400
اندازه خروجی را تعیین می کنیم و اندازه هسته را
110
00:04:00,400 –> 00:04:02,400
برای لایه اول نیز مشخص می کنیم.
111
00:04:02,400 –> 00:04:04,480
شکل ورودی و همچنین می توانیم به سادگی
112
00:04:04,480 –> 00:04:06,879
با استفاده از نام متناظر به عنوان رشته، یک تابع فعال سازی را مشخص کنیم،
113
00:04:06,879 –> 00:04:09,200
در این
114
00:04:09,200 –> 00:04:11,439
مورد relu، لایه بعدی را به
115
00:04:11,439 –> 00:04:14,000
همین ترتیب اضافه می کنیم، این بار یک لایه max pooling
116
00:04:14,000 –> 00:04:16,160
اضافه می کنیم، سپس اجازه دهید دو لایه کانولوشنال
117
00:04:16,160 –> 00:04:18,478
و یک لایه ادغام حداکثر اضافه کنیم.
118
00:04:18,478 –> 00:04:20,720
در تمام کانولوشن ها یک
119
00:04:20,720 –> 00:04:23,120
لایه مسطح و سپس دوباره یک لایه متراکم با
120
00:04:23,120 –> 00:04:26,080
تابع تحریک relu اضافه می کنیم، یک لایه متراکم
121
00:04:26,080 –> 00:04:28,720
به سادگی یک لایه خطی کاملا متصل است
122
00:04:28,720 –> 00:04:31,040
و در انتها یک لایه متراکم دیگر
123
00:04:31,040 –> 00:04:33,919
با 10 خروجی برای 10 کلاس خود اضافه می کنیم،
124
00:04:33,919 –> 00:04:35,759
اما توجه داشته باشید که در اینجا ما از یک
125
00:04:35,759 –> 00:04:38,000
تابع فعال سازی استفاده نکنید و در عوض
126
00:04:38,000 –> 00:04:40,160
مقادیر خام را بعد از لایه نهایی برگردانید
127
00:04:40,160 –> 00:04:42,160
قبل از اینکه بتوانیم از مدلی استفاده کنیم که باید آن را
128
00:04:42,160 –> 00:04:44,800
فراخوانی کنیم model.compile این به یک
129
00:04:44,800 –> 00:04:47,120
بهینه ساز نیاز دارد و تابع ضرر برای
130
00:04:47,120 –> 00:04:49,440
بهینه ساز می توانیم دوباره به سادگی از یک رشته استفاده کنیم،
131
00:04:49,440 –> 00:04:52,080
در این مورد بهینه ساز adam
132
00:04:52,080 –> 00:04:55,759
برای از دست دادن، یک شی با افت آنتروپی متقاطع ایجاد می کنیم
133
00:04:55,759 –> 00:04:58,000
و
134
00:04:58,000 –> 00:05:00,560
متوجه می شویم که از logits استفاده می کنیم برابر
135
00:05:00,560 –> 00:05:02,880
true است، زیرا ما یک تابع تحریک در آن نداریم
136
00:05:02,880 –> 00:05:04,560
. آخرین لایه برای
137
00:05:04,560 –> 00:05:07,199
بهینه ساز ما همچنین می توانیم یک شی واقعی ایجاد کنیم
138
00:05:07,199 –> 00:05:09,039
تا کنترل بیشتری روی
139
00:05:09,039 –> 00:05:11,280
پارامترها داشته باشیم، اما آن را تا حد امکان ساده نگه
140
00:05:11,280 –> 00:05:13,520
می داریم، همچنین می توانیم لیستی از
141
00:05:13,520 –> 00:05:15,360
معیارهایی را که باید در طول آموزش ردیابی شوند،
142
00:05:15,360 –> 00:05:17,440
مانند اینجا دقت کنیم که
143
00:05:17,440 –> 00:05:19,600
آموزش انجام می شود. در یک خط با فراخوانی
144
00:05:19,600 –> 00:05:22,000
model.fit با تصاویر و
145
00:05:22,000 –> 00:05:24,240
برچسب های آموزشی می توانیم تعداد دوره ها را مشخص کنیم
146
00:05:24,240 –> 00:05:26,720
و با تعیین اعتبار سنجی
147
00:05:26,720 –> 00:05:29,120
split tensorflow به طور خودکار
148
00:05:29,120 –> 00:05:31,039
تصاویر آموزشی را به
149
00:05:31,039 –> 00:05:33,120
مجموعه های آموزشی و اعتبار سنجی تقسیم می کند تا
150
00:05:33,120 –> 00:05:35,440
در طول آموزش ارزیابی داده های اعتبار سنجی را داشته باشیم
151
00:05:35,440 –> 00:05:37,360
. قبلاً می توانم به شما بگویم که
152
00:05:37,360 –> 00:05:39,360
کل آموزش به این سادگی نیست
153
00:05:39,360 –> 00:05:41,600
که با pytherg بعداً اکنون می توانیم
154
00:05:41,600 –> 00:05:44,000
از دست دادن و دقت هر دو
155
00:05:44,000 –> 00:05:46,240
آموزش را بررسی کنیم. و مجموعه های اعتبار سنجی بیایید
156
00:05:46,240 –> 00:05:47,840
آن اعداد را در نظر داشته باشیم و بعداً آن را
157
00:05:47,840 –> 00:05:50,320
با پایتورچ مقایسه کنیم، روش fit همچنین
158
00:05:50,320 –> 00:05:52,560
یک شی تاریخ را به ما ارائه داد که
159
00:05:52,560 –> 00:05:55,039
می توانیم برای مثال برای رسم دقت
160
00:05:55,039 –> 00:05:57,199
برای همه دوره ها از آن استفاده کنیم، این یکی دیگر
161
00:05:57,199 –> 00:05:58,960
از ویژگی های منظم در tensorflow است که
162
00:05:58,960 –> 00:06:01,199
این معیارها را به طور خودکار جذب می کند.
163
00:06:01,199 –> 00:06:03,280
ارزیابی مدل بر روی دادههای آزمایشی
164
00:06:03,280 –> 00:06:06,160
یک خط ساده دیگر است که ما آن را model.evalue
165
00:06:06,160 –> 00:06:08,400
با تصاویر و برچسبهای آزمایشی مینامیم و
166
00:06:08,400 –> 00:06:10,080
سپس میتوان از دست دادن تست و دقت تست را چاپ کرد و
167
00:06:10,080 –> 00:06:12,560
قبل از اینکه به
168
00:06:12,560 –> 00:06:14,400
کد کلیسای پایی که میخواهم بپریم تمام میشود.
169
00:06:14,400 –> 00:06:16,639
به اسپانسر امروزی
170
00:06:16,639 –> 00:06:19,360
که اینتل اینتل است، به توسعه دهندگانی
171
00:06:19,360 –> 00:06:22,000
مانند من کمک می کند تا
172
00:06:22,000 –> 00:06:24,240
راه حل های هوش مصنوعی را با حجم زیادی از ابزارهای سخت افزاری
173
00:06:24,240 –> 00:06:26,400
و نرم افزاری بسازند و مقیاس دهند، به عنوان مثال
174
00:06:26,400 –> 00:06:28,800
مجموعه نرم افزاری اینتل به شما امکان می دهد اکوسیستم
175
00:06:28,800 –> 00:06:31,199
نرم افزار هوش مصنوعی موجود را بسازید.
176
00:06:31,199 –> 00:06:33,280
می توانم 10 بار یا
177
00:06:33,280 –> 00:06:35,919
100 بار بهینه سازی برای
178
00:06:35,919 –> 00:06:38,160
فریمورک های محبوبی مانند پایتون یا تنسورفلو دریافت کنم،
179
00:06:38,160 –> 00:06:41,199
من همچنین از جعبه ابزار تجزیه و تحلیل one api ai
180
00:06:41,199 –> 00:06:43,440
برای دریافت عملکرد انتها به انتها لذت می برم. تلاش
181
00:06:43,440 –> 00:06:46,720
برای باره