الأنفس جي توصية جديدة
المصدر: الخبرة
[استعراض فاز جي الجديدة في دراسة متعمقة لعملية التعلم، وعندما عقلك انفجر فجأة من الإلهام، وإذا كنت لا تجد مريح الأدوات بسرعة تنفيذ أفكارك؟ بعد قراءة هذا المقال، قد تكون أكثر من خيار. تحلل هذه الورقة دراسة متعمقة سير العمل المشتركة مشاكل في التعلم، كما توضح كيفية استخدام 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.Module عمق التخصيص
لتحقيق 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
-
حفظ وتحميل الشبكة بالكامل
-
حفظ وتحميل معلمات الشبكة
للحصول على دعم GPU
موتر يمكنك الاتصال مباشرة. كودا () الهجرة البيانات مباشرة موتر لذكرى GPU، بالطبع، يمكنك أيضا استخدام. وحدة المعالجة المركزية () في أي وقت الظهر البيانات إلى الذاكرة
إذا torch.cuda.is_available (): الخطي = linear.cuda () معلمات # شبكة وانتقل الى الذاكرة المؤقتة في GPUمن أجل وظيفة الخسارة، فضلا عن فقدان مخصصة
من Torch.nn Pytorch في حزمة تشمل ليس فقط وظيفة الخسارة المشتركة والكلاسيكية، ولكن أيضا في الوقت الحقيقي لمتابعة خسارة جديدة تشمل: CosineEmbeddingLoss، TripletMarginLoss وهلم جرا.
إذا لديك فكرة جديدة، توفر Pytorch ثلاث طرق لتخصيص الخسارة
-
الميراث torch.nn.module
ثم
loss_instance = MyLoss (...) فقدان = loss_instance (أ، ب، ج)في القيام بذلك، يمكنك استخدام torch.nn.functional الأمثل في مجموعة متنوعة من الوظائف لتعويض الخسارة
-
الميراث torch.autograd.Function
في القيام بذلك، يمكنك استخدام شائعة الاستخدام وظيفة نمباي وscipy أن يؤلف فقدان الخاص بك
-
ملحقات C إرسال لPytorch
هنا هو عدم الخوض في التفاصيل، وسوف يكون هناك المخصصة لهذا الجزء من المحتوى.
لخوارزميات تحسين وضبط معدل التعلم
Pytorch متكاملة خوارزميات التحسين المشتركة، بما في ذلك SGD، آدم، SparseAdam، AdagradRMSprop، Rprop وهلم جرا.
يوفر torch.optim.lr_scheduler عدة طرق لضبط معدل التعلم القائم على عدد التكرارات الحقبة أيضا أن torch.optim.lr_scheduler.ReduceLROnPlateau قادرا على معرفة نتائج على أساس الوقت الحقيقي، وتعديل معدل التعلم بشكل حيوي.
الأمل الأول "حل عملية التعلم عميقة وتوفير PyTorch التجربة" فإن الجميع يحبون والمتابعة ستطلق سلسلة من الدروس العملية، لا تنزعج.