Pytorch: طلب الميزة: يجب أن يأخذ load_state_dict أسماء ملفات

تم إنشاؤها على ٣١ مايو ٢٠١٧  ·  3تعليقات  ·  مصدر: pytorch/pytorch

في حالات ارتفاع ضغط الذاكرة ، يعد ما يلي أمرًا شائعًا:

  1. إنشاء نموذج
  2. قراءة state_dict من ملف checkpoint (يتم تحميله على GPU)
  3. model.load_state_dict (s)

بسبب ضغط الذاكرة ، فإن الحل الشائع هو القيام أولاً بما يلي:

s = torch.load('my_file.pt', map_location=lambda storage, loc: storage)

ثم قم بتحميل s إلى model .

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

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

feature nn triaged

التعليق الأكثر فائدة

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

ال 3 كومينتر

الأمر نفسه ينطبق على محسن state_dicts. بالنسبة لبعض المحسّنين مثل Adagrad ، تكون نقاط التفتيش كبيرة ، ويمكن أن يكون لدينا نفس حالة ضغط الذاكرة. لا تمتلك أدوات تحسين الأداء حتى .cuda() ، لذلك يتعين علينا أولاً تحميل state_dict يدويًا على وحدة المعالجة المركزية ، ثم نسخ الأجزاء يدويًا إلى وحدة معالجة الرسومات.

واجهت هذا أثناء مساعدة aszlam اليوم.

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

أنا و szagoruyko معجبان بتنسيق HDF5 للنماذج المتسلسلة ، ربما إذا كان بإمكانه التوافق بشكل جيد مع هذا الاقتراح

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات