Pytorch: [خطأ طفيف] لا تحتوي وحدة Pylint E1101 "torch" على عضو "from_numpy"

تم إنشاؤها على ٨ فبراير ٢٠١٧  ·  14تعليقات  ·  مصدر: pytorch/pytorch

طفيف جدا ولكن جدير بالذكر.

لا يلتقط Pylint أن torch لديه وظيفة العضو from_numpy . هذا لأن torch.from_numpy هو في الواقع torch._C.from_numpy بقدر ما يتعلق الأمر بـ Pylint.

وفقًا لهذا الخيط المكدس ، يعاني أيضًا من هذه المشكلة numpy .

كمرجع ، يمكنك جعل Pylint يتجاهل ذلك عن طريق تغليف المكالمات "الإشكالية" بالتعليقات التالية.

# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
todo

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

أعضاء تم إنشاؤه = numpy. ،شعلة.

بالنسبة لأولئك الذين يستخدمون vscode ، أضف إلى إعدادات المستخدم

"python.linting.pylintArgs": [
"--errors-only"،
"- Generated-members = numpy. *، torch. *، cv2. *، cv. *"
]

الأخطاء فقط ليست مرتبطة بالمشكلة ولكنها مفيدة في supres pep 8 / "أخطاء التنسيق" إذا كنت تريد

ال 14 كومينتر

الحل يبدو قبيح جدا. لا توجد طريقة لإخبار pylint بتصفية أخطاء معينة؟

يمكنني أن أضيف أن pylint (1.6.5) لا يلتقط cat ، topk و masked_select كوظائف العضو أيضًا.

لا أعتقد أننا سنصلح هذا. (لا أعرف ما إذا كانت هناك طريقة للقيام بذلك أيضًا).

يمكنك منع كل هذه الرسائل لهذه الوحدات عن طريق تحرير الأسطر المناسبة من .pylintrc لتصبح هكذا:

[MASTER]
extension-pkg-whitelist=numpy,torch

[TYPECHECK]
ignored-modules=numpy,torch
ignored-classes=numpy,torch

يبدو أن mypy قادرة على التقاط هؤلاء الأعضاء.

بدلاً من التجاهل ، يمكنك الآن القيام بما يلي:

[TYPECHECK]

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*,torch.*

أعضاء تم إنشاؤه = numpy. ،شعلة.

بالنسبة لأولئك الذين يستخدمون vscode ، أضف إلى إعدادات المستخدم

"python.linting.pylintArgs": [
"--errors-only"،
"- Generated-members = numpy. *، torch. *، cv2. *، cv. *"
]

الأخطاء فقط ليست مرتبطة بالمشكلة ولكنها مفيدة في supres pep 8 / "أخطاء التنسيق" إذا كنت تريد

سيكون من الجيد السماح بفحص الوحدة ، وكذلك للإكمال التلقائي. ربما يمكن للمرء تغيير from torch._C import * إلى from torch._C import from_numpy, ... ؟

ربما يمكن للمرء تغيير from torch._C import * إلى from torch._C import from_numpy, ... ؟

هذا يبدو بسيطا بما فيه الكفاية. هل نحن على يقين من أن هذا هو الطريق للذهاب؟
اعتقدت أننا سنحتاج إلى تلميحات كتابية (والتي سيكون من الصعب إقناع الناس باستخدامها).
هل يجب فتح عدد آخر لمناقشة حل @ moi90 ؟

أعضاء تم إنشاؤه = numpy ._ ، torch._

بالنسبة لأولئك الذين يستخدمون vscode ، أضف إلى إعدادات المستخدم

"python.linting.pylintArgs": [
"--errors-only"،
"- Generated-members = numpy. *، torch. *، cv2. *، cv. *"
]

الأخطاء فقط ليست مرتبطة بالمشكلة ولكنها مفيدة في supres pep 8 / "أخطاء التنسيق" إذا كنت تريد

لقد أنقذت جزءًا من حياتي! هاهاهاها

على كود VS:
إضافة "python.linting.enabled": false عملت أيضًا في هذه الحالة.

لا يعد تعطيل الفحص معًا (كما اقترحه miranthajayatilake ) حلاً جيدًا. يبدو أن pylint لديه مشاكل مع pytorch ولكن بالنسبة لي ، فإن flake8 يعمل بشكل جيد.
في VS Code ، يمكن للمرء تحديد flake8 بواسطة Ctrl + Shift + P -> Select linter -> flake8 .

لا أعتقد أننا سنصلح هذا. (لا أعرف ما إذا كانت هناك طريقة للقيام بذلك أيضًا).

إغلاق القضايا بعبارة "لا أعرف كيف لن أفعل ذلك" أمر شقي للغاية.

أعضاء مُنشأون = numpy ._ ، torch._

بالنسبة لأولئك الذين يستخدمون vscode ، أضف إلى إعدادات المستخدم

"python.linting.pylintArgs": [
"--errors-only"،
"- Generated-members = numpy. *، torch. *، cv2. *، cv. *"
]

الأخطاء فقط ليست مرتبطة بالمشكلة ولكنها مفيدة في supres pep 8 / "أخطاء التنسيق" إذا كنت تريد

إذا كنت تستخدم Coc ، فيمكنك استخدام وضع نفس القاعدة في coc-settings.json.

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