рдмрд╣реБрдд рдорд╛рдореВрд▓реА рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдпред
рдкрд╛рдЗрд▓рд┐рдВрдЯ рдпрд╣ рдирд╣реАрдВ рдЙрдард╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ torch
рдореЗрдВ рд╕рджрд╕реНрдп рдлрд╝рдВрдХреНрд╢рди from_numpy
рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдкрд╛рдЗрд▓рд┐рдВрдЯ рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ torch.from_numpy
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ torch._C.from_numpy
рд╣реИред
рдЗрд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ numpy
рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде "рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд" рдХреЙрд▓ рдХреЛ рд▓рдкреЗрдЯрдХрд░ рдкрд┐рд▓рд┐рдВрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
рдХрд╛рдордХрд╛рдЬ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рд▓рд┐рдВрдЯ рдХреЛ рдмрддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?
рдореИрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рд▓рд┐рдВрдЯ (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": [
"--рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓",
"--рдЬрдирд░реЗрдЯреЗрдб-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред *, рдорд╢рд╛рд▓ред *, 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 рдХреЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЙрддреНрдкрдиреНрди-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред_, рдорд╢рд╛рд▓ред_
vscode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
"python.linting.pylintArgs": [
"--рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓",
"--рдЬрдирд░реЗрдЯреЗрдб-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред *, рдорд╢рд╛рд▓ред *, cv2ред *, cvред *"
]рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ pep 8/рд╕реНрд╡рд░реВрдкрдг "рддреНрд░реБрдЯрд┐рдпреЛрдВ" рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рддреБрдордиреЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдЪрд╛ рд▓рд┐рдпрд╛! рд╣рд╛ рд╣рд╛ рд╣рд╛ рд╣рд╛
рд╡реАрдПрд╕ рдХреЛрдб рдкрд░:
"python.linting.enabled": false
рдЬреЛрдбрд╝рдирд╛ рднреА рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдПрдХ рд╕рд╛рде рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ (рдЬреИрд╕рд╛ рдХрд┐ @miranthajayatilake рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд▓рдЧрддрд╛ рд╣реИ pylint
рдореЗрдВ pytorch рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП flake8
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡реАрдПрд╕ рдХреЛрдб рдореЗрдВ, рдХреЛрдИ рднреА flake8
рджреНрд╡рд╛рд░рд╛ Ctrl + Shift + P
-> Select linter
-> flake8
рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВрдЧреЗред (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред
"рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреИрд╕реЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ" рджреНрд╡рд╛рд░рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдмрд╣реБрдд рд╢рд░рд╛рд░рддреА рд╣реИред
рдЙрддреНрдкрдиреНрди-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред_, рдорд╢рд╛рд▓ред_
vscode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
"python.linting.pylintArgs": [
"--рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓",
"--рдЬрдирд░реЗрдЯреЗрдб-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред *, рдорд╢рд╛рд▓ред *, cv2ред *, cvред *"
]рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ pep 8/рд╕реНрд╡рд░реВрдкрдг "рддреНрд░реБрдЯрд┐рдпреЛрдВ" рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рдпрджрд┐ рдЖрдк Coc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕реА рдирд┐рдпрдо рдХреЛ рдЕрдкрдиреЗ coc-settings.json рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
vscode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
"python.linting.pylintArgs": [
"--рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓",
"--рдЬрдирд░реЗрдЯреЗрдб-рд╕рджрд╕реНрдп = рд╕реБрдиреНрдиред *, рдорд╢рд╛рд▓ред *, cv2ред *, cvред *"
]
рддреНрд░реБрдЯрд┐рдпреЛрдВ-рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ pep 8/рд╕реНрд╡рд░реВрдкрдг "рддреНрд░реБрдЯрд┐рдпреЛрдВ" рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ