[الجاف] عمق عملية التعلم وتوفير الحلول التجريبية PyTorch

 الأنفس جي توصية جديدة

المصدر: الخبرة

[استعراض فاز جي الجديدة في دراسة متعمقة لعملية التعلم، وعندما عقلك انفجر فجأة من الإلهام، وإذا كنت لا تجد مريح الأدوات بسرعة تنفيذ أفكارك؟ بعد قراءة هذا المقال، قد تكون أكثر من خيار. تحلل هذه الورقة دراسة متعمقة سير العمل المشتركة مشاكل في التعلم، كما توضح كيفية استخدام PyTorch لبناء بسرعة تجربتك.

سير العمل البحوث المشتركة

يوم واحد، كنت أجلس على كرسي مختبر، فجأة:

  • وانفجر من رأسك  فكرة

  • كنت قرأت عن  نظرية  هذه المادة، وتريد أن تجرب: إذا أدرجت في العشرين أيضا ما سيحدث

  • فجأة رئيسك لتعطيك قطعة من الورق ويقول: الرجل الذي، لوضع هذا الشيء لتحقيق حول

لذا، كنت تصميم ال تجربة العملية، وهذه الفكرة اختار الحق مجموعات البيانات وبيئة التشغيل ثم كنت أحس بالأرق ليال تحقيق ال نموذج بعد فترة طويلة التدريب والاختبار ، تجد:

  • لا تعمل هذه الفكرة - >  نسيت أو إعادة ديتين

  • هذه الفكرة هي العمل - >  علبة الكتابة  ورقة

يمكننا استخدام العملية الموضحة أعلاه ممثلة في FIG:

في الواقع، وتتكون عملية مشتركة من الفئات التالية تتكون معا:

  •  بمجرد الانتهاء من اختيار مجموعة من البيانات، لديك لكتابة بعض الوظائف لتحميل مجموعة البيانات، ومن ثم جمع البيانات قبل عملية، وتطبيع مجموعة البيانات، يمكننا أن نقول هذا هو جزء من أكبر نسبة تمثل تجارب للأسباب التالية:

  • شكل كل مجموعة البيانات ليست هي نفسها

  • المعالجة والتنظيم ليست بنفس الطريقة

  • تحتاج إلى dataloader السريع إلى البيانات الأعلاف، وخير البر عاجله

  • ثم، لديك لتنفيذ نموذج الخاص بك، إذا كنت الاتجاه CV قد ترغب في تنفيذ ResNet، إذا كنت المرتبطة NLP قد ترغب في تنفيذ Seq2Seq

  • بعد ذلك، تحتاج إلى تنفيذ خطوة التدريب ودون دفعة، عصر التداول

  • بعد عدة جولات من التدريب، نقطة تفتيش دائما عن، هو الأكثر أمانا

  • تحتاج أيضا إلى بناء بعض الأساس، من أجل التحقق من صحة فكرة خاصة بهم

  • إذا قمت بتطبيق نموذج الشبكة العصبية، بطبيعة الحال، من دون دعم من GPU

  • يوفر العديد من إطار التعلم العميق وظيفة فقدان مشتركة، ولكن في معظم الوقت، وفقدان وظيفة ينبغي أن يقترن مهام محددة، ومن ثم إعادة تنفيذ-

  • استخدام الأساليب الأمثل، تم بناء النموذج الأمثل وحيوي ضبط معدل التعلم

  • الحلول نظرا Pytorch

    لتحميل البيانات، اقترح Pytorch مجموعة متنوعة من الحلول

    • Pytorch هو حزمة بيثون، بدلا من واجهة بيثون لبعض من مكتبة كبيرة C ++، لذلك مجموعة البيانات نفسها يوفر API بيثون، Pytorch يمكن أن يسمى مباشرة، ليس لدينا معاملة خاصة.

    • متكاملة Pytorch البيانات لودر مجموعة البيانات المشتركة

    • في حين كانت التدابير المذكورة أعلاه قادرة على تغطية معظم مجموعة البيانات، ولكن قامت Pytorch أيضا مشروعين :. الرؤية، والنص، انظر أدناه جزء بخلفية رمادية من كلا المشروعين، واستخدام آلية مصادر الحشد، مجموعة كبيرة من dataloader، قبل -process وتطبيع، على التوالي الموافق الصورة والنص المعلومات.

    • إذا كنت ترغب في تخصيص مجموعة البيانات، وتحتاج فقط إلى torch.utils.data.dataset يرث

    لبناء هذا النموذج، Pytorch كما يقدم ثلاثة برامج

    • التعهيد الجماعي نموذج: torch.utils.model_zoo  يمكنك استخدام هذه الأداة، ونحن نشاطر الحمل من طراز

    • استخدام torch.nn.Sequential بسرعة بناء

    شبكة = torch.nn.Sequential ( torch.nn.Linear (1 و 10)، torch.nn.ReLU () torch.nn.Linear (10، 1) ) طباعة (صافي) '' ' متسلسل ( (0): خطي (1 - >  10) (1): ReLU () (2): خطي (10 - >  1) ) '' '
    • المتكاملة torch.nn.Module عمق التخصيص

    الطبقة الصافية (torch.nn.Module): __init مواطنه __ (النفس، n_feature، n_hidden، n_output): السوبر (نت النفس) .__ الحرف الأول __ () self.hidden = torch.nn.Linear (n_feature، n_hidden) self.predict = torch.nn.Linear (n_hidden، n_output) صفر إلى الأمام (النفس، خ): س = F.relu (self.hidden (خ)) س = self.predict (خ) عودة س صافي = صافي (1، 10، 1) طباعة (صافي) '' ' صافي ( (مخفي): خطي (1 - >  10) (التنبؤ): خطي (10 - >  1) ) '' '

    لتحقيق Pytorch عملية التدريب

    من المؤكد أننا نستطيع تحقيق بيانات الدفعة نفسها، shuffer، الخ، ولكن Pytorch أوصى تحميل البيانات الطبقة torch.utils.data.DataLoader، وأخذ عينات من البيانات لتوليد دفعة مكرر.

    # إنشاء تحميل بيانات محمل = Data.DataLoader ( بيانات = torch_dataset، # TensorDataset نوع قواعد البيانات batch_size = BATCH_SIZE، # حجم دفعة مصغرة خلط = صحيح، # تعيين خلط عشوائي num_workers = 2، وعدد من عملية تحميل البيانات # ) للعصر في النطاق (3): # التدريب 3 للخطوة، (batch_x، batch_y) في اعدد (محمل): # كل خطوة # هنا لكتابة التعليمات البرمجية التي التدريب ... طباعة ( 'عصر:'، عصر)

    لحفظ وتحميل العروض البرنامج نموذجين Pytorch

    • حفظ وتحميل الشبكة بالكامل

    # حفظ وتحميل نموذج كامل، بما في ذلك: هندسة الشبكات، المعلمات نموذج torch.save (resnet، 'model.pkl') نموذج = torch.load ( 'model.pkl')
    • حفظ وتحميل معلمات الشبكة

    torch.save (resnet.state_dict ()، 'params.pkl') resnet.load_state_dict (torch.load ( 'params.pkl'))

    للحصول على دعم GPU

    موتر يمكنك الاتصال مباشرة. كودا () الهجرة البيانات مباشرة موتر لذكرى GPU، بالطبع، يمكنك أيضا استخدام. وحدة المعالجة المركزية () في أي وقت الظهر البيانات إلى الذاكرة

    إذا torch.cuda.is_available (): الخطي = linear.cuda () معلمات # شبكة وانتقل الى الذاكرة المؤقتة في GPU

    من أجل وظيفة الخسارة، فضلا عن فقدان مخصصة

    من Torch.nn Pytorch في حزمة تشمل ليس فقط وظيفة الخسارة المشتركة والكلاسيكية، ولكن أيضا في الوقت الحقيقي لمتابعة خسارة جديدة تشمل: CosineEmbeddingLoss، TripletMarginLoss وهلم جرا.

    إذا لديك فكرة جديدة، توفر Pytorch ثلاث طرق لتخصيص الخسارة

    • الميراث torch.nn.module

    الشعلة استيراد استيراد torch.nn كما ن ن torch.nn.functional استيراد كما ظائفها الطبقة MyLoss (nn.Module): # مجموعة hyperparametric __init مواطنه __ (النفس، أ، ب، ج): السوبر (TripletLossFunc، النفس) .__ الحرف الأول __ () self.a = ل self.b = ب self.c = ج عودة صفر إلى الأمام (النفس، أ، ب، ج): # الإعمال فقدان = أ + ب + ج فقدان العودة

    ثم

    loss_instance = MyLoss (...) فقدان = loss_instance (أ، ب، ج)

    في القيام بذلك، يمكنك استخدام torch.nn.functional الأمثل في مجموعة متنوعة من الوظائف لتعويض الخسارة

    • الميراث torch.autograd.Function

    الشعلة استيراد من torch.autograd وظيفة استيراد من torch.autograd متغير استيراد الطبقة MyLoss (وظيفة): صفر إلى الأمام (input_tensor): # الإعمال يؤدي = ...... عودة torch.Tensor (نتيجة) إلى الوراء صفر (grad_output): # إذا كنت بحاجة فقط الى تطبيقها عند هذه العملية إلى خسارة، وإدخال هنا يمكن أن تكون العودة مباشرة # إذا كنت بحاجة إلى استخدام هذا في ن ن، تحتاج إلى تحديد العمليات الخلفية نشر محددة عودة grad_output

    في القيام بذلك، يمكنك استخدام شائعة الاستخدام وظيفة نمباي وscipy أن يؤلف فقدان الخاص بك

    • ملحقات C إرسال لPytorch

     هنا هو عدم الخوض في التفاصيل، وسوف يكون هناك المخصصة لهذا الجزء من المحتوى.

    لخوارزميات تحسين وضبط معدل التعلم

    Pytorch متكاملة خوارزميات التحسين المشتركة، بما في ذلك SGD، آدم، SparseAdam، AdagradRMSprop، Rprop وهلم جرا.

    يوفر torch.optim.lr_scheduler عدة طرق لضبط معدل التعلم القائم على عدد التكرارات الحقبة أيضا أن torch.optim.lr_scheduler.ReduceLROnPlateau قادرا على معرفة نتائج على أساس الوقت الحقيقي، وتعديل معدل التعلم بشكل حيوي.

    الأمل الأول "حل عملية التعلم عميقة وتوفير PyTorch التجربة" فإن الجميع يحبون والمتابعة ستطلق سلسلة من الدروس العملية، لا تنزعج.

    الليتشي جيدة لديها مبيعات جيدة - ليتشي زهرة قوية والفواكه تكسير أحدث التقنيات

    امرأة بوذية على وضع إشعار السوبر المحبطين بصوت عال أي قائد القطار ركلة 3 أقدام

    "الحلم تاون زهر وحة جديدة" جديد الخوخ مهرجان زهرة الافتتاح الكبير لشارع تاون الخامس

    عيد الحب هو لك، تدميره، وبسرعة

    مؤلف كتاب "ji yi" hou Shida Crazy Spit Google Translation: AI استبدل المترجم البشري في وقت مبكر في وقت مبكر

    علي تينسنت اثنين من عمالقة دمج تجارة التجزئة، وبعد ستة أشهر، ومدى فعالية؟

    الحب له ثلاث ولايات، اليوم، يعرف العالم كله، "أنا أحبك"!

    جيفنشي وهيبورن، أطول من الزواج من الحب!

    كبار السن يبلغ من العمر 34 عاما دو تشن يو تشنغ تشى في خط للشيطان! استبدال دفعة واحدة، شارك في انقلاب ياتاي

    المتطوعين هانتشونان معا: نفسي ها ها ها، وانغ! | احد الانتظام غيض من الجنة!

    متجر الموقع، والحاجة إلى معرفة أن القواعد العشر الذهبية!

    السبانخ تقنيات زراعة ذكرى النسخة الكاملة (جمع موصى به)