рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ рдпрд╛ рдЖрдк рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд░ рдкреВрдЫреЗрдВ
рдордВрдЪ ред
рдпрджрд┐ рдЖрдк рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ [рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз] рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖рдХ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдорд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг рднрд░реЗрдВред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ PyCharm torch.zeros
рд▓рд┐рдП рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
PyCharm рдХрд╣рддреЗ рд╣реИрдВ
Cannot find reference 'zeros' in '__init__.py'
рдореИрдВрдиреЗ рдЗрд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдж рджрд┐рдпрд╛, рдореБрдЭреЗ рдЯреВрдЯрд╛ рд╣реБрдЖ Type Hints
ред
рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ,
https://github.com/pytorch/pytorch/commit/30ec06c140b0428d591e2f5007bc8046d1bdf7c4
https://github.com/pytorch/pytorch/wiki/Breking-Changes-from-Variable-and-Tensor-merge
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, https://github.com/pytorch/pytorch/commit/30ec06c140b0428d591e2f5007bc8046d1bdf7c4#diff -14258fce7c17ccb97b488e64373b0803R308 @colesbury
рдпрд╣ рд▓рд╛рдЗрди рдмрд╣реБрдд рд╕рд╛рд░реЗ IDE рдХреЗ рд▓рд┐рдП Type Hints
рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреА рд╣реИред
рдореВрд▓ рд░реВрдк рд╕реЗ, torch.zeros
torch/_C/__init__.py
рд▓реЗрдХрд┐рди, рдпрд╣ torch/_C/_VariableFunctions
https://gist.github.com/kimdwkimdw/50c18b5cf72c69c2d01bb4146c8a2b5c
рдпрд╣ рдЗрд╕ рдмрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИред
рдпрджрд┐ рдЖрдк main.py
import T_B as torch
torch.p2() # IDE can detect `p2`
torch.p1 # IDE cannot detect `p1`
рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рдВрдЧреНрд░рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
(рдпрд╛ рдиреАрдЪреЗ рджреА рдЧрдИ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднрд░реЗрдВ)ред
рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py
# For security purposes, please check the contents of collect_env.py before running it.
python collect_env.py
рдЖрдкрдиреЗ PyTorch (conda, pip, source) рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛:
рдХреЛрдВрдбрд╛, рдкреАрдЖрдИрдкреА, рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдорд╛рдорд▓рд╛ред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдмрдирд╛рдПрдВ (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ):
рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдВрджреБ? #4568
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, pytorch0.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп pycharm рдореВрд▓ рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИред рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдпрд╛ рддреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ " рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ " рдпрд╛ " рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ "ред
torch.tensor
, torch.max
рдФрд░ loss.backward
рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛, рддреНрд╡рд░рд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рддреНрд╡рд░рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ!
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PyCharm рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ PyTorch рдХреА рдУрд░ рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ torch.tensor
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, help(torch.tensor)
рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдмрдХрд┐ dir(torch)
рдПрдХ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ "рдЯреЗрдВрд╕рд░" рджрд┐рдЦрд╛рддрд╛ рд╣реИред
@zou3519
рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдиреАрдЪреЗ рдЕрдЪреНрдЫреА рдХреЛрдб рд╢реИрд▓реА рдирд╣реАрдВ рд╣реИред
for name in dir(_C._VariableFunctions):
globals()[name] = getattr(_C._VariableFunctions, name)
https://github.com/pytorch/pytorch/commit/30ec06c140b0428d591e2f5007bc8046d1bdf7c4 рд╕реЗ
globals()[name]
Pythonic
рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ PyCharm рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ Python рдХреЛрдб рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ _VariableFunctions
рдХреЛ рдХреНрд▓рд╛рд╕ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ? @zou3519
@kimdwkimdw рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЧреНрд▓реЛрдмрд▓() рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдХреГрдкрдпрд╛ рдПрдХ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ :)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PyCharm рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ PyTorch рдХреА рдУрд░ рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╕ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ PyCharm рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ PyCharm рдХреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
tools/autograd/gen_autograd.py
tools/autograd/templates/python_torch_functions.cpp
torch/lib/include/torch/csrc/Module.cpp
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ C рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИред
рдореИрдВ рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдХрд░реВрдВрдЧрд╛ред
рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕?
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ред
рдЕрдЧрд░ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдиреАрдЪреЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
git clone -b pytorch-interface https://github.com/kimdwkimdw/pytorch.git
/Users/USERNAME/Library/Caches/PyCharm*/python_stubs/
рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВproject interpreter
рдЬрд╛рдВрдЪреЗрдВpull request
, рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрдорд┐рдЯ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рдж рдЗрдВрд╕реНрдЯреЙрд▓ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред
рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ?
рдореБрдЭреЗ рднреА рдпрд╣реА рддрдХрд▓реАрдлрд╝ рд╣реИред рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рд╕реЗ pytorch рдФрд░ pycharm рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред рдРрд╕реА рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ :(
рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╣реИ рдЬрдм рдореИрдВрдиреЗ pycharm рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдкрд╛рджрдХ рдореЗрдВред рдУ__рдУ "...
рдЗрд╕ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рд╣рдо рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ.... рдореБрдЭреЗ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╡рд░реНрддрдорд╛рди master
рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ рджрд┐рдпрд╛ред
Type Hints
рдЕрдм рдЬреАрд╡рд┐рдд рд╣реИрдВред
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install
рдЪреЗрдХрдЖрдЙрдЯ рдкреАрдЖрд░ - https://github.com/pytorch/pytorch/pull/8845
рд╕реА.рд╕реА. @zou3519
@kimdwkimdw рдХреНрдпрд╛ рдореБрдЭреЗ рд╕реНрд░реЛрдд рд╕реЗ pytorch рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдирд╡реАрдиреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ?
@541435721
рд╣рд╛рдВ рдЖрдкрдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреГрд╖реНрда рдкрд░ https://github.com/pytorch/pytorch#install -pytorch
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред
рдпрд╣ Pycharm (2018.1, рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреИрд╢ рдХреЗ рд╕рд╛рде) рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдЖрдкрдХреЛ @kimdwkimdw рдХреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдкрд╛рдЗрдЯреЛрд░рдЪ рдорд╛рд╕реНрдЯрд░ рдХреА рдирд╣реАрдВред рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрднреА рддрдХ рдкрд╛рдЗрдЯреЛрд░рдЪ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдкреАрдЖрд░ рд╣реИ: https://github.com/pytorch/pytorch/pull/8845ред
рд╣рд╛рдБ, рдореИрдВрдиреЗ рдпрд╣реА рдХрд┐рдпрд╛:
git remote add kimdwkimdw https://github.com/kimdwkimdw/pytorch.git
git fetch kimdwkimdw
git checkout --track kimdwkimdw/interface-0
git submodule update --init
CC=gcc-5 CXX=g++-5 CFLAGS="-march=native -O2" CXXFLAGS="-march=native -O2" python setup.py build
python setup.py install --optimize=1 --skip-build
@nlgranger рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рд╕реНрдЯрдмреНрд╕ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ 'рдЕрдорд╛рдиреНрдп рдХреИрд╢' рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред
рдЬрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрдЕрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Pycharm рдЕрдкрдиреА рдкрд╛рдпрдерди рд╕реНрдЯрдм рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред
рдЕрдЬрдЧрд░ рд╕реНрдЯрдм рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, Pycharm рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
PyCharm рдЕрдкрдиреЗ рдЕрдЬрдЧрд░ рдареВрдВрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рд╣рдо рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЖрдкрдХреЛ рдкрд╛рдпрдерди рд╕реНрдЯрдм рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред рдЬрдм рдЖрдк рдЯреЙрд░реНрдЪ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдЯрдм рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
@kimdwkimdw рдореИрдВрдиреЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдЖрдк рдЗрд╕ invalidate Caches
рдорд╛рдзреНрдпрдо рд╕реЗ PyCharm рдХреИрд╢ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ
MacOS рдореЗрдВ, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ ~/Library/Caches/PyCharm2018.1/python_stubs/
рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ PyCharm рдЕрдкрдирд╛ python stubs
@541435721 @nlgranger
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рд╣реИ (рдЕрдорд╛рдиреНрдп рдХреИрд╢, рд░реЛрдХреЗрдВ pycharm, rm .PyCharm2018.1/system/python_stubs/* -rf
)ред
BTW рдореИрдВ рдЕрдЬрдЧрд░ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ (рдореИрдВ рдкреАрдЖрд░ рдореЗрдВ рдХреБрдЫ рдЕрдЬрдЧрд░ 2 рдкрд░реАрдХреНрд╖рдг рджреЗрдЦрддрд╛ рд╣реВрдВ)ред
@kimdwkimdw
рдореИрдВрдиреЗ рдЗрд╕реЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░рд╛ рдУрдПрд╕ рд╡рд┐рдВрдбреЛрдЬрд╝ 10 рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред
@kimdwkimdw рдореИрдВ рд╡рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ! рдзрдиреНрдпрд╡рд╛рдж!
рдЬреИрд╕рд╛ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ @kimdwkimdw рдХрд╛ рдлрд┐рдХреНрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ macOS рдкрд░ Python 3 рдХреЗ рд╕рд╛рде рд╣реИред рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
source path/to/my/venv/bin/activate
git clone https://github.com/kimdwkimdw/pytorch.git
cd pytorch
git checkout interface-0
git submodule update --init
MACOSX_DEPLOYMENT_TARGET=10.13 CC=clang CXX=clang++ python setup.py install
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрдЯрдмреНрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдпрд╛ рдирд╣реАрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ torch.float32
(рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛рдЯрд╛рдЗрдк) рдФрд░ torch.backends.cudnn
рдЕрднреА рднреА PyCharm (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рджреНрд╡рд╛рд░рд╛ рдЕрдирд╕реБрд▓рдЭреЗ рд╣реИрдВред
@shianiawhite рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
@zou3519
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ @kimdwkimdw рдХрд╛ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ python_stub
рдХреЛ ~/.PyCharmCE2018.1/system
рд╣рдЯрд╛ рджрд┐рдпрд╛ред
рдлрд┐рд░ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЦрдмрд░?
рдХреНрдпрд╛ рдпрд╣ рдпрд╣рд╛рдВ рдЬреЗрдЯрдмреНрд░реЗрди https://youtrack.jetbrains.com/issues/PY?q=pytorch рдкрд░ рдХрд┐рд╕реА рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛?
рдореИрдВ Ubuntu 16.04 рдФрд░ PyCharm 2017.3 рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдкрд╛рдпрдерди рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреМрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдареАрдХ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЕрдЬрдЧрд░ 3.6.6 рдФрд░ PyTorch 0.41 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ рдЗрд╕реЗ pip рдФрд░ cuda 9.2 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ Window7 PyCharm2018, Win10 PyCharm2018, Win10 VS2017, Win10 Spyder рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдФрд░ рдореИрдВ pytorch0.4.0 рдФрд░ pytorch0.4.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рджреЛрдиреЛрдВ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
рдХреЗрд╡рд▓ ipython рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХреЛ рдареАрдХ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ
рдореИрдВрдиреЗ PyCharm youtrack рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реА рд╣реИред рд╢рд╛рдпрдж рд╡реЗ рднреА рдорджрдж рдХрд░ рд╕рдХреЗрдВред
рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ pytorch0.4.1 рдХреЗ рд╕рд╛рде VS2017 рдФрд░ PyCharm2018.2 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
PyCharm-2018.2 рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд PyTorch-0.4.1, рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред
рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд▓реЛрдЧ рдпрд╣рд╛рдВ рд╡реЛрдЯ рдХрд░ рд╕рдХреЗрдВ https://youtrack.jetbrains.com/issue/PY-31259
рдЗрд╕рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреА рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ
рдирдорд╕реНрдХрд╛рд░!
рдореИрдВ PY-31259 рдХрд╛ рдЕрд╕рд╛рдЗрдиреА рд╣реВрдВред
рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп PyCharm рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдХреЛрдб рдирд╣реАрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ (рдмрд╣рд┐рд╖реНрдХрд░рдг рдХрдВрд╕реЛрд▓ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред рдЗрд╕рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рддрд░реАрдХреЗ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред
@sproshev рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВ @kimdwkimdw рдХрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз https://github.com/pytorch/pytorch/pull/8845 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ pytorch рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдХреБрдЫ рдЧрддрд┐рд╢реАрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд░рддрд╛ рд╣реИред @kimdwkimdw рдХрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╡рд╣ рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдХрд┐ pycharm рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ (рдХрдо рд╕реЗ рдХрдо рдкрд╛рдпрдерди 3 рдХреЗ рд▓рд┐рдП) рдПрдХ .pyi рд╕реНрдЯрдм рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИред
рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВ рдЦреБрдж рдПрдХ PyCharm рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдмреЗрд╣рдж рдЦреБрд╢ рд╣реЛрдВрдЧреЗ, рддреЛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо Native_functions.yaml рдФрд░ рджреЛрд╕реНрддреЛрдВ рд╕реЗ рдПрдХ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@ t-vi рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдФрд░ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рдХреГрдкрдпрд╛ .pyi рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ! :рдбреА
рддреЛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХрд╛рдлреА рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ:
рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдмрд╕ рд╣реЛрдирд╛
class Tensor: ...
<strong i="6">@overload</strong>
def randn(size: Tuple[int, ...], *, out: Optional[torch.Tensor], dtype: dtype=None, layout: layout=torch.strided, device: Union[device, str, None]=None, requires_grad: bool=False) -> Tensor: ...
__init__.pyi
PyCharm рдХреЛ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ a = randn((1,2))
, a
рдХрдХреНрд╖рд╛ torch.Tensor
ред :(
(рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рднреА рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдПрдиреЛрдЯреЗрд╢рди a : torch.Tensor = ...
рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд░рддрд╛ рд╣реВрдВ)
рдпрджрд┐ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдкрд╛рдИ рдкреЛрд╕реНрдЯ рдХреА: https://gist.github.com/t-vi/0d0ae013072f96f50fa11fbc2287e33b
рджреЛрдмрд╛рд░рд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ PyCharm рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╣рдЪрд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдореИрдВ рд╕рдмрд╕реЗ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
@ t-vi рд╕рдорд╛рдзрд╛рди рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╢реБрдХреНрд░рд┐рдпрд╛!
рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрд╝реЛрдВрдЧреНрдпреВрдЭрд╛рдУред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреАрдЖрдИрдЖрдИ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рд╕рд╣рд┐рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж, рдХрд┐ __init__
рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рдореИрдВ "рдореБрдЦреНрдп" рдирд╛рдордХ рдХреЛрдВрдбрд╛ рдПрдирд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдерд╛:
pushd /Users/yaroslavvb/anaconda3/envs/main/lib/python3.6/site-packages/torch
rm __init__.py
wget https://gist.githubusercontent.com/t-vi/0d0ae013072f96f50fa11fbc2287e33b/raw/e0e3878fa612c5a4557ec76c011fd5f9453ff0e8/__init__.py
popd
рдореБрдЭреЗ рдХреИрд╢ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдпрд╣ рдЯреЗрдВрд╕рд░ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ, рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИред PyCharm рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдФрд░ рдпрд╣ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рд╣рдЯрд╛ рджреАрдВ, рддреЛ рдореБрдЭреЗ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдорд┐рд▓ рдЧрдИ
рдПрдХ рдФрд░ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ Tensor рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдп рд╡рд╛рдкрд╕реА рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ -> Tensor, рдЬреЛ рдПрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рд╕рдВрджрд░реНрдн рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ PyCharm рджреНрд╡рд╛рд░рд╛ рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рд╣реИ -> "рдЯреЗрдиреНрд╕рд░" рдХреЗ рдмрдЬрд╛рдп -> рдЯреЗрдВрд╕рд░ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдВрд╕рд░ (https://www.python.org/dev/peps/pep-0484/#forward-references)
рдзрдиреНрдпрд╡рд╛рдж @yaroslavvb , рд╡рд╣реА рдерд╛ рдЬреЛ рдореИрдВ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛!
рджреГрд╢реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЯрдХреНрдХрд░ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PyCharm рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИред рдореИрдВ рдЕрдкрдиреЗ tf/keras рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ PyTorch рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реЛрдзрдХ рд╣реИред
рдореИрдВ pytorch 0.4.1
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдареЛрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИред рдореИрдВ pytorch рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред pycharm рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ pytorch рдмрд┐рд▓реНрдЯ-рдЗрди рдлрдВрдХреНрд╢рди torch.xxx
рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред
рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрдИрдбреАрдИ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдкрд╛рдЗрдЯреЛрд░рдЪ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдФрд░ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдкрд╛рдЗрдЯреЛрд░рдЪ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Ctrl + B)ред
рдзрдиреНрдпрд╡рд╛рджред
рдХрд┐рд╕реА рдХреЛ рдкреАрдЖрд░ рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИ (@t-vi)? рдореИрдВ рдЕрдм PyTorch рдирд╛рдЗрдЯрд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдкрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ...
рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкреАрд╡рд╛рдИрдЖрдИ рдХрдм рдФрд░ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдореБрдЦреНрдп рджреЗрд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдкрд╛рдпрдерди-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдмрд┐рдЯреНрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ _C
рдмрд┐рдЯреНрд╕ рд╕реЗ рдорд░реНрдЬ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдПрдХ рдкреАрдЖрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢рд╛рдпрдж рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдПрдХ рджреМрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдпрджрд┐ рдЖрдк рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
__init__.py рдХреЛ рдмрджрд▓рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред @t-vi рдХреЗ рд╕рд╛рд░ рдореЗрдВ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
a = torch.cat([a,b], dim=-1)
PyCharm рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ "рдЖрдЙрдЯ" рдЧрд╛рдпрдм рд╣реИ, рд▓реЗрдХрд┐рди "рдЖрдЙрдЯ" рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
x = torch.empty(10, 2)
рдХреЛрдб рдХреА рдпрд╣ рдкрдВрдХреНрддрд┐ рд╕рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИ (* рдЖрдХрд╛рд░, ...), рд▓реЗрдХрд┐рди PyCharm рдЕрдорд╛рдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИред рдЗрддрдиреА рд╕рд╛рд░реА рдЕрдЬреАрдм рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рдЕрдВрддрддрдГ рдХреЛрдб рдирд┐рд░реАрдХреНрд╖рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ "рдорд╢рд╛рд▓ред *" рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪреБрдирддрд╛ рд╣реВрдВ ...
@hitvoice рдЗрдиреНрд╣реЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рдЙрдЪрд┐рдд pyi рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдард┐рди рдореБрдЯреНрдареА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ! рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдирд┐рд░реАрдХреНрд╖рдг рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ [рдЖрдЙрдЯ] out : Optional[Tensor]=None
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛? рдЬрд┐рд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЦрд╛рд▓реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕реВрдЪреА рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗрд░рдЧреНрд╕ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рд╕реА рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрд╛рдЗрдерди рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛), рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдВ рдорд╣рд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдзред
рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ __init__.pyi
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕реНрдкрд┐рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред
рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реВрдВрдЧрд╛ (рдЗрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ (рд▓рдЧрднрдЧ) рдПрдХ рдкреАрдЖрд░ рд╣реИред
@ t-vi рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдЕрдм рддрдХ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ, рдЕрдЬрдЧрд░-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдХреЗрдд (btrifact, einsum) рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ? рдореИрдВ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
@elliotwaite рдореЗрд░реЗ (рд╕рдВрдХреНрд╖рд┐рдкреНрдд) рдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЙрди рдкрд░ рдЯрд╛рдЗрдк рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛, рдпрд╛рдиреА x = einsum('ii', a); x.
рдФрд░ рдЕрдм x
рд▓рд┐рдП рдЯреЗрдВрд╕рд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдкреАрдЖрдИ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрдИрдЖрдИ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╕рд╛рдорд╛рди рдХрд╛ рдЗрд▓рд╛рдЬ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ (рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ), рд╡рд╣ рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред
@ t-vi рдЖрд╣, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБред рдореИрдВ рдХреЗрд╡рд▓ pyi рдлрд╝рд╛рдЗрд▓ рд╕рд╣рд┐рдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдо рдирд╣реАрдВ рдХреЗ рдмреАрдЪ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрдЧрд░ рдореИрдВ pyi рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ einsum рд╕рдВрдХреЗрдд рд░реЗрдЦрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг рднреА рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
@ t-vi рдореБрдЭреЗ "рдкреИрд░рд╛рдореАрдЯрд░ (рдУрдВ) рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛" рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рддрд░реНрдХ рдХреЛ рдЯреЙрд░реНрдЪ.рдЯреЗрдиреНрд╕рд░ () рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@elliotwaite рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЯреЗрдВрд╕рд░ рдмрд╣реБрдд рдЦрд╛рд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╢рд╛рдпрдж рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рдкреАрдЖрд░ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред рдЬрдм рдореИрдВ рд╕рд╛рд░ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░реВрдБрдЧрд╛ рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдФрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдорд┐рд▓реЗрдВрдЧреА? (рдпрд╣ рдмрд╣реБрдд рд╣реА рдореИрдиреБрдЕрд▓ рд╣реИ рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдкрд┐рди рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрд░реВрдБрдЧрд╛ред)
@ t-vi рдореБрдЭреЗ рдЯреЙрд░реНрдЪ рдХреЗ рд▓рд┐рдП "рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реНрдХ" рдЪреЗрддрд╛рд╡рдиреА рднреА рдорд┐рд▓ рд░рд╣реА рд╣реИред Tensor.view ():
torch.randn(2, 2).view(1, 1, 2, 2)
рдореИрдВрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдмрдирд╛рдИ рдЬрд┐рд╕рдиреЗ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдФрд░ рд╕рднреА "рдЯреЗрдВрд╕рд░ред *" рддрд╛рд░реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдпрд╣рд╛рдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдЕрднреА рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд▓рдн рд╣реИрдВред
https://github.com/elliotwaite/pytorch_typehints/blob/master/no_autocomplete.py
@elliotwaite рдареАрдХ рд╣реИ, рдЯреЗрдВрд╕рд░ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ varargs рдЪреАрдЬрд╝ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ yaml рдореЗрдВ kwonly рдПрдиреЛрдЯреЗрд╢рди рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдореЗрдВ рднреА рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реВрдВ)ред
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП doc(string) s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдХреНрдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рдЕрдЪреНрдЫреЗ рд╣реИрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдкрд░реНрдпрд╛рдкреНрдд рдЙрджрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИ) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ред
pyi
рд╕реНрдЯрдмреНрд╕ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдЙрдирдХреЗ рд▓рд┐рдП +1редрд╕рдорд╕реНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдЖрдИрдбреАрдИ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИ рдЬреЛ рдЬреЗрдбреА рдХреЛ рдкрд╛рдЗрдерди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдФрд░ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди PyCharm рдФрд░ VS рдХреЛрдб рдХреЗ рд▓рд┐рдП рднреА рд╕рд╛рдорд╛рдиреНрдп рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдЧрд╛? рдореИрдВ рдЬреЗрдбреА рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ emacs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЖрдк IPython рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ?
рдареАрдХ рд╣реИ, IPython рдЧрддрд┐рд╢реАрд▓ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк mytensor.a
рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди mytensor.abs().m
, рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕рдВрдХреЗрдд
рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ VSCode рдФрд░ Jupyter рджреЛрдиреЛрдВ рднреА Jedi рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯрдмреНрд╕ (.pyi рдлрд╝рд╛рдЗрд▓реЗрдВ) рдореМрдЬреВрджрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ "рдорд╛рдирдХ" рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрднреА рддрдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ (рдФрд░ рдЕрднреА рднреА рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдПрдХ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд▓рд┐рдкреНрд╕рд┐рд╕ ("...") рдЕрдиреБрдХреНрд░рдордг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП)ред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдЬреЗрдбреА рдкрд░ рдЪрдврд╝рдирд╛ рдФрд░ рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯ рд╕реНрдЯрдм рд╕рдкреЛрд░реНрдЯ (https://github.com/davidhalter/jedi/issues/839) рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЕрдкрдиреЗ рдЯреВрд▓рдЪреИрди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдордп рдпрд╛ рдкреИрд╕рд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдореМрдХрд╛!
@ t-vi рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ Stubs
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред
https://www.python.org/dev/peps/pep-0484/#stub -files
рд╣рд╛рд▓рд╛рдВрдХрд┐, Docstring
s рд╕реНрдЯрдмреНрд╕ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред Docstring
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?
@ t-vi рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдЯреВрд▓рдЪреЗрди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬреЗрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдЙрди рд╕реНрдЯрдм рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдореБрдЭреЗ рдЬреЗрдбреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╕реА ++ рдореЗрдВ рд╣реЗрдбрд░ рдХреА рддрд░рд╣ рд╣реИ?
рдкреАрдИрдкреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
@kimdwkimdw рдЖрдк рд▓рдЧрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рд░ рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдв рд╕рдХреЗ? (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреАрд╡рд╛рдИрдЖрдИ (?)) рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдБ рд░рдЦрд╛ рдЬрд╛рдП, рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╡рд╣рд╛рдБ рд░рдЦреВрдБрдЧрд╛...
@piojanu Jedi рдХреА рдЯрд╛рдЗрдкрд╢реЗрдб рд╢рд╛рдЦрд╛ рд▓рдЧрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ pyi рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╢рд╛рдпрдж рдЬреЗрдбреА рд▓реЗрдЦрдХ рд╕реЗ рдкреВрдЫрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреАрд╡рд╛рдИ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@ t-vi рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдзрдиреНрдпрд╡рд╛рджред
рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ PyTorch 0.3.0 рдФрд░ рдореЗрд░реЗ PR (https://github.com/pytorch/pytorch/pull/8845) рдореЗрдВ Docstring
рд╕рд╛рде рдкреНрд░рдХрд╛рд░ред
@t-vi
Docstrings
рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рдиреАрдЪреЗ PYI
рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ _torch_docs.py
@sproshev рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #8845 рди рдХреЗрд╡рд▓ PyCharm рдореЗрдВ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп IDE рдореЗрдВ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдирдХ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, PyCharm рдЕрдкрдирд╛ Python stubs
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
PyTorch's original way 0.3.0
рдпрд╛ #8845 IPython рдореЗрдВ PyCharms рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИред
рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ gen_python_functions.py
рдпрд╛ рдЕрдиреНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╕реНрдкрд╖реНрдЯ pyi
рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕рд╛рдл рддрд░реАрдХрд╛ рдирд╣реАрдВред
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, pytorch0.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп pycharm рдореВрд▓ рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИред рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдпрд╛ рддреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ " рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ " рдпрд╛ " рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ "ред
@nimcho рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП?
рдореИрдВ рдЕрдкрдиреЗ рдореИрдХ рдкрд░ рд░рд╛рдд рдореЗрдВ рдорд╢рд╛рд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдкрд┐рдЪрд░реНрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рдХрдорд╛рдВрдб-рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕реНрд░реЛрдд рдкрд░ рдХреВрджрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдХреИрд╢реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИред
рдореБрдЭреЗ рдЕрднреА рднреА pytorch 1.0.0 рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдпрд╣ рд╢рд░реНрдордирд╛рдХ рд╣реИ ... рд▓рдЧрднрдЧ 8 рдорд╣реАрдиреЗ :-(
@ebagdasa рдореИрдВ рд╣рдореЗрдВ рдЗрд╕ рдЙрддреНрдкрд╛рджрдХ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рди рдХрд┐
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрд╛, рдЗрд╕ рдкрд░ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП:
рдЕрдВрдд рдореЗрдВ, @kimdwkimdw рдФрд░ @t-vi рдореЗрдВ рдлрд┐рдХреНрд╕ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/pytorch/pytorch/pull/12500 рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░-рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рдХреЗ, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рдкреАрдЖрд░ рдЕрдВрджрд░ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ PyCharm рдХреЛ рдареАрдХ рдХрд░ рд▓реЗрдВред рдореБрджреНрджрд╛ред
рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдРрд╕рд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @kimdwkimdw рдФрд░ @t-vi рдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдирдлрд░рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
@ebagdasa , рдЖрдкрдХреЛ рдзрдирд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП
рдареАрдХ рд╣реИ, рдпрд╣ рдирд┐рд░рд╛рд╢рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдереА рдХрд┐ рд╕рдВрдкрд╛рджрдХ рджреНрд╡рд╛рд░рд╛ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрдврд╝рд╛ рдЪрд▓! рд╢рд╛рдпрдж VSCode рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рд╕рдордпред
@soumith рд╡реАрдПрд╕ рдХреЛрдб рдХрд╛ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ torch.randn
рдкрд░ рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ
рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдРрд╕рд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @kimdwkimdw рдФрд░ @t-vi рдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдирдлрд░рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП _did_ рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ ... рдХреНрдпрд╛ FAIR рдХреЗ рд▓рд┐рдП рдЗрдирд╛рдореЛрдВ рджреНрд╡рд╛рд░рд╛ рднрд╛рдЧреАрджрд╛рд░реА рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gitcoin рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛? рдмреЗрд╢рдХ рдПрдлрдПрдЖрдИрдЖрд░ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдирдХреЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдореБрдЖрд╡рдЬрд╛ рдорд┐рд▓ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ (рдореЗрд░реЗ рдЬреИрд╕реЗ) рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд╣рд╛рде рд╢рд╛рдпрдж рдЕрдкрдиреЗ рджрд┐рди рдХреЗ рдХрд╛рдо рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВ ...
рдореИрдВрдиреЗ рдкрд╛рдЗрдк рдпрд╛ рдХреЛрдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдПрд╕ рдХреЛрдб, рдПрдЯрдо рдФрд░ рдкрд┐рдЪрд░реНрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЯреЙрд░реНрдЪ.рдореИрдХреНрд╕ () рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред IPython рдФрд░ Jupyter рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдВрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реИрдВред
рдореБрдЭреЗ рднреАред PyCharm, VS рдХреЛрдб, рд╕реНрдкрд╛рдЗрдбрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА .. Torch.cat рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреЛ Longtensor рдХреЗ рд╕рдорд╛рди рд╣реИред
рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ PyCharm рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ PyCharm рдХреЗ рдЖрдВрддрд░рд┐рдХ рдФрд░ PyTorch рдХреЗ рдЖрдВрддрд░рд┐рдХ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЧрд▓рдд рд╡рд░реНрдгрди рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рджреЗрдЦрдиреЗ рд╕реЗ рд╢рд╛рдпрдж рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдирд┐рдХрд▓реЗрдЧрд╛ред PyCharm рд╕рдВрдХреБрд▓ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрджреНрд╡рд┐рддреАрдп PyCharm рдирд╣реАрдВ рд╣реИред PyCharm рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдкрд╛рджрдХ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ PyTorch рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддрд╛ рд╣реИред рдХреЛрдИ рднреА рд╕рдВрдкрд╛рджрдХ рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЬ (рдЧрддрд┐ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ IPython/Jupyter/etc рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рдпрдо рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд╡рд╛рдж рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕ рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рддрд╛рдХрд┐ "рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ" рдХреЗ рдмрдЬрд╛рдп "рдЗрд╕реЗ PyCharm рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ" рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдкреАрдЖрд░ рдореЗрдВ рдХрд╛рдо рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕реНрдЯрдмреНрд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ "рдорд╛рдирдХ" рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдФрд░ рд╕рдВрднрд╡рдд: рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдореЗрдВ рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рддреНрд╡рд░рд┐рдд рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ, рдЙрд╕ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рдбрд┐рд╕реНрдЯ-рдкреИрдХреЗрдЬ/рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╛рд░ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓рд╛рдкрддрд╛ рднрд╛рдЧреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдЙрди рд▓рд╛рдкрддрд╛ рднрд╛рдЧреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рд╡реЗ рд╕рдВрднрд╛рд▓реЗ рдЧрдП рд╣реИрдВред
рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ! @ t-vi рдХрд╛ рдкреИрдЪ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдорд╢рд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдордиреЗ 1.0.1 рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рде рд╕реЗ рдЙрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдЯрдм рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╡рд╣ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЯрд╛рдЗрдк рд╕реНрдЯрдм рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ mypy рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдЗрд╕ рдЕрдиреБрд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХреЛ #16574 рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкрд╛рдЗрдк рдЕрдк рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЯреЙрд░реНрдЪ рдкрд░ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд╣реЛрдирд╛ рддрдп рдХрд┐рдпрд╛ рд╣реИ; рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╢рд╛рд▓ рдкрд░ рд▓рд╛рдкрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ), рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрддрд╛рдПрдВред
рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдмрд╕ fyi, рдирдпрд╛ v1.0.1 рд░рд┐рд▓реАрдЬ рдЕрдм рдЗрд╕реЗ рд╣рд▓ рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
@ezyang torch.cuda
рдореЗрдВ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ pyi
, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ torch.cuda.is_available
ред
рдореБрдЭреЗ VSCode рдХреЗ рд▓рд┐рдП рдорд╢рд╛рд▓ 1.0.1 рдкрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рднреА рдЧрд╛рдпрдм рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, torch.as_tensor
рдореБрдЭреЗ PyCharm рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдХреЛрдИ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ (рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рддрдм рдпрд╣ рдЧрд╛рдпрдм рдерд╛), рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ PyTorch рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рддреА рдХреА рд╣реИред
@vpj рдЗрд╕реЗ print(torch.__version__)
рд╕рдВрд╕реНрдХрд░рдг 1.0.1рдкреЛрд╕реНрдЯ2 . рд╣реИ
__init__.pyi рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PyCharm рднреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ torch.exp
рдХрд╛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдПрдХ Tensor
(рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди Tensor.exp
)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЛ torch.exp
рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рдВ, рдореИрдВ '1.0.1.post2' рдореЗрдВ рднреА рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ
рдФрд░ рдСрдЯреЛ рдкреВрд░реНрдг рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЗрд╕рд▓рд┐рдП, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдХреБрдЫ рдирд╛рдорд╕реНрдерд╛рди рдЕрднреА рднреА рдЧрд╛рдпрдм рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдордиреЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛рд░реНрдп рдЦреЛрд▓рд╛: https://github.com/pytorch/pytorch/issues/16996
рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ? (рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИ?) рдХрдВрд╕реЛрд▓ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
(рд▓реЗрдХрд┐рди from torch.utils.data import DataLoader, Dataset
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
@yarcowang рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ 1.2.0 рдкрд░ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЕрднреА рднреА рдЪреАрдЬреЗрдВ рдЧрд╛рдпрдм рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдмрдЧ рдлрд╛рдЗрд▓ рдХрд░реЗрдВред
@ezyang рдареАрдХ рд╣реИред рдЕрдЪреНрдЫрд╛ рдРрд╕рд╛ рд╣реИред рдпрд╣ рдПрдХ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдмрдЧ рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВ pytorch рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╣реВрдБред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдЯреЙрд░реНрдЪ 1.4+рд╕реАрдкреАрдпреВ рдФрд░ рдЯреЙрд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЯреЗрдВрд╕рд░ рдореЗрдВ рдЕрднреА рднреА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдореБрджреНрджреЗ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж
рдЯреЙрд░реНрдЪ рдХреЗ рд╕рд╛рде рднреА рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдЯреЗрдВрд╕рд░
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рдЫреЛрдЯреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдмрдЧ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рдпрджрд┐ рдЖрдк рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдпрд╛ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдмрдЧ рдЦреЛрд▓реЗрдВ рдФрд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред рдзрдиреНрдпрд╡рд╛рдж!
рдЯреВрдЯреА рд╣реБрдИ рдЪреАрдЬреЗрдВ рдЬреЛ рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг 1.4.0 рдореЗрдВ рджреЗрдЦреА рд╣реИрдВ:
torch.cuda.manual_seed # manual_seed not hinting
torch.cuda.manual_seed_all # manual_seed_all not hinting
torch.utils # cannot find utils
torch.backends # cannot find backends
torch.optim.lr_scheduler._LRScheduler.step() # argument "epoch" unfilled, while it's optional
torch.Tensor(4, 1) # unexpected arguments & argument "requires_grad" unfilled
torch.optim.Adadelta # cannot find Adadelta
torch.nn.TransformerEncoderLayer # cannot find TransformerEncoderLayer
torch.nn.TransformerEncoder # cannot find TransformerEncoder
@tjysdsg рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рджреГрд╢реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
@tjysdsg рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рджреГрд╢реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
@zou3519 рдпрд╣рд╛рдВ #34699 рд╣реИ, рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдирдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рд╣рдо рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред