Pytorch: [μ‚¬μ†Œν•œ 버그] Pylint E1101 λͺ¨λ“ˆ 'torch'에 'from_numpy' 멀버가 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 02μ›” 08일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: pytorch/pytorch

맀우 μ‚¬μ†Œν•˜μ§€λ§Œ μ–ΈκΈ‰ν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

PylintλŠ” torch 에 from_numpy 멀버 ν•¨μˆ˜κ°€ μžˆλ‹€λŠ” 것을 νŒŒμ•…ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. Pylint에 κ΄€ν•œ ν•œ torch.from_numpy λŠ” μ‹€μ œλ‘œ torch._C.from_numpy 이기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

이 stackoverflow μŠ€λ ˆλ“œ 에 λ”°λ₯΄λ©΄ numpy 도 이 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€.

참고둜 "λ¬Έμ œκ°€ μžˆλŠ”" ν˜ΈμΆœμ„ λ‹€μŒ μ£Όμ„μœΌλ‘œ λž˜ν•‘ν•˜μ—¬ Pylintκ°€ 이λ₯Ό λ¬΄μ‹œν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

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

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

생성 멀버 = numpy. ,ν† μΉ˜.

vscodeλ₯Ό μ‚¬μš©ν•˜λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ μ‚¬μš©μž 섀정에 μΆ”κ°€

"python.linting.pylintArgs": [
"--였λ₯˜ μ „μš©",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

였λ₯˜ μ „μš©μ€ λ¬Έμ œμ— λŒ€ν•΄ μΈμ‹λ˜μ§€ μ•Šμ§€λ§Œ μ›ν•˜λŠ” 경우 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": [
"--였λ₯˜ μ „μš©",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

였λ₯˜ μ „μš©μ€ λ¬Έμ œμ— λŒ€ν•΄ μΈμ‹λ˜μ§€ μ•Šμ§€λ§Œ μ›ν•˜λŠ” 경우 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": [
"--였λ₯˜ μ „μš©",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

였λ₯˜ μ „μš©μ€ λ¬Έμ œμ— λŒ€ν•΄ μΈμ‹λ˜μ§€ μ•Šμ§€λ§Œ μ›ν•˜λŠ” 경우 pep 8/포맷 "였λ₯˜"λ₯Ό μ–΅μ œν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.

당신은 λ‚΄ μΈμƒμ˜ 일뢀λ₯Ό κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€! ν•˜ν•˜ν•˜ν•˜

VS μ½”λ“œμ—μ„œ:
"python.linting.enabled": false λ₯Ό μΆ”κ°€ν•˜λŠ” 것도 이 κ²½μš°μ— νš¨κ³Όκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

@miranthajayatilake μ—μ„œ μ œμ•ˆν•œ λŒ€λ‘œ 린트λ₯Ό λͺ¨λ‘ λΉ„ν™œμ„±ν™”ν•˜λŠ” 것은 쒋은 해결책이 μ•„λ‹™λ‹ˆλ‹€. pylint 에 pytorch에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μ§€λ§Œ μ €μ—κ²ŒλŠ” flake8 κ°€ 잘 μž‘λ™ν•©λ‹ˆλ‹€.
VS Codeμ—μ„œ Ctrl + Shift + P -> Select linter -> flake8 둜 flake8 λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” μš°λ¦¬κ°€ 이것을 κ³ μΉ  것이라고 μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (λ‚˜λ„ 방법이 μžˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€.)

"λ‚˜λŠ” 방법을 λͺ°λΌμ„œ κ·Έλ ‡κ²Œν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€"λΌλŠ” 말둜 문제λ₯Ό λ§ˆλ¬΄λ¦¬ν•˜λŠ” 것은 맀우 μž₯λ‚œ κΎΈλŸ¬κΈ°μž…λ‹ˆλ‹€.

생성 멀버=numpy._,torch._

vscodeλ₯Ό μ‚¬μš©ν•˜λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ μ‚¬μš©μž 섀정에 μΆ”κ°€

"python.linting.pylintArgs": [
"--였λ₯˜ μ „μš©",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

였λ₯˜ μ „μš©μ€ λ¬Έμ œμ— λŒ€ν•΄ μΈμ‹λ˜μ§€ μ•Šμ§€λ§Œ μ›ν•˜λŠ” 경우 pep 8/포맷 "였λ₯˜"λ₯Ό μ–΅μ œν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.

Coc을 μ‚¬μš©ν•˜λŠ” 경우 coc-settings.jsonμ—μ„œ λ™μΌν•œ κ·œμΉ™μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰