فشلت محاولة إنشاء كود باستخدام pytorch الحالي ضمن conda مع الخطأ التالي:
ImportError: تم إهمال torch.utils.ffi. يرجى استخدام ملحقات CPP بدلا من ذلك.
خطوات إعادة إنتاج السلوك:
على نظام التشغيل Ubuntu 16.04 x64 ، قم بتنزيل Anaconda وتثبيته
قم بإنشاء بيئة وقم بتثبيت pytorch هناك: conda install -c pytorch pytorch
./make.sh
.ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
./make.sh
بناء كل الكود بطريقة نظيفة
جاري تجميع معلومات البيئة ...
إصدار PyTorch: 1.0.0
هل بناء التصحيح: لا
تستخدم CUDA لبناء PyTorch: 9.0.176نظام التشغيل: Ubuntu 16.04.5 LTS
إصدار مجلس التعاون الخليجي: (Ubuntu 7.4.0-1ubuntu1 ~ 16.04 ~ ppa1) 7.4.0
إصدار CMake: الإصدار 3.13.20181022-g64947إصدار Python: 3.6
هل CUDA متاح: نعم
إصدار وقت تشغيل كودا: 7.5.17
نماذج وتكوين وحدة معالجة الرسومات: GPU 0: GeForce GTX 750 Ti
إصدار برنامج تشغيل Nvidia: 410.79
إصدار cuDNN: ربما يكون أحد الإصدارات التالية:
/usr/lib/x86_64-linux-gnu/libcudnn.so.7.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_static_v7.aإصدارات المكتبات ذات الصلة:
[نقطة] لا يمكن جمعها
[كوندا] لا يمكن جمع
لذلك لا يوجد حل سهل لهذا؟ يبدو أنه يتطلب تجديدًا كاملاً للشفرة المستخدمة للعمل مع pytorch <= 0.4.1
للأسف نعم. يوجد مثال على منفذ لبعض رموز ffi الأخرى في https://github.com/pytorch/audio/commit/8a41ecdc1ba365fb9d51e12b8ab793bc2a3f67fa ولكن بعض إعادة الكتابة ضرورية. واسمحوا لنا أن نعرف إذا كنت بحاجة إلى مساعدة.
اللعنة ، أسابيع من العمل في سلة المهملات ...
هل تخطط لإهمال مثل هذه الأشياء منخفضة المستوى على أساس منتظم أم أن الأمر يستحق حقًا محاولة إجراء تمديد CPP الآن؟
aliutkus لقد
حسنا عظيم. حسنًا ، أعتقد أن الوقت قد حان للتبديل من C إلى C ++ =)
شكرا لجميع الأعمال
يجب عليك تغييره كـ "import torch.utils.cpp_extension"
تتعلق المشكلة بإصدار pytorch الذي قمت بتثبيته. لقد خفضت نسخته من 1.0 إلى 0.4 ، وتم حل المشكلة. الأحدث ليس أفضل!
أنا أستخدم الإصدار 1.4.0 من torch ولكن لدي نفس المشكلة كيف يمكنني حلها؟
نفس الشيء ، حاولت import torch.utils.cpp_extension
، لكن بدون نرد.
التعليق الأكثر فائدة
تتعلق المشكلة بإصدار pytorch الذي قمت بتثبيته. لقد خفضت نسخته من 1.0 إلى 0.4 ، وتم حل المشكلة. الأحدث ليس أفضل!