‫حسنًا.
‫لذا فقد حصلنا الآن على قسم التدريب وقسم التحقق من الصحة.
‫قيمنا X هي مسارات الملفات إلى صورنا وقيمنا Y.
‫الملصقات عبارة عن تمثيلات منطقية غير متجانسة للتسميات.
‫وما يتعين علينا القيام به الآن هو أن ملصقاتنا موجودة بالفعل في تنسيق رقمي ، وعلينا تحويل
‫صورنا إلى أرقام أو على الأقل إنشاء وظيفة للقيام بذلك لنا.
‫لذلك دعونا ننشئ عنوانًا صغيرًا لذلك.
‫اننا سنحقق ذلك.
‫معالجة الصور.
‫تحويل الصور إلى أزمنة.
‫لذلك نحن نوعًا ما نبدأ رسميًا في هذه الخطوة هنا.
‫والآن ، عندما أقول تحويل الصور إلى أزمنة ، فهذا موضوع شائع سيكون لديك بغض النظر عن نوع البيانات
‫التي تعمل عليها.
‫لذا ، حتى لو لم تكن صورًا ، أو إذا كان شيئًا مثل ملف صوتي أو مقطع نصي ، فلا يزال يتعين عليك تحويله
‫إلى أزمنة إذا كنت تعمل مع TensorFlow.
‫وتذكر ، الأزمنة تمثيل عددي ، نوعًا ما مثل المصفوفة.
‫حسنًا ، ما هي الطريقة التي يمكننا بها فعل هذا مرة أخرى؟
‫بدلاً من المعالجة المسبقة لصورنا في دفتر الملاحظات ، قد نقوم بمعالجتها مسبقًا فقط عندما نحتاج
‫إلى ذلك.
‫لأن معالجة مسارات الملفات أسهل بكثير من معالجة الصورة لأنها تعمل ببيانات
‫أقل.
‫لذلك نظرًا لأن لدينا بالفعل مسارات الملفات ، سأحتفظ بهذا المظهر لبقية هذا المشروع.
‫وأنا أقول ، ربما تفعل.
‫سنفعل هذا.
‫سنبدأ في تطوير بعض الوظائف لخطوات المشروع.
‫وما أعنيه بذلك هو إنشاء وظائف بدلاً من مجرد كتابة سطر واحد من التعليمات البرمجية ثم تشغيل
‫الخلية.
‫لن تعمل الخلية لأنه لا يوجد شيء هناك.
‫في البداية ، عندما بدأت مسيرتي ، هذا ما كنت سأفعله.
‫أود فقط تشغيل أسطر لا حصر لها من التعليمات البرمجية في عدد لا يحصى من الخلايا ثم استمر في تشغيلها.
‫وبعد ذلك في النهاية ، حتى لو كنت في الأسفل في جزء آخر من دفتر الملاحظات ، فسوف يتعين علي
‫إعادة كتابة نفس الرمز الذي كتبته بالفعل في مكان ما هنا.
‫لهذا السبب سنبدأ في إنشاء وظائف حتى نتمكن من كتابة التعليمات البرمجية مرة واحدة.
‫قد يستغرق الأمر بعض الوقت لتبدأ به ، ولكن يمكننا إعادة استخدام هذه الوظائف لاحقًا ، وهذا ما أريدك
‫أن تبدأ في التفكير فيه في مهام سير عملك.
‫إذا كنت تفكر ، مرحبًا ، سأقوم بمعالجة البيانات هنا ، ربما أحتاج إلى هذه الوظيفة
‫، تلك الوظيفة لاحقًا.
‫لذلك سأحولها إلى وظيفة بدلاً من خلية واحدة فقط.
‫لذلك دعونا نفعل ذلك للمعالجة المسبقة.
‫تتوتر صورنا.
‫سنقوم بكتابة دالة تقوم ببعض الأشياء.
‫الآن ، ستكون وظيفة المعالجة المسبقة هذه خاصة بالصور ، لكن المفهوم يظل كما هو.
‫مهما كانت البيانات التي تعمل بها ، فربما يتعين عليك تحويلها إلى شكل من أشكال الموتر.
‫لذلك نريد أن نأخذ مسار ملف الصورة كإدخال.
‫هذا ما حصلنا عليه حتى الآن.
‫لدينا مسارات ملفات الصور.
‫نريد استخدام TensorFlow لقراءة الملف وحفظه في متغير.
‫ربما سنسمي تلك الصورة المتغيرة.
‫جميل وبسيط.
‫ثلاثة نريد أن نحول صورتنا.
‫إذن متغير الصورة ، الذي سيكون JPEG ، لأن هذا هو نوع ملف صورة الصورة الذي
‫نتعامل معه في زمنين.
‫أربعة.
‫ما التالي؟
‫نحن بحاجة إلى تغيير حجم الصورة.
‫لذلك لأن جميع صورنا بأحجام مختلفة.
‫من الممارسات القياسية عادةً تغيير حجم جميع صورك أو تصنيف الصور أو نوع من
‫خط أنابيب التعلم العميق بالصور إلى حجم موحد.
‫لذلك سنقوم بتغيير حجم الصورة.
‫أه أن يكون على شكل 224.
‫الآن ، أريدك أن تفكر في الأمر دون أن يكون لديك خبرة عملية في إعادة تشكيل الصورة.
‫لماذا قد يكون من المهم أن يكون لديك.
‫هو - هي.
‫الآن ، يمكن أن يكون هذا الحجم عشوائيًا ، ولكن لماذا قد يكون من المهم الحصول على صور بنفس الحجم عند
‫العمل معهم؟
‫أخيرًا ، قم بإعادة الصورة المعدلة.
‫حاليا.
‫لدينا خمس خطوات للدالة.
‫ربما تفكر ، واو ، كيف يمكنني فعل ذلك؟
‫حسنًا ، أريدك أن تلقي نظرة على مورد هنا.
‫لذلك TensorFlow.
‫تحميل البيانات.
‫ها نحن ذا.
‫لذلك سأترك هذا جانباً بحيث يمكنك البدء في قراءة كيفية تحميل البيانات في TensorFlow.
‫لذلك هذا قسم جيد حقًا للتحقق منه.
‫إذن بيانات دليل TensorFlow.
‫سأترك ذلك في قسم الموارد كمرفق إذا كنت تريد التحقق منه.
‫لقد أمضيت 10 دقائق فقط في القراءة من هنا.
‫ربما يمكنك قضاء 10 دقائق خلال اليومين المقبلين ، حتى لو لم تفهم ذلك.
‫بدأت للتو في جمع بعض المفاهيم معًا.
‫والآن بالنسبة للدروس التعليمية ، يجب أن يكون هناك برنامج آخر هنا.
‫أعتقد تحميل البيانات والمعالجة المسبقة.
‫لذا فهذه واحدة أخرى ذات قيمة.
‫نأتي هنا؟
‫إذن هذا ما سنفعله في تحميل الصور.
‫مشكلتي هي محاولة تحميل الصور وأريد معرفة كيفية تحويلها إلى أزمنة.
‫لذلك أذهب إلى البرامج التعليمية.
‫أنا أبحث عن بيانات التحميل.
‫وأبحث عن كيفية تحميل الصور.
‫وبعد ذلك يمكنك القراءة من هنا.
‫لذلك سأتأكد من ربط هذين المصدرين.
‫وبعد أن تنتهي من هذا الفيديو ، أريدك أن تقرأها لمدة 10 دقائق لكل منها.
‫لذا دعنا نعود.
‫دعونا نبني هذه الوظيفة هنا.
‫لكن قبل أن نفعل ذلك ، أريد فقط أن أقدم لكم توضيحًا لما تبدو عليه الصورة في الواقع
‫إذا قرأناها وشكل الموتر.
‫لذلك دعونا.
‫تحويل صورة إلى حكم أ.
‫هنا.
‫قبل أن نفعل
‫ذلك ، دعنا نقول كيف يبدو استيراد الصورة.
‫لذلك قمت بالتحويل إلى مصفوفة عددية.
‫هل تتذكر كيف قلت أن الأزمنة تشبه إلى حد بعيد المصفوفات أو المصفوفات المعقدة ذات الأبعاد؟
‫إذن ما سنراه الآن ، لذلك نحن نستورد فقط لتعيين وظيفة الرسم في القراءة التي تعني
‫قراءة الصورة.
‫سأقوم بحفظ الصورة إلى M.
‫دعنا نحصل على أسماء الملفات 42.
‫تذكر أن أسماء الملفات هي مجرد قائمة بمسارات الملفات لصور التدريب الخاصة بنا.
‫الذي هو هنا.
‫رؤية الكلب.
‫صور التدريب.
‫ثم نريد التحقق من شكل الصورة.
‫تمام.
‫إذن هذه صورتنا هنا.
‫هذا ارتفاع.
‫عرض.
‫في الواقع ، دائمًا ما أشعر بالارتباك ، لكن هذا هو السبب في أننا نوعا ما نعيد تشكيلها لتكون مثل صورة مربعة.
‫لذلك لا يهم هذا الارتفاع والعرض حقًا.
‫أعتقد أنها قناة الطول والعرض واللون.
‫وما أعنيه بقناة اللون هو البكسل الأحمر والأخضر والأزرق.
‫إذا ذهبنا إلى هنا ، ما هي قناة الألوان؟
‫قناة الكائن عينة.
‫إذن هذا ما تتكون الصورة من ألوان الأحمر والأخضر والأزرق.
‫سأدعك تغوص أكثر قليلاً في ذلك بنفسك.
‫لكن عليك فقط أن تثق بي أن كل بكسل في الصورة هنا عبارة عن
‫مزيج من قيم الأحمر والأخضر والأزرق ، وتتراوح من 0 إلى 255.
‫لذلك إذا ألقينا نظرة على صورتنا ، وهي عبارة عن مصفوفة متكتلة ، فيجب أن تكون كذلك.
‫هناك نذهب.
‫القيم بين صفر و 255.
‫لذا إذا ذهبنا إلى الصورة dot max ، فربما يخبرنا هذا.
‫255 وصورة الرجال.
‫صفر.
‫هناك نذهب.
‫لذا ، فإن قيم البكسل باللون الأحمر والأخضر والأزرق بين صفر و 2. 55.
‫هذا حرفيا ما صورتنا.
‫هو.
‫الآن هو في الحكم في الوقت الحالي.
‫أتذكر كيف قلت أن الأزمنة تشبه إلى حد بعيد المصفوفات المعقدة.
‫فلنحول هذا إلى زمن ويمكننا فعل ذلك.
‫يمكنك تحويل أي شيء تقريبًا إلى موتر باستخدام TF Constant.
‫الآن إذا قرأنا docstring يخلق موترًا ثابتًا من كائن يشبه الموتر.
‫جميلة.
‫يمكنك قراءة المزيد في ذلك.
‫لكن تذكر شعارنا إذا كنت في شك ، فقم بتشغيل الكود.
‫إذن هذا ما سنمارسه.
‫دعونا نرى ما يفعله هذا.
‫لدينا نفس القيم بالضبط.
‫في الواقع ، دعنا نوضح هذا.
‫نريد صورة وربما ما يصل إلى اثنين فقط.
‫نفس الشيء مع ثابت TFA.
‫إذن ، الاختلاف الوحيد هنا هو أننا حصلنا عليه الآن في شكل موتر إلى 353 والآن شكله
‫إلى 353.
‫قمنا بفهرستها لتظهر اثنين فقط.
‫ولكن إذا رأيت هذا مصفوفة numpy وهذا موتر.
‫الاختلاف الوحيد هنا هو أن هذا الموتر عبارة عن تدفق مكثف وهو الآن قادر على العمل على وحدة المعالجة المركزية ، لذا فهو أسرع
‫بكثير في الحوسبة.
‫لذلك سيكون بإمكان وحدة معالجة الرسومات الخاصة بنا العثور على أنماط بهذه الأرقام أسرع بكثير من وحدة المعالجة المركزية الخاصة بنا ، الموجودة
‫على جهازي الحالي ، جهاز MacBook Pro ، الذي سيكون قادرًا على العثور على أنماط في هذه.
‫لنذهب هنا.
‫تحويل الصورة إلى موتر.
‫لذا فقد رأينا الآن القليل من الأساسيات وراء ما تتكون الصورة من أي نوع من البيانات؟
‫قيم البكسل.
‫أحمر أو أخضر أو أزرق بين صفر و 255.
‫لقد رأينا كيف تبدو الصورة في الحكم أ ورأينا كيف تبدو الصورة في موتر.
‫دعنا أخيرًا ننتقل إلى الدالة ، التي يتعين عليها تنفيذ هذه الخطوات الخمس.
‫إذن ما الذي يمكننا فعله لحفظ هذا الفيديو من أن يطول أكثر من اللازم.
‫أعلم أنني قلت أننا سنقوم بفحص وظيفة كتابة ، لكنني أعتقد أنه من الجيد بناء بعض الحدس
‫قبل أن نكتب هذه الوظيفة بالفعل.
‫سنبني هذه الوظيفة في الفيديو التالي.
‫في هذه الأثناء ، حاول وضع إحدى صورك هنا.
‫يمكنك اختيار أي رقم اسم ملف ثم مجرد اللعب بالقيم المختلفة ومحاولة
‫تحويله إلى موتر.