‫حسنا عظيم.
‫الآن لدينا وظيفة مساعدة صغيرة لا تعيد لنا صورنا في شكل أزمنة فحسب ، بل نحصل على عمليات ، صور
‫لنا ، ولكنها أيضًا ترجع التسمية حتى نتمكن من استعادتها في شكل tuple.
‫لذلك دعونا نستفيد من ذلك لكتابة دالة أخرى ستحول بياناتنا ، كل بياناتنا
‫، لأن هذه عينة واحدة فقط.
‫نحن بحاجة إلى طريقة لتحويل جميع بياناتنا حتى X و Y وبياناتنا والتسميات إلى مجموعات من الحجم.
‫32.
‫حسنًا ، الآن ، دعنا نكتب ذلك.
‫تذكر أننا نحاول التواصل مع أنفسنا هنا في دفاتر الملاحظات بطريقة لتحويل بياناتنا إلى مجموعات من
‫الأزمنة.
‫ونذهب هنا في النموذج.
‫تسمية الصورة.
‫لنقم بعمل وظيفة لتحويل جميع بياناتنا.
‫X و Y على دفعات.
‫حسنا.
‫رائع.
‫الآن ، مرة أخرى ، إذا كنت تتساءل من أين أتى كل هذا ، فإن أفضل مكان لتحميل أي نوع من البيانات
‫هو قراءة الوثائق.
‫أعلم أنه قد يكون مملاً بعض الشيء في بعض الأحيان ، لكن صدقني ، اقرأ حتى لو لم تفهم في المرة
‫الأولى.
‫لم أفهم في المرة الأولى.
‫اقرأ من خلاله.
‫حاول.
‫جربه مرة أخرى وانظر كيف تسير.
‫هذا سوف يكون
‫كلب كبير للوظيفة.
‫أوه ، هذا مناسب لأننا نعمل على رؤية الكلاب ، لكنه سيوفر لنا الكثير
‫من الوقت لاحقًا.
‫لنفعلها اذا.
‫لذلك نحن بحاجة إلى تحديد حجم الدفعة.
‫إذاً 32 هي بداية جيدة.
‫تذكر أن TensorFlow الافتراضي هو 32 دفعة.
‫لذلك إذا لم تقم بتعيينه في مكان ما ، فمن المحتمل أن يكون الافتراضي هو 32.
‫لكننا سنقوم بتعريفه على أي حال.
‫لذلك دعونا ننشئ وظيفة لتحويل البيانات إلى دفعات ، والآن سنقوم بالكتابة من خلال هذه الوظيفة
‫معًا.
‫وستقوم ببعض الأشياء الصغيرة بشكل مختلف اعتمادًا على ما إذا كنا نريد مجموعة بيانات تدريبية
‫، أو مجموعة بيانات التحقق من الصحة ، أو مجموعة بيانات الاختبار.
‫لأن تذكر ، هذه هي مجموعتنا الثلاث هناك.
‫إذن هذه هي مجموعاتنا الثلاث.
‫لذلك لدينا مجموعة تدريب.
‫سنقوم بتحويل ذلك إلى مجموعة تدريب ومجموعة تحقق ودفعة اختبار.
‫حسنا.
‫لذلك نريد def إنشاء دفعات البيانات.
‫نريده أن يأخذ X و Y.
‫وفي الواقع لماذا لا يمكن أن يكون لا شيء.
‫الآن أريدك أن تفكر في السبب.
‫لماذا قد يكون لا شيء.
‫لماذا تسمياتنا؟
‫من المحتمل أن يكون هذا منطقيًا إلى حد ما.
‫ولكن فكر فقط في سبب رغبتنا في إنشاء مجموعة بيانات بدون تسميات؟
‫البيانات الصحيحة تساوي خطأ وبيانات الاختبار تساوي خطأ.
‫وسنترك لأنفسنا القليل من التوثيق هنا.
‫اعتدت أن يكون لدي زميل يدعى رون وأخبرني بتقنية تسمى البط المطاطي.
‫لقد كان مبرمجًا أفضل بكثير مما كنت عليه وقال ، إذا كنت تواجه مشكلة.
‫تعرف على كيفية عمل شيء ما في الكود ، اكتبه باللغة أولاً ، أو قل ذلك لنفسك بلغة
‫كما لو كنت تتحدث إلى بطة مطاطية.
‫والبط المطاطي لا يفهم اللغة الإنجليزية جيدًا ، لذا عليك أن توضحها تمامًا.
‫هذه نصيحة رائعة من رون.
‫شكرا لك رون.
‫لذلك ، تُنشئ هذه الوظيفة مجموعات من البيانات من الصورة X وتسمية أزواج y.
‫إنه يخلط البيانات إذا كانت بيانات التدريب ، لذلك يخلط البيانات حولها لأنه إذا كان هناك بعض الترتيب المتأصل
‫في ملف التدريب الذي قمنا بتنزيله ، ربما ليس لأن هذه تبدو مختلطة إلى حد كبير.
‫لا نريد أن يتذكر نموذجنا هذا الترتيب.
‫نريده أن يكون قابلاً للتكيف قدر الإمكان بغض النظر عن الترتيب والصورة اللذين يأتيان.
‫ولكن إذا كانت بيانات التدريب يتم تبديلها عشوائيًا ولكن لا يتم تبديلها إذا كانت بيانات التحقق من الصحة.
‫الآن أريدك أن تفكر في سبب عدم خلطها عشوائيًا إذا كانت بيانات التحقق من الصحة.
‫لا تقلق ، سنغطي ذلك ، ولكن فقط فكر في الأمر في الوقت الحالي.
‫يقبل أيضًا بيانات الاختبار كمدخلات.
‫الآن هنا لماذا.
‫لماذا قد يكون لا شيء.
‫لأن بيانات الاختبار لا تحتوي على تسميات ، بالطبع.
‫حاليا.
‫ما نريد القيام به هو بناء دالة تقوم بنفس الشيء ولكنها تحتوي على بعض جمل if أو جمل elif ، إذا كانت
‫بيانات صالحة أو بيانات اختبار.
‫لذلك نحن نعرف ما نريد القيام به نوعًا ما.
‫ولدينا بعض الشروط هنا إذا كانت صالحة أو بيانات اختبار.
‫لذلك دعونا نبدأ ببيانات الاختبار لأنني أعتقد أن هذا هو أقل قدر من الأشياء.
‫لذلك إذا كانت البيانات عبارة عن مجموعة بيانات اختبار.
‫ربما لا نفعل ذلك.
‫كنت على وشك الكتابة ، كان لدي بالتأكيد ملصقات حيث نعلم أنه ليس لدينا تسميات إذا كانت مجموعة بيانات اختبار.
‫لذلك سنذهب إذا اختبار البيانات.
‫مطبعة.
‫دعونا نعطي أنفسنا القليل من الرؤوس الصغيرة.
‫أنا أحب أن أقدم لنفسي بعض الأفكار.
‫ماذا يحدث هنا؟
‫إن إنشاء مجموعة بيانات الاختبار هو فقط للتأكد من أنه في وقت لاحق ، مهلا ، ربما نقوم بعمل بعض مجموعات البيانات
‫وقد مررنا عن طريق الخطأ معلمة خاطئة لاختبار البيانات وينتهي الأمر بفعلها بشكل مختلف لبيانات الاختبار.
‫لا نريد ذلك.
‫نريد أن نعرف أنه يصنع دفعات اختبارية.
‫لذا فإن البيانات تساوي مجموعة بيانات TFTP.
‫إذن هذه هي الوحدة النمطية في بيانات TensorFlow.
‫نحن نصنع بشكل أساسي مجموعة بيانات مجمعة وسنذهب إلى هذه مجموعة مثيرة للاهتمام قليلاً هنا
‫من شرائح الموتر.
‫لذلك يُنشئ مجموعة بيانات ، ملف. ك. أ. مجرد مجموعة بيانات TensorFlow التي تكون عناصرها شرائح من زمن معين.
‫لذا فإن ما يقوله هذا أساسًا هو تمرير بعض الأزمنة وسأقوم بإنشاء مجموعة بيانات من ذلك.
‫محيرة قليلاً ، أعلم ، لكن هذه هي الطريقة التي يتم بها ذلك في ثابت TensorFlow tf x.
‫إذن ما يقوله هذا هو أنني سأقوم بإنشاء مجموعة بيانات TensorFlow.
‫من الشرائح المتوترة.
‫X ولأننا نمرر X إلى ثابت T ، فإنه يحول X إلى موتر.
‫إذن هذه هي مسارات الملفات فقط.
‫لا تسميات.
‫تمام.
‫والآن تعود البيانات.
‫هذا هو المكان الذي نحول فيه مجموعة بيانات TensorFlow الخاصة بنا ، لأن هذا الآن سيحول كل X إلى مجموعة بيانات.
‫نحتاج إلى تحويله إلى حجم دفعة من 32.
‫لذلك يساوي تنسيق البيانات.
‫نحن بحاجة إلى معالجة الصورة.
‫ونحتاج إلى تحويلها إلى حجم دفعة دفعة.
‫قف.
‫هناك الكثير من الأشياء التي تحدث هنا.
‫دانيال ، ما الذي يحدث؟
‫حسنًا ، لقد تحدثنا من خلال السطر أعلاه ، ولكن هذا ، كل ما يقوله هو في الأساس أخذ هذه البيانات ، وهي مجموعة
‫بيانات TensorFlow مصنوعة من X.
‫وهي عبارة عن أسماء ملفات في شكل أزمنة ثم تعيين وظيفة صورة العملية الخاصة بنا.
‫انظر ، هذا هو السبب في أننا جعلناها في وظيفة حتى نتمكن من تسميتها صورة العملية.
‫سوف يمر بكل هذه الخطوات هنا حول أسماء الملفات الخاصة بنا.
‫لذلك ستقوم باستيرادها ، وتحويلها إلى أزمنة طبيعية ، ثم تحويلها إلى دفعة من حجم
‫الدُفعة.
‫لنذهب هنا.
‫لذلك دفعة بيانات TensorFlow.
‫هذا هو سير العمل الذي أستخدمه عندما أنظر إليه.
‫وظيفة.
‫لذلك إذا عدنا.
‫هناك نذهب.
‫حزمة.
‫يدمج العناصر المتتالية لمجموعة البيانات هذه في دفعات.
‫هناك نذهب.
‫لذا إذا مررناها بمدى ثمانية وأردنا أن تكون مجموعة من ثلاثة ، فسوف نقسم ثمانية
‫إلى ثلاث دفعات.
‫هذا هو بالضبط سبب ظهور هذا في علامة تبويب جديدة؟
‫هذا ما ستفعله هنا ، باستثناء الحجم 32.
‫رائع.
‫هذه هي بيانات الاختبار.
‫الآن نريد أن نفعل إذا كانت البيانات مجموعة بيانات صالحة ، لا نحتاج إلى تبديلها عشوائيًا.
‫الآن ، أريدك أن تفكر مرة أخرى ، لماذا لا نحتاج إلى خلطه؟
‫لا بأس إذا لم تكن متأكدًا تمامًا.
‫لقد علقت في هذا كثيرًا أيضًا.
‫لذلك سنقوم بطباعة بيان تقدم صغير هنا ثم سنفعل نفس الشيء مثل هذا.
‫يمكننا فقط نسخ ذلك ، لكننا سنتدرب على كتابته.
‫TFF البيانات.
‫مجموعة البيانات من.
‫شرائح موتر.
‫الآن ، هذا هو المكان.
‫لأن مجموعة التحقق لدينا تحتوي على تسميات.
‫سنقوم بتمريره بزوجين X وثابت TF y.
‫لذا فقط نحول أسماء الملفات والتسميات إلى أزمنة.
‫وحصلنا هنا على مسارات الملفات.
‫ملصقات.
‫والآن لدينا مجموعة بيانات TensorFlow.
‫من أواني ملفات الصور والتسميات لأنها مجموعة بيانات تحقق من الصحة.
‫تحتوي مجموعة بيانات التحقق من الصحة على تسميات وسنحولها إلى مجموعة بيانات تساوي خريطة البيانات ، تمامًا كما
‫هو مذكور أعلاه.
‫قم بمعالجة الصورة وتحويلها إلى مجموعة من حجم الدُفعة.
‫أوه.
‫الحصول على الزناد سعيدا.
‫رائع.
‫ثم إرجاع دفعة البيانات.
‫وأخيرًا ، نريد إذا لم يعمل أي من هذه الأشياء بشكل جيد ، وإذا كانت البيانات الصحيحة خاطئة وبيانات الاختبار خاطئة أيضًا ، فمن الواضح
‫أنها ستكون دفعة تدريب.
‫لذلك سنقوم بإنشاء مجموعات بيانات تدريبية.
‫بوم ، بوم ، بوم.
‫ودعونا نذهب.
‫لذلك إذا كانت مجموعة بيانات تدريبية ، فنحن نريد خلطها.
‫هذا هو الاختلاف الوحيد هنا.
‫لذلك نريد تحويل مسارات الملفات والتسميات إلى أزمنة.
‫لذا كما فعلنا مع عملية التحقق ، يمكننا نسخ هذا.
‫الآن ، من المحتمل أن تكون هناك طريقة أكثر فاعلية لكتابة هذه الوظيفة التي
‫تؤدي نفس الوظيفة ، لكنني حاولت كتابتها بطريقة مفهومة إلى حد ما فيما يتعلق بما يحدث.
‫ثابت X وكما قلت أنني ربما قلت أنه مفهوم إلى حد ما.
‫لكن إذا صادفت شيئًا كهذا للمرة الأولى ، صدقني ، عندما فعلت ذلك ، كنت في حيرة من أمري.
‫ولكن بمجرد أن أتناولها خطوة بخطوة ، هل تتذكر أسلوبنا في تقسيم الوظيفة؟
‫اكتبه سطراً سطراً ، ثم تحقق مما يفعله في كل سطر.
‫لذلك نريد تبديل أسماء المسار والتسميات عشوائيًا قبل التعيين.
‫سنذهب إلى هذا في غضون ثانية قبل أن يكون تعيين وظيفة معالج الصور أسرع من خلط الصور.
‫سأكتب الكود فقط حتى نتحدث عنه.
‫لكن خلط البيانات.
‫العازلة تتنهد.
‫لذا فإن حجم المخزن المؤقت يشير فقط إلى عدد المتغيرات التي نريد تبديلها عشوائيًا؟
‫نريد خلط كل شيء.
‫حسنًا ، يحدث الكثير هنا.
‫حسنًا ، كل ما يقوله هو ، مهلاً ، خذ هذه البيانات ، وهي مجموعة بيانات TensorFlow للبيانات ، لذلك
‫أسماء الملفات والتسميات ثم ترتيبها عشوائيًا ونريد خلط عدد الأمثلة عشوائيًا.
‫إذا قمنا بخلط 100 فقط ، فسيأخذنا أول 100 مثال من X و Y ونقوم بترتيبها عشوائيًا.
‫لكن لا ، نريد خلطهم جميعًا.
‫والسبب في ذلك هو أنك قد ترى برامج تعليمية أخرى يتم خلطها لاحقًا بعد تشغيل وظيفة الخريطة.
‫خريطة البيانات.
‫معالجة.
‫صورة.
‫لذا ، إذا أجريت تبديلًا عشوائيًا بعد قيامك بمعالجة الصورة بالفعل ، فسيستغرق الأمر وقتًا أطول بكثير لخلط
‫صورة كاملة بدلاً من اسم الملف فقط.
‫لذا كما قلت ، تذكر ، نحن نحاول تقليل الوقت بين التجارب.
‫لذلك نريد أن نحاول الحصول على أي تسريع في وسعنا.
‫لقد أدركت للتو أننا ارتكبنا خطأً بسيطًا هنا.
‫في مجموعة بيانات التحقق لدينا لأن لدينا.
‫الصور والتسميات.
‫نحتاج إلى تعيين الوظيفة والحصول على ملصق الصورة الذي يعالج صورتنا أيضًا.
‫بينما بالنسبة لمجموعة بيانات الاختبار الخاصة بنا ، نظرًا لعدم وجود ملصقات لدينا ، يمكننا تشغيل وظيفة الصورة المعالجة
‫مباشرة.
‫لذلك دعونا نستبدل تسمية الصورة هذه وستكون هي نفسها.
‫لنا.
‫مجموعة بيانات التدريب ، لذا احصل على ملصق صورة رائع.
‫وقد يكتب فقط ما يفعله هذا مع قليل من التعليق.
‫لذلك قم بإنشاء مجموعات تصنيف الصورة.
‫يؤدي هذا أيضًا إلى تحويل مسار الصورة إلى صورة مُعالجة مسبقًا.
‫لذا إذا استطعت.
‫قم بتبديل بياناتك عندما تكون في أصغر تنسيق لها ، أ. ك. أ في أسماء ملفات حالتنا بدلاً من الصور الكاملة.
‫وأخيرًا ، نريد تحويل بيانات التدريب إلى مجموعات.
‫لذا فإن دفعة البيانات تساوي دفعة البيانات.
‫باش يتنهد.
‫وبعد ذلك سنخرج هنا.
‫يعود.
‫داتا باش.
‫وولف ، هذا جزء من وظيفة عملاقة.
‫لكن كما قلت ، سيوفر لنا هذا الكثير من الوقت لاحقًا وسترى ذلك.
‫تذكر ، هذا هو نوع تطوير أسلوب العمل الذي أريدك أن تبدأ في التفكير فيه.
‫مرحبًا ، هل سأعيد استخدام بعض الوظائف لاحقًا؟
‫حسنًا ، إذا كنت كذلك ، فسأكتبها في دالة.
‫وربما تعرف ذلك بالفعل لأنك مطور أكثر ذكاءً مما أنا عليه الآن.
‫اعتدت أن أرتعش وأكتب الأشياء سطراً بسطر.
‫الآن دعنا نختبر وظيفتنا من خلال إنشاء مجموعات من بيانات التدريب والتحقق من الصحة.
‫لذلك سنذهب إلى بيانات القطارات.
‫سنستخدم وظيفة الكلب الكبير أعلاه.
‫سنقوم بتمريره X القطار للحصول على بيانات التدريب وتدريب Y لبيانات التحقق وهذا كل ما
‫نحتاجه.
‫وبعد ذلك بالنسبة لبيانات VO ، يمكننا إنشاء مجموعات بيانات.
‫X فال.
‫Y Val هل هي بيانات صحيحة؟
‫يساوي صحيح.
‫والآن تشابكت الأصابع.
‫يجب أن نرى.
‫رسائل تقدم الطباعة لدينا.
‫نعم.
‫هذا مدهش.
‫تمام.
‫الآن ، دعنا نتحقق من السمات المختلفة لمطابقات البيانات الخاصة بنا.
‫لذلك إذا حاولنا تجربة البيانات ، فهي الآن بتنسيق مجموعة بيانات وهي TensorFlow وهي الطريقة المفضلة لمعالجة
‫الأشياء.
‫هناك نذهب.
‫هذه هي بيانات التدريب لدينا ، وهي الأولى هنا.
‫ماذا تقول؟
‫إذن لقد حصلت على الشكل.
‫لا أحد.
‫اثنان ، اثنان ، أربعة ، اثنان ، اثنان ، أربعة ، ثلاثة.
‫هذه صورتنا.
‫لا شيء لحجم الدفعة.
‫أعلم أننا قلناها لـ 32 ، لكنها ستبقى بلا قيمة لأن حجم الدفعة ، تذكر ، مرن.
‫هذه مجرد صورنا الآن على دفعات من 32 ولديها شكل اثنان ، اثنان ، أربعة ، اثنان ، اثنان ، أربعة
‫، ثلاثة.
‫الطول ، العرض ، قنوات اللون من النوع الثاني ، عائم 32.
‫ولدينا هنا مجموعة tuple من تصنيفنا.
‫إذن فهذه أزواج ملصقات للصور على شكل توترات ، كما أن ملصقاتنا لها شكل دفعة لا شيء لأن
‫حجم الدُفعة مرن.
‫ولديهم بعد 120 ، لأننا إذا ذهبنا ، فلماذا صفر؟
‫هناك 120 سلالة مختلفة من الكلاب ، ثم الأمر نفسه مرة أخرى لبيانات التحقق من الصحة.
‫جميلة.
‫لذلك كان ذلك متعمقًا جدًا.
‫بمجرد أن ينتهي الفيديو الخاص به ، والذي سيكون في غضون ثوانٍ قليلة ، سأعود وأقرأ
‫فقط ما يجري في هذه الوظيفة هنا.
‫إذا لم تكن متأكدًا تمامًا ، فسأبحث عن تحميل برنامج تعليمي لبيانات المعالجة المسبقة للصور ، وقراءة
‫ذلك.
‫ومن ثم فإن أفضل طريقة للتعلم هي كتابة ذلك.
‫قسّم الوظيفة وحاول تشغيلها سطراً بسطر.
‫هذه هي الطريقة التي أقسم بها الأشياء بنفسي.
‫لكن الطريقة التي تكون بها بياناتنا في الوقت الحالي ، لا يزال من الصعب فهم ما إذا كنت جديدًا على مفهوم
‫الدُفعات.
‫ربما يكون مفهومًا صعبًا للغاية لفهمه.
‫لا بأس في عدم معرفة ما يحدث الآن.
‫لذا ، لكي نساعد أنفسنا على الفهم ، بدلاً من مجرد طباعة هذا الكتاب المبتذل عندما
‫نحاول التحقق مما هو موجود في مجموعات البيانات لدينا ، دعنا نكتب وظيفة ستساعدنا
‫في تصور ما يحدث.
‫هذا ما سنفعله في الفيديو التالي.