على PyTorch مع Keras، زعت تدريب من خارج منطقة الجزاء، وداع التصحيح التي لا نهاية لها

الأغنام الأسماك من الجزء السفلي من راحة غير معبد،

تقارير و qubit | عدد ملفه QbitAI

في بداية آلة جديدة مشاريع التعلم، فإنه أمر لا مفر منه لإعادة كتابة دورة تدريبية، نموذج الحمل والتدريب وزعت ...... ثم ننظر في التسرع مرور الوقت في الهاوية التصحيح، في حين انه ليس في أي مكان بعيدا عن جوهر المشروع .

على الرغم من أن هذا العالم كان قطعة أثرية Keras، يمكن بسهولة إنشاء بعض الجمل على الشبكة العصبية، ولكن التفكير في أنه يقف على أكتاف Tensorflow، يمكن لمعظم الناس لا تساعد ولكن اعتقد من عبارة في الأنهار والبحيرات أسطورة:

PyTorch عطرة حقا!

فلماذا لا تفعل Keras على PyTorch ذلك؟

من الفيسبوك ويليان الصقر قرر الأخ الأصغر لمحاولة، ونظموا المجمع، وتكوين مختلف شيوعا PyTorch، جميع حزم معا.

هذا المجمع خفيفة الوزن PyTorch هو PyTorch البرق .

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

سويفت كما البرق

لذا، البرق في النهاية مدى سهولة؟

في هذا الرقم، الأجزاء الرمادية تمثل البرق يمكن أتمتة أجزاء، في حين أن الأجزاء الزرقاء لا يمكن أن تعتمد على احتياجات المستخدمين، هو الذي يعرف بأنه أي نموذج الأساسي، يمكن أن يكون النموذج الجديد الخاص بك، يمكن أن نموذج ما قبل المدربين، بسرعة العمارة .AI وهلم جرا.

وهناك أمثلة قليلة على نحو أفضل.

على سبيل المثال، أصل التدرج .

اتضح التي تحتاجها:

# الخطوة الأخيرة واضح optimizer.zero_grad () # 16 خطوات متدرجة المتراكمة scaled_loss = 0 لaccumulated_step_i في مجموعة (16): من = model.forward () فقدان = some_loss (من، ذ) loss.backward () scaled_loss + = loss.item () # تحديث الأوزان بعد 8 خطوات. دفعة الفعالة = 8 * 16 optimizer.step () # يتم تحجيم الخسائر الآن من قبل عدد من دفعات المتراكمة actual_loss = scaled_loss / 16

في البرق، لا يتطلب رمز ذلك كله ضرب نفسك، ببساطة أدخل السطرين التاليين من التعليمات البرمجية:

مدرب = المدرب (accumulate_grad_batches = 16) trainer.fit (نموذج)

وعلاوة على ذلك، في البرق لين، وأود أن تنفق GPU واحد ، يمكنك الاتصال مباشرة:

مدرب = المدرب (جرافيكس = ) trainer.fit (نموذج)

بصمة استخدام الذاكرة يمكن أن تخفض إلى النصف من الأسود و الدقة 16 بت جهد:

مدرب = المدرب (amp_level = '02'، use_amp = خطأ) trainer.fit (نموذج)

استعمال GPU متعددة وزعت التدريب، لذلك سهل:

مدرب = المدرب (جرافيكس = ) trainer.fit (نموذج)

أو حتى تدريب 1024 GPU على 1024 عقد، ولكن أيضا من خارج منطقة الجزاء:

مدرب = المدرب (nb_gpu_nodes = 128، وحدات معالجة الرسومات = )

أتمتة هو أكثر بكثير من هذا العدد، والوحدات التالية، والتي تضمنت:

البرق تريد بسرعة لتدريب الشبكة العصبية تفعل؟ البرق تقريبا مصممة خصيصا لهذا الغرض.

وبالإضافة إلى ذلك، كما المتكاملة البرق وTensorboard معا، يمكنك بسهولة تعلم تصور.

ببساطة تسجيل المسار التجريبي:

من test_tube تجربة استيراد من pytorch البرق المدرب استيراد إكسب = تجربة (save_dir = '/ بعض الطريق /') مدرب = المدرب (التجربة = إكسب) ...

الطريق ثم يمكنك تشغيل tensorboard:

tensorboard -logdir / بعض الطريق /

استهلاك

تريد استخدام البرق، ما عليك القيام به أمرين.

1. تعاريف البرق نموذج

هذه الخطوة يمكن أن تأخذ بها لفترة طويلة.

البرق نموذج nn.Module هو شاملة صارم من الدرجة، والتي توفر واجهة قياسية للتفاعل مع هذا النموذج.

تمكين البرق نموذج أسهل طريقة يتم تعديل جزئيا وفقا لأدنى المثالي التالية (الحد الأدنى سبيل المثال):

السراج استيراد الشعلة استيراد من torch.nn استيراد ظيفية وF من torch.utils.data DataLoader استيراد من torchvision.datasets MNIST استيراد torchvision.transforms استيراد كما التحويلات pytorch_lightning استيراد خطوط الطاقة الكهربائية كما الطبقة CoolModel (ptl.LightningModule): __init مواطنه __ (النفس): السوبر (CoolModel، النفس) .__ الحرف الأول __ () # ليس أفضل نموذج ... self.l1 = torch.nn.Linear (28 * 28، 10) صفر إلى الأمام (النفس، خ): العودة torch.relu (self.l1 (x.view (x.size (0)، -1))) مواطنه my_loss (النفس، y_hat، ص): عودة F.cross_entropy (y_hat، ذ) training_step صفر (النفس، دفعة، batch_nb): س، ص = دفعة y_hat = self.forward (خ) عودة { 'الخسارة': self.my_loss (y_hat، ص)} validation_step صفر (النفس، دفعة، batch_nb): س، ص = دفعة y_hat = self.forward (خ) عودة { 'val_loss': self.my_loss (y_hat، ص)} validation_end صفر (النفس، والمخرجات): avg_loss = torch.stack ( ). يعني () عودة { 'avg_val_loss': avg_loss} configure_optimizers صفر (النفس): عودة @ Ptl.data_loader مواطنه tng_dataloader (النفس): عودة DataLoader (MNIST (os.getcwd ()، القطار = صحيح، وتحميل = صحيح، وتحويل = transforms.ToTensor ())، batch_size = 32) @ Ptl.data_loader مواطنه val_dataloader (النفس): عودة DataLoader (MNIST (os.getcwd ()، القطار = صحيح، وتحميل = صحيح، وتحويل = transforms.ToTensor ())، batch_size = 32) @ Ptl.data_loader test_dataloader صفر (النفس): عودة DataLoader (MNIST (os.getcwd ()، القطار = صحيح، وتحميل = صحيح، وتحويل = transforms.ToTensor ())، batch_size = 32)

2، المدرب صالح

يمكن التعامل مع تدريب المنطق الأساسي رموز جزء البرق الآلي، فإنه سيتم استخراج أفضل الممارسات في عملية التدريب.

الاستخدام الأساسي هو من هذا القبيل:

من pytorch_lightning استيراد Trainermoder = LightningTemplate () مدرب = المدرب () trainer.fit (نموذج)

فقط تأكد من انها تنفذ على الوجه الصحيح، مجرد مدرب، حساب الكتلة (SLURM)، تصحيح والتدريب موزعة على جميع غني عن القول.

من pytorch_lightning المدرب استيراد من test_tube تجربة استيراد نموذج = CoolModel () إكسب = تجربة (save_dir = os.getcwd ()) # تدريب على وحدة المعالجة المركزية باستخدام 10 فقط من البيانات (للعرض الأغراض) مدرب = المدرب (التجربة = إكسب، max_nb_epochs = 1، train_percent_check = 0.1) # تدريب على 4 وحدات معالجة الرسومات # مدرب = المدرب (التجربة = إكسب، max_nb_epochs = 1، وحدات معالجة الرسومات = ) # قطار على 32 وحدات معالجة الرسومات عبر 4 العقد (تأكد من إرسال مهمة SLURM المناسبة) # مدرب = المدرب (التجربة = إكسب، max_nb_epochs = 1، وحدات معالجة الرسومات = ، nb_gpu_nodes = 4) # قطار (1 الحقبة هنا فقط للعرض) trainer.fit (نموذج) # عرض سجلات tensorflow طباعة (سجلات tensorboard f'View عن طريق تشغيل \ ntensorboard --logdir {os.getcwd ()} ') طباعة ( 'والذهاب إلى http: // المضيف المحلي: 6006 في المتصفح الخاص بك)

أكثر شيء واحد

قد تسأل، لماذا ينبغي أن تفعل البرق مع fast.ai أليس كذلك؟

على الأخ الصغير قال شيئا مثل بين البرق وfast.ai، fast.ai للمبتدئ المهتمة في دخول مجال التعلم العميق، والبرق هو حقل الموجهة ML-من الباحثين النشطين.

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

آه، PyTorch عطرة حقا!

بوابة

جيثب العنوان:

https://github.com/williamFalcon/pytorch-lightning

تعليم بلوق:

https://towardsdatascience.com/supercharge-your-ai-research-with-pytorch-lightning-337948a99eec

- انتهى -

التوظيف الصادق

المكدسة تقوم بتجنيد محرر / مراسل، ومقرها في تشونغ قوان تسون في بكين. نتوقع الموهوبين والطلاب المتحمسين للانضمام إلينا! مزيد من التفاصيل، يرجى و qubit عدد الجمهور (QbitAI) واجهة الحوار والرد "تجنيد" كلمة.

و qubit QbitAI عناوين على التوقيع

' " تتبع تقنيات AI دينامية جديدة والمنتجات

لينغ لينغ: معالجة الرياح الطريق والمطر الدافئة قلوبهم الشمس تجاوز

جينغتشو: لحمل صناعة الغاز المسال تدريب السلامة من الحرائق بلدة

بايدو بدون طيار تأجير تشانغشا مفتوحة الاختبار: تكنولوجيا أبولو، فريق FAW العلم الاحمر، الدفعة الأولى من الصين

لم تكن لعبة الشطرنج، AI تعلمت الشطرنج، فقط من خلال الاستماع إلى الناس شرح اللعبة

قيمة الين والجمع بين عملي، والقوة مكعب من عائلة للعب بولز

جيش واحد وثمانون، لمجموعة من إشادة قوية

لإضافة بيثون تخطيط على غرار تخفيض السعر، هل Jupyter تشغيل على الانترنت تجسد شو جوجل الدماغ

طالبات جامعة تسينغهوا لياو فئة 2019: امتحان دخول الجامعة، الميدالية الذهبية الأولمبية، واستلهم من قبل 00 بعد AI

كشفت النوبي Z20 رسميا: دعا SLR الهاتف بسعر 3499 يوان

ضغط نصف النموذج، ودقة تكاد تكون غير مدمرة، TensorFlow نصف الدقة عدة الفاصلة العائمة القادمة

أدى ترقية 8K TV، سامسونج QLED 8K TV لتعزيز الصناعة في عصر "5G + 8K"

جيانغ يونغ نسخة Zhangfuqingshu تشن يولين: هل الحزب أمين وموثوق فيه "سلاح الإشارة"