مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.
والآن الخطوة التالية هي جعل عدد الخلايا العصبية يعمل والذي سيعطينا ما نريد.
هذا هو عدد الخلايا العصبية في هذا الناقل الضخم بعد تطبيق التلافيف.
هذه هي المعلومات الوحيدة المفقودة التي نحتاجها الآن ، وسوف نحصل عليها من خلال الدالة.
لذلك دعونا نجعل هذه الوظيفة.
سوف نسميها العد ، تسطير الخلايا العصبية بكل بساطة.
وما هو هذا العدد؟
سوف تتخذ الخلايا العصبية وظيفة الحجج؟
حسنًا ، سيأخذ الجسم نفسه ، ولكن بعد ذلك سيأخذ شيئًا آخر ، لأن هذا العدد من الخلايا
العصبية الناتجة في طبقة التسطيح يعتمد في الواقع على شيء واحد فقط.
يعتمد ذلك على أبعاد صورة الإدخال الأصلية ، تلك التي تظهر في بداية الشبكة
العصبية.
وبالتالي فإن الحجة الوحيدة التي نحتاجها الآن هي في الواقع هذه الأبعاد ، أبعاد الصور
المدخلة.
لذلك ، دعنا نطلق اسمًا على هذه الحجة التي تمثل أبعاد الصورة
المدخلة ، وسنسميها صورة قاتمة.
حسنا.
ويمكنني أن أخبرك الآن أن الأبعاد الفعلية للصور المدخلة القادمة من الموت
ستكون 80 × 80.
سنقوم بتقليل حجم الصور الأصلية إلى 80 × 80 ، وهذا سيكون تنسيق الصور التي
تدخل في الشبكة العصبية.
إذن ، ستكون Image STEM في الواقع 188 وتتوافق مع حقيقة أننا نعمل مع صور بالأبيض
والأسود ، أي بقناة واحدة فقط.
لذا تخيل أنها ستكون متساوية فيما بعد مع المجموعة الأولى ، 80 و 80.
حسنا.
إذن هذه هي الحجة الوحيدة التي نحتاجها.
والآن دعونا نحسب الخلايا العصبية.
إذن كيف سنفعل ذلك؟
حسنًا ، أولاً وقبل كل شيء ، ليس لدينا أي ضرر في الإدخال حاليًا.
ليس لدينا أي صورة عذاب يمكننا استيرادها.
سنفعل ذلك لاحقًا.
لذا فإن أول شيء يتعين علينا القيام به هو إنشاء صورة مزيفة ، لكن أبعادها 80.
بحلول 80 ، سننشئ تلك الصورة المزيفة بوحدات بكسل مزيفة ، وسيظل هذا يمنحنا في النهاية
الرقم الذي نريده ، لأن هذا الرقم يعتمد فقط على الأبعاد وليس على وحدات البكسل الموجودة
داخل الصور.
لذلك دعونا فقط ننشئ صورة مزيفة للبدء وبعد ذلك سنحسب عدد الخلايا العصبية التي نريدها.
لذا فإن الحيلة لإنشاء صورة مزيفة هي ، حسنًا ، سنسميها X أولاً وقبل كل شيء ، ثم سنستخدم المصباح
الذي يتمزق لأنه ، كما تعلمون ، سنضع بعض وحدات البكسل العشوائية في هذه الصورة حيث نستخدم
هذه الوظائف العشوائية من الشعلة ، وهي وظيفة التشغيل.
ثم في الداخل سنقوم بإدخال أبعاد الصور التي تبلغ 188.
ولكن نظرًا لأننا سنقوم بإدخال هذه الصورة في الشبكة العصبية وكما تتذكر ، يمكن للشبكة العصبية
فقط قبول مجموعات من حالة الإدخال الموجودة هنا ، مجموعات من صور الإدخال.
سنقوم بإنشاء هذا البعد المزيف الذي يمكننا القيام به مباشرة في وظيفة التشغيل هذه.
نحتاج في الواقع فقط أن نبدأ بالجزء الذي يتوافق مع الدُفعة ،
وبعد ذلك يمكننا فقط وضعه في Apple 188 المطابق لأبعاد صورة الإدخال.
وكما فهمت ، فإن هذه الأبعاد متضمنة في هذه الصورة الخافتة التي تمثل
الجدول 188 لذا ، الآن نحتاج فقط إلى إضافة صورة قاتمة ولكن من أجل تمرير عناصر المعبد لأن صورتها الآن عبارة
عن مجموعة بصفتها قائمة الحجج للدالة التي نحتاج إلى إضافتها هنا قبل تصويرها قبل
الجدول.
سيسمح المتجر في المتجر بتمرير عناصر الصورة المعتمة كقائمة من الوسائط لوظيفة
ما.
وكما ترون ، هذا هو بالضبط ما تم تحديده هنا بالنجمة والأبعاد.
حسنا.
لذلك سيؤدي ذلك إلى إنشاء صورة لوحدات البكسل المزيفة.
لذلك لن يكون لذلك علاقة بصور الهلاك.
لكن مرة أخرى ، سنظل قادرين على الحصول على العدد النهائي من الخلايا العصبية.
والآن آخر شيء يجب أن نتذكره هو تحويل متجه دفعة الإدخال هذا إلى متغير شعلة
لأن هذا سيذهب إلى الشبكة العصبية.
حسنا.
هذا يمثل الآن صورة إدخال لوحدات البكسل العشوائية التي تم تحويلها للتو إلى متغير شعلة.
وهذا سيذهب الآن إلى الشبكة العصبية وبشكل أكثر تحديدًا ، الطبقات التلافيفية للشبكة
العصبية.
نظرًا لأننا نحتاج فقط إلى عدد الخلايا العصبية بعد تطبيق التلافيفات ، فسننتقل
إلى الالتفاف ثلاثة.
لذلك بعد الطبقة التلافيفية الثالثة مباشرة ولن نتطرق إلى الوصلات الكاملة هنا.
وذلك لأن عدد الخلايا العصبية التي نريدها يقع بين التفاف ثلاثة و FC واحد.
حسنا.
والآن بعد أن أصبح لدينا صورة إدخال واحدة بالأبعاد الصحيحة ، حسنًا ، حان الوقت لنشر هذه الصورة في
الشبكة العصبية للوصول إلى طبقة التسطيح.
ثم سنحصل على الخلايا العصبية في طبقة التسطيح وسنحصل فقط على المعلومات التي نريدها.
هذا هو عدد الخلايا العصبية في هذه الطبقة المسطحة.
إذن ما يتعين علينا فعله الآن هو بالضبط ما نفعله في الدالة الأمامية.
نحتاج إلى نشر الإشارات في الشبكة العصبية ، ولكن فقط في الطبقات التلافيفية حتى نصل
إلى طبقة التسطيح.
لذلك دعونا نفعل هذا.
سنقوم بتحديث x.
الآن x هي صورة الإدخال ومع x الثانية هنا ستصبح x الطبقة التلافيفية الأولى.
والآن ما يتعين علينا القيام به هو عملية من ثلاث خطوات.
الخطوة الأولى نطبق الالتفاف على الصور المدخلة.
ثم الخطوة الثانية نطبق الحد الأقصى من التقليم على الصور الملتفة التي تم الحصول عليها.
ثم الخطوة الثالثة نقوم بتنشيط الخلايا العصبية في هذه الصور المعقدة والمجمعة.
وهكذا ستصبح X هذه الطبقة التلافيفية الأولى المكونة من كل هذه التجمعات ، الصور الملتفة.
لنقم بهذه الخطوة الأولى ، ونطبق الالتفاف الأول ، الالتفاف الأول على الصور المدخلة.
إذن ما نفعله هو أن نأخذ الالتفاف نقطة واحدة ذاتية الالتفاف.
هناك نذهب.
نقوم بتطبيقه على صور الإدخال لدينا والتي يتم تمثيلها حتى الآن بواسطة X.
هذه هي الخطوة الأولى.
تم إنجاز الخطوة الأولى.
الآن الخطوة الثانية ، سنقوم بتطبيق الحد الأقصى من التجميع على صورنا الملتفة التي يتم إرجاعها بواسطة الالتفاف واحد
X وتطبيق الحد الأقصى للتجميع.
حسنًا ، سنأخذ دالة من الوحدة الوظيفية ، لذلك نأخذ F الاختصار ثم النقطة
، ثم سنستخدم الدالة max pool إلى D وهي التي نضع التفافًا ذاتيًا واحدًا X بين قوسي أقصى
تجمع لتحديد.
لأننا نطبق الحد الأقصى من التجميع على الصور المعقدة.
لكن هذه الدالة max pooling تتطلب وسيطات إضافية هي حجم النواة أولاً.
مرة أخرى ، هذا هو حجم النافذة التي تنزلق عبر صورك وسيستغرق ذلك أقصى عدد من وحدات
البكسل في كل شريحة.
سيظل هذا يكتشف الميزات لأن الميزات مرتبطة بقيمة عالية من البكسل في المصفوفات
، كما رأيت في محاضرات الحدس.
إذن هذه الحجة الأولى التي نحتاج إلى إدخالها هنا هي حجم النواة هذا وسنأخذ ثلاثة.
هذا اختيار شائع لحجم النواة.
ثم نحتاج إلى إدخال الخطوة بعدد البكسلات التي ستنزلق في الصور وسنقوم بخطوة
مقدارها اثنان.
مرة أخرى ، هذا خيار شائع.
لذا ها نحن ذا.
الآن تم الانتهاء من الخطوة الثانية.
والآن دعنا ننتقل إلى الخطوة الثالثة ، وهي تنشيط جميع الخلايا العصبية في هذه الصور المجمعة والمعقدة
في هذه الطبقة التلافيفية الأولى.
وللقيام بذلك مرة أخرى ، سنقوم بتطبيق دالة على كل هذا.
وها أنا هنا أتناول F مرة أخرى لأننا سنأخذ وظيفة أخرى والتي ، كما قد تكون
خمنت ، ستكون وظيفة تنشيط ، ولكن أي منها كالمعتاد ، ستكون وظيفة تنشيط
المعدل.
وربما تتذكر اسم ريلو لذلك.
هناك نذهب.
هذا هو.
ولذا فإننا نطبق قيمة على صورنا المعقدة المجمعة.
هذا كل هذا.
حسنا.
وهذا كل شيء.
ثلاث خطوات أنجزت.
كان ذلك سريعًا جدًا.
لذا تذكر ، الطريقة التي يجب أن ننظر بها إلى هذا هي أولاً أننا نطبق الالتفاف على صورنا المدخلة ، ثم نطبق
الحد الأقصى من التجميع على صورنا الملتفة التي تم الحصول عليها من خلال الالتفاف.
ثم نقوم بتنشيط الخلايا العصبية في كل هذه الطبقة التلافيفية المجمعة بوظيفة تنشيط المعدل.
مثالي جدا.
نحصل على أول طبقة تلافيفية تم تطبيق تجميعها الأقصى والتي يتم فيها تنشيط الخلايا العصبية
الآن.
وبالتالي فإن ما تفعله أساسًا هو أنها تنشر الإشارات من الطبقة التلافيفية الأولى إلى الطبقة
التالية.
وبالحديث عن المرحلة التالية ، هذا بالضبط ما سنعتني به الآن.
سنفعل نفس الشيء الذي فعلناه للتو على الطبقة التلافيفية الأولى إلى الطبقة التلافيفية
الثانية لنشر الإشارات مرة أخرى في الشبكة العصبية عن طريق تنشيط الخلايا العصبية للطبقة التلافيفية
الثانية.
لكن قبل القيام بذلك ، نحتاج إلى الحصول على هذه الطبقة التلافيفية.
لذا سنطبق الالتفاف على x.
هذه هي أول طبقة تلافيفية حيث سنقوم بتطبيق الالتفاف على X للحصول على الطبقة التلافيفية
الثانية وبعد ذلك سنقوم بسحبها إلى أقصى حد ثم نقوم في النهاية بتنشيط خلاياها العصبية.
لذلك دعونا نفعل هذا.
إنه في الواقع سهل للغاية.
نحتاج فقط إلى نسخ ذلك ولصقه أدناه.
والآن بالطبع نحن بحاجة إلى استبدال الالتفاف واحد بالالتفاف الثاني.
وها نحن ذا.
هذا بالفعل جاهز.
C سهل جدا.
والآن مع هذا الخط ، ننشر الإشارات من الطبقة التلافيفية الثانية إلى الطبقة التالية ، والتي
ستكون الطبقة التلافيفية الثالثة.
وللحصول على هذه الطبقة التلافيفية الثالثة ، حسنًا ، نحتاج إلى تطبيق ذلك مرة أخرى.
لذلك أقوم بنسخ هذا اللصق أدناه واستبدال الالتفاف الثاني بالالتفاف الثالث.
وقد تم ذلك.
أليس عملي جدا؟
ننشر الإشارات في الطبقات التلافيفية الثلاث ومصباح يدوي بفضل هذا الهيكل الرائع.
حسنا.
مثالي جدا.
الآن لدينا إشاراتنا تنتشر حتى الطبقة التلافيفية الثالثة وبعدها ونتحدث عنها بعد
، يقودنا ذلك إلى ما نبحث عنه ، ما يهمنا.
هذه هي طبقة التسطيح.
حسنا.
والآن بعد أن أصبح لدينا الطبقة التلافيفية الثالثة ، وهي آخر X هنا ، فقد حان الوقت للحصول على طبقة التسطيح.
وهذا بالضبط ما سنفعله الآن.
سنقوم بتسوية جميع وحدات البكسل لهذه الطبقة التلافيفية الثالثة.
أي أننا سنأخذ كل البكسلات لجميع قنوات الطبقة التلافيفية الثالثة.
سنضعهم واحدًا تلو الآخر في ناقل ضخم.
وبالطبع ، لن يكون هذا المتجه الضخم سوى طبقة التسطيح.
وفي نفس الوقت ، سنستخدم حيلة للحصول على عدد الخلايا العصبية في طبقة التسطيح هذه.
هذا بالضبط ما نبحث عنه.
هذا هو عدد الخلايا العصبية التي نفتقدها.
وبالتالي ، دعنا نعيد ما نريد مباشرةً.
وفي هذه العودة ، سنقوم بتسطيح الطبقة التلافيفية الثالثة ومع ذلك في نفس الوقت ، عدد الخلايا
العصبية في هذه الطبقة المسطحة.
إذن سنأخذ X ، وهي الطبقة التلافيفية الثالثة.
سنأخذ جميع قنوات هذه الطبقة التلافيفية الثالثة ، وسنستخدم
وظيفة هي دالة الحجم لتسطيح كل وحدات البكسل لكل هذه القنوات في متجه واحد ضخم.
وهكذا يمكنك العثور على الحيلة في البرنامج التعليمي PyTorch.
حسنًا ، نأخذ بيانات X أولاً لأن X عبارة عن هيكل خاص ، إنه متغير شعلة.
إذاً لها هيكل معقد جداً.
لكن علينا أولاً الوصول إليها بالبيانات هنا ، ثم نحتاج إلى عرض ما بداخلها.
لذلك نستخدم دالة العرض هذه ، والآن نحتاج للوصول إلى ما نبحث عنه ، ويتم
توفير ذلك من خلال الوسيطتين واحد وناقص واحد.
ليس عليك أن تفهم ما بداخل الهيكل ، لكن يمكنك فقط أن تفهم أن هذه هي الطريقة التي سنحصل
بها على هذا العدد من الخلايا العصبية.
ولكي ننتهي ، نحتاج إلى إضافة الحجم ، ثم الأقواس ، وداخلها نقوم بإدخال واحد.
إذن ما نقوم به هنا بشكل أساسي ، ما نفعله هو أننا نأخذ كل وحدات البكسل لجميع القنوات ونضعها واحدة
تلو الأخرى في هذا المتجه الضخم ، والذي سيكون مدخلات الشبكة المتصلة بالكامل.
هذا في الأساس ما يفعله الحجم.
وبهذا ، يمكننا الحصول على هذا العدد من الخلايا العصبية التي نبحث عنها.
حسنا.
حتى الآن نحصل على ما نريد.
وأخيرًا ، يمكننا استبدال الخلايا العصبية العددية هنا بما يتم إرجاعه بواسطة هذه
الوظيفة عند تطبيقها على تنسيق صور الموت ، أي واحد في 80 في 80.
لذا ما يتعين علينا فعله الآن هو استبدال الخلايا العصبية العددية بأخذ عدد الخلايا العصبية.
الوظيفة التي نطبقها على تنسيق صور التكبير والتي ستكون مجموعة الصفوف.
80 و 80.
وها نحن ذا.
وبالطبع ، نحن لا ننسى أنفسنا لأن عد الخلايا العصبية هو في الواقع طريقة من فئة CNN.
لذلك نحن بحاجة إلى إضافة الذات والآن يجب أن يختفي التحذير.
وها نحن ذا.
الآن كل شيء جيد.
نحصل على بنية الشبكة العصبية مع عدم وجود أي شيء مفقود.
ولدينا هذا العدد.
تعمل الخلايا العصبية في حالة ما إذا كنت تريد تجربة بعض البنى الأخرى ولا تريد حساب هذا العدد
من الخلايا العصبية يدويًا.
ما عليك سوى استخدام هذه الوظيفة ، وتقوم بتطبيقها على تنسيق صورك وسيوفر لك هذا ما تريده
مباشرة.
هذا هو عدد الخلايا العصبية في طبقة الفيضان دون الحاجة إلى فعل أي شيء وأيًا كانت البنية.
هذا رائع جدًا.
والآن انتهينا من أول خطوة مهمة كبيرة في هذا الدماغ التي نتخذها.
ولدينا خطوة أخيرة وهي وظيفة أخيرة علينا القيام بها ، والتي ستكون دالة الأمام الرئيسية.
لذلك سنقوم بنشر الإشارات من بداية الدماغ ، أي من عيون الذكاء الاصطناعي
حتى طبقة الإخراج.
هذا بعد الاتصال الكامل الثاني.
لذلك سنفعل ذلك في البرنامج التعليمي التالي.
وحتى ذلك الحين ، استمتع بـ i.