Pytorch: PyTorch 0.4.0 рдореЗрдВ рдЯреВрдЯрд╛ рд╣реБрдЖ `рдЯрд╛рдЗрдк рд╕рдВрдХреЗрдд`, IDEs рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд (eqред PyCharm)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдордИ 2018  ┬╖  106рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pytorch/pytorch

рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ рдпрд╛ рдЖрдк рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд░ рдкреВрдЫреЗрдВ
рдордВрдЪ ред

рдпрджрд┐ рдЖрдк рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ [рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз] рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖рдХ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдорд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг рднрд░реЗрдВред

рдореБрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ 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 рдпрд╛ Caffe2:
  • рдЖрдкрдиреЗ PyTorch (conda, pip, source) рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛:
    рдХреЛрдВрдбрд╛, рдкреАрдЖрдИрдкреА, рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдорд╛рдорд▓рд╛ред

  • рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдмрдирд╛рдПрдВ (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ):

  • рдУрдПрд╕: рдХреЛрдИ рднреА
  • PyTorch рд╕рдВрд╕реНрдХрд░рдг: 0.4.0
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.6.5
  • CUDA/cuDNN рд╕рдВрд╕реНрдХрд░рдг: .
  • GPU рдореЙрдбрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: .
  • рдЬреАрд╕реАрд╕реА рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ): .
  • рд╕реАрдПрдордХреЗ рд╕рдВрд╕реНрдХрд░рдг:ред
  • рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг
medium priority (this tag is deprecated)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рд╣рдо рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рд╕рднреА 106 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдВрджреБ? #4568

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, pytorch0.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп pycharm рдореВрд▓ рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИред рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдпрд╛ рддреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ " рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ " рдпрд╛ " рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ "ред

torch

torch.tensor , torch.max рдФрд░ loss.backward рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛, рддреНрд╡рд░рд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рддреНрд╡рд░рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдирд╣реАрдВ рд╣реИред

  • рдУрдПрд╕: рд▓рд┐рдирдХреНрд╕ (рдЬреАрдиреЛрдо рдХреЗ рд╕рд╛рде 64-рдмрд┐рдЯ рдлреЗрдбреЛрд░рд╛ 27)ред
  • PyTorch рд╕рдВрд╕реНрдХрд░рдг: 0.4.0ред
  • рдЖрдкрдиреЗ PyTorch (conda, pip, source) рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛: pip3.
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.6.5ред
  • рдореИрдВ CPU (No CUDA) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдЧрд░ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ!

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 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 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИред
рдореИрдВ рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдХрд░реВрдВрдЧрд╛ред

рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕?

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ред

рдЕрдЧрд░ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдиреАрдЪреЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

1. рдЧрд┐рдЯ рдХреНрд▓реЛрди

git clone -b pytorch-interface https://github.com/kimdwkimdw/pytorch.git

2. PyTorch рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

3. PyCharm рдореЗрдВ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

  • рдЖрдорддреМрд░ рдкрд░ рдХреИрд╢ /Users/USERNAME/Library/Caches/PyCharm*/python_stubs/ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ
  • PyCharm рдореЗрдВ рдЕрдкрдирд╛ 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 рдореИрдВрдиреЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

image
рдЖрдк рдЗрд╕ 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 рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдкрд╛рдпрдерди рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреМрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдареАрдХ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
working_in_console

рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
not_working_in_editor

рдореИрдВ рдЕрдЬрдЧрд░ 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 рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реА рд╣реИред рд╢рд╛рдпрдж рд╡реЗ рднреА рдорджрдж рдХрд░ рд╕рдХреЗрдВред

https://youtrack.jetbrains.com/issue/PY-31259

рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ 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 рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ! :рдбреА

рддреЛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХрд╛рдлреА рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ:
image

рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдмрд╕ рд╣реЛрдирд╛

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 рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдФрд░ рдпрд╣ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ

screenshot 2018-10-05 16 33 51

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рд╣рдЯрд╛ рджреАрдВ, рддреЛ рдореБрдЭреЗ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдорд┐рд▓ рдЧрдИ
screenshot 2018-10-05 16 35 40

рдПрдХ рдФрд░ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ 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 рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕реНрдкрд┐рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред

  • рдореИрдВ рдкреАрдврд╝реА рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рднрд▓реЗ рд╣реА рд╡рд╣ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╣реЛ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрд░ рд╣реЛрдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЕрдЪреНрдЫреА рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИред
  • рдореИрдВ рдХреБрдЫ рдЕрдЬрдЧрд░-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ (btrifact, einsum) рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рднреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ред
  • рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ (рдЬреЗрдирд░реЗрд╢рди рдХреЛрдб рдореЗрдВ) рдЙрди рдХрдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ @hitvoice рдиреЗ рдмрддрд╛рдИ рд╣реИрдВред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реВрдВрдЧрд╛ (рдЗрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ (рд▓рдЧрднрдЧ) рдПрдХ рдкреАрдЖрд░ рд╣реИред

@ t-vi рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдЕрдм рддрдХ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ, рдЕрдЬрдЧрд░-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдХреЗрдд (btrifact, einsum) рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ? рдореИрдВ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@elliotwaite рдореЗрд░реЗ (рд╕рдВрдХреНрд╖рд┐рдкреНрдд) рдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЙрди рдкрд░ рдЯрд╛рдЗрдк рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛, рдпрд╛рдиреА x = einsum('ii', a); x. рдФрд░ рдЕрдм x рд▓рд┐рдП рдЯреЗрдВрд╕рд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдкреАрдЖрдИ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрдИрдЖрдИ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╕рд╛рдорд╛рди рдХрд╛ рдЗрд▓рд╛рдЬ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ (рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ), рд╡рд╣ рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред

@ t-vi рдЖрд╣, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБред рдореИрдВ рдХреЗрд╡рд▓ pyi рдлрд╝рд╛рдЗрд▓ рд╕рд╣рд┐рдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдо рдирд╣реАрдВ рдХреЗ рдмреАрдЪ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрдЧрд░ рдореИрдВ pyi рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ einsum рд╕рдВрдХреЗрдд рд░реЗрдЦрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг рднреА рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ t-vi рдореБрдЭреЗ "рдкреИрд░рд╛рдореАрдЯрд░ (рдУрдВ) рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛" рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рддрд░реНрдХ рдХреЛ рдЯреЙрд░реНрдЪ.рдЯреЗрдиреНрд╕рд░ () рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

image

@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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдХреНрдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рдЕрдЪреНрдЫреЗ рд╣реИрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдкрд░реНрдпрд╛рдкреНрдд рдЙрджрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИ) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ред

PyCharm рдХреА рдУрд░ рд╕реЗ 8845 рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ 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 рд╕рд╛рде рдкреНрд░рдХрд╛рд░ред
image

@t-vi
Docstrings рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рдиреАрдЪреЗ PYI рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
image

рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ _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 рдореВрд▓ рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИред рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдпрд╛ рддреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ " рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ " рдпрд╛ " рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ "ред

torch

@nimcho рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП?

рдореИрдВ рдЕрдкрдиреЗ рдореИрдХ рдкрд░ рд░рд╛рдд рдореЗрдВ рдорд╢рд╛рд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдкрд┐рдЪрд░реНрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рдХрдорд╛рдВрдб-рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕реНрд░реЛрдд рдкрд░ рдХреВрджрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдХреИрд╢реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИред

  • /рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/USERNAME/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдХреИрд╢/рдкрд╛рдпрдЪрд░реНрдо**/python_stubs
  • /рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдХреИрд╢/рдкрд╛рдпрдЪрд░реНрдо**/рд╕реНрдерд╛рдиреАрдп рдЗрддрд┐рд╣рд╛рд╕
  • /рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдХреИрд╢/рдкрд╛рдпрдЪрд░реНрдо**/рдХреИрд╢
  • /рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдХреИрд╢/рдкрд╛рдпрдЪрд░реНрдо**/tmp
  • /рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдХреИрд╢/рдкрд╛рдпрдЪрд░реНрдо**/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдореБрдЭреЗ рдЕрднреА рднреА pytorch 1.0.0 рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣ рд╢рд░реНрдордирд╛рдХ рд╣реИ ... рд▓рдЧрднрдЧ 8 рдорд╣реАрдиреЗ :-(

@ebagdasa рдореИрдВ рд╣рдореЗрдВ рдЗрд╕ рдЙрддреНрдкрд╛рджрдХ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рди рдХрд┐

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрд╛, рдЗрд╕ рдкрд░ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП:

  • рд╣рдордореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХреЛрд░ рджреЗрд╡ PyCharm рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рджреГрд╢реНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрдард┐рди рдерд╛
  • рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдЬреЛ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдереА, рдпрд╛рдиреА рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ CPython рдкреНрд░рдХрд╛рд░ PyCharm рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдСрдЯреЛ-рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдерд╛, рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ PyTorch рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ PyCharm рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

    • рдЗрд╕рдХреЗ рд▓рд┐рдП PyCharm рдХреЗ рдЗрдВрдЯрд░реНрдирд▓ рдФрд░ PyTorch рдХреЗ рдЗрдВрдЯрд░реНрдирд▓ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рдХрдард┐рдирд╛рдИ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗ

    • рдХрд╛рдЙрдВрдЯрд░-рдкреЙрдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, Microsoft VSCode + PyTorch рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП IPython рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдареАрдХ рдХрд░рддрд╛ рд╣реИред рддреЛ @ebagdasa рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдЕрдВрдд рдореЗрдВ, @kimdwkimdw рдФрд░ @t-vi рдореЗрдВ рдлрд┐рдХреНрд╕ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/pytorch/pytorch/pull/12500 рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░-рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рдХреЗ, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рдкреАрдЖрд░ рдЕрдВрджрд░ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ PyCharm рдХреЛ рдареАрдХ рдХрд░ рд▓реЗрдВред рдореБрджреНрджрд╛ред

рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдРрд╕рд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @kimdwkimdw рдФрд░ @t-vi рдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдирдлрд░рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@ebagdasa , рдЖрдкрдХреЛ рдзрдирд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП

рдареАрдХ рд╣реИ, рдпрд╣ рдирд┐рд░рд╛рд╢рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдереА рдХрд┐ рд╕рдВрдкрд╛рджрдХ рджреНрд╡рд╛рд░рд╛ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрдврд╝рд╛ рдЪрд▓! рд╢рд╛рдпрдж VSCode рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рд╕рдордпред

@soumith рд╡реАрдПрд╕ рдХреЛрдб рдХрд╛ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ torch.randn рдкрд░ рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ

1547171211663

рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдРрд╕рд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @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 . рд╣реИ

pytorch_missing_defs

__init__.pyi рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PyCharm рднреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ torch.exp рдХрд╛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдПрдХ Tensor (рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди Tensor.exp )ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЛ torch.exp рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ '1.0.1.post2' рдореЗрдВ рднреА рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ
рдФрд░ рдСрдЯреЛ рдкреВрд░реНрдг рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

image

рдЗрд╕рд▓рд┐рдП, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдХреБрдЫ рдирд╛рдорд╕реНрдерд╛рди рдЕрднреА рднреА рдЧрд╛рдпрдм рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдордиреЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛рд░реНрдп рдЦреЛрд▓рд╛: https://github.com/pytorch/pytorch/issues/16996

рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ? (рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИ?) рдХрдВрд╕реЛрд▓ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
(рд▓реЗрдХрд┐рди from torch.utils.data import DataLoader, Dataset рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
untitled2____Documents_python_untitled2__-_____main_py

@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 рд╣реИ, рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдирдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ikostrikov picture ikostrikov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

negrinho picture negrinho  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dablyo picture dablyo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cdluminate picture cdluminate  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Coderx7 picture Coderx7  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ