PyTorch Tutorial

โšก ฮˆฮพฯ…ฯ€ฮฝฮท ฮฃฯฮฝฮฟฯˆฮท

PyTorฮคฮฟ ch ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ ฯ€ฮปฮฑฮฏฯƒฮนฮฟ ฮฒฮฑฮธฮนฮฌฯ‚ ฮผฮฌฮธฮทฯƒฮทฯ‚ ฮฑฮฝฮฟฮนฯ‡ฯ„ฮฟฯ ฮบฯŽฮดฮนฮบฮฑ ฮฑฯ€ฯŒ ฯ„ฮทฮฝ Meta, ฯ„ฮฟ ฮฟฯ€ฮฟฮฏฮฟ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮตฮฏ ฯ€ฮปฮญฮฟฮฝ ฯ„ฮฟ 85% ฯ„ฯ‰ฮฝ ฮตฯฮตฯ…ฮฝฮทฯ„ฮนฮบฯŽฮฝ ฮตฯฮณฮฑฯƒฮนฯŽฮฝ ฯƒฯ„ฮฟฮฝ ฯ„ฮฟฮผฮญฮฑ ฯ„ฮทฯ‚ ฮคฮตฯ‡ฮฝฮทฯ„ฮฎฯ‚ ฮฮฟฮทฮผฮฟฯƒฯฮฝฮทฯ‚ ฯ„ฮฟ 2026. Lessฮคฮฑ ons ฮบฮฑฮปฯฯ€ฯ„ฮฟฯ…ฮฝ ฯ„ฮทฮฝ ฮตฮณฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท, ฯ„ฮฑ ฮฒฮฑฯƒฮนฮบฮฌ ฯ„ฮฟฯ… framework, ฯ„ฮทฮฝ ฮฑฯ€ฮปฮฎ ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮท, ฯ„ฮทฮฝ ฯ„ฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮท ฮตฮนฮบฯŒฮฝฯ‰ฮฝ ฮบฮฑฮน ฯ„ฮทฮฝ ฮฑฮฝฮฌฯ€ฯ„ฯ…ฮพฮท ฯ„ฮฟฯ… AWS SageMaker.

  • ๐Ÿง  ฮ”ฯ…ฮฝฮฑฮผฮนฮบฮฌ ฮ“ฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฑ: ฮ— ฯ€ฯฯŒฮธฯ…ฮผฮท ฮตฮบฯ„ฮญฮปฮตฯƒฮท ฯƒฮทฮผฮฑฮฏฮฝฮตฮน ฯŒฯ„ฮน ฮฟฮน ฯ„ฮฑฮฝฯƒฯŒฯฮฟฮน ฯ„ฯฮญฯ‡ฮฟฯ…ฮฝ ฮณฯฮฑฮผฮผฮฎ ฯ€ฯฮฟฯ‚ ฮณฯฮฑฮผฮผฮฎ, ฯ‡ฮฑฮปฮฑฯฯŽฮฝฮฟฮฝฯ„ฮฑฯ‚ Python-style debugging.
  • ๐Ÿ PythonAPI ic: ฮ”ฮนฮฑฮฒฮฌฮถฮตฯ„ฮฑฮน ฯ†ฯ…ฯƒฮนฮบฮฌ ฯƒฮต ฯŒฯ€ฮฟฮนฮฟฮฝ ฮตฮฏฮฝฮฑฮน ฮตฮพฮฟฮนฮบฮตฮนฯ‰ฮผฮญฮฝฮฟฯ‚ ฮผฮต ฯ„ฮฟ NumPy ฮบฮฑฮน Python.
  • ๐Ÿ“ฆ ฮ ฮปฮฟฯฯƒฮนฮฟ ฮŸฮนฮบฮฟฯƒฯฯƒฯ„ฮทฮผฮฑ: ฮ‘ฮณฮบฮฑฮปฮนฮฌฮถฮฟฮฝฯ„ฮฑฯ‚ ฯ„ฮฟ ฮ ฯฯŒฯƒฯ‰ฯ€ฮฟ, vLLM, DeepSpeed, ฮบฮฑฮน Torฮคฮฑ chVision ฮตฮฏฮฝฮฑฮน ฯ‡ฯ„ฮนฯƒฮผฮญฮฝฮฑ ฯƒฮต PyTorch.
  • โš™๏ธ ฮกฮฟฮฎ ฮตฯฮณฮฑฯƒฮฏฮฑฯ‚ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚: ฮŸฯฮฏฯƒฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ, ฮตฯ€ฮนฮปฮญฮพฯ„ฮต ฮฑฯ€ฯŽฮปฮตฮนฮฑ ฮบฮฑฮน ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮนฮทฯ„ฮฎ, ฯƒฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ ฮบฮฌฮฝฯ„ฮต ฮตฯ€ฮฑฮฝฮฌฮปฮทฯˆฮท ฯ€ฯฮฟฯ‚ ฯ„ฮฑ ฮตฮผฯ€ฯฯŒฯ‚, ฯ€ฯฮฟฯ‚ ฯ„ฮฑ ฯ€ฮฏฯƒฯ‰ ฮบฮฑฮน ฮบฮฌฮฝฯ„ฮต ฮฒฮฎฮผฮฑ.
  • ๐Ÿ“Š ฮšฯ…ฯฮนฮฑฯฯ‡ฮฏฮฑ ฯƒฯ„ฮทฮฝ ฮญฯฮตฯ…ฮฝฮฑ: ฮคฮฟ 85% ฯ„ฯ‰ฮฝ ฯ€ฯฯŒฯƒฯ†ฮฑฯ„ฯ‰ฮฝ ฮตฯฮณฮฑฯƒฮนฯŽฮฝ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮฝ PyTorch ฮญฮฝฮฑฮฝฯ„ฮน 15% TensorFlow.
  • ๐Ÿค– ฮˆฯ„ฮฟฮนฮผฮฟ ฮณฮนฮฑ LLM: ฮ•ฮณฮณฮตฮฝฮฎฯ‚ ฯ…ฯ€ฮฟฯƒฯ„ฮฎฯฮนฮพฮท ฮณฮนฮฑ ฮผฮตฯ„ฮฑฯƒฯ‡ฮทฮผฮฑฯ„ฮนฯƒฯ„ฮญฯ‚, ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮฏฮทฯƒฮท LoRA ฮบฮฑฮน ฯฮฟฮญฯ‚ ฮตฯฮณฮฑฯƒฮฏฮฑฯ‚ ฮบฮฒฮฑฮฝฯ„ฮนฯƒฮผฮฟฯ.

PyTorch Tutorial

ฮคฮน ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ PyTorฮท;

PyTorch ฮตฮฏฮฝฮฑฮน ฮฑฮฝฮฟฮนฯ‡ฯ„ฮฟฯ ฮบฯŽฮดฮนฮบฮฑ Torฮ’ฮนฮฒฮปฮนฮฟฮธฮฎฮบฮท ฮœฮทฯ‡ฮฑฮฝฮนฮบฮฎฯ‚ ฮœฮฌฮธฮทฯƒฮทฯ‚ ฯ€ฮฟฯ… ฮฒฮฑฯƒฮฏฮถฮตฯ„ฮฑฮน ฯƒฮต ch ฮณฮนฮฑ ฮตฯ€ฮตฮพฮตฯฮณฮฑฯƒฮฏฮฑ ฯ†ฯ…ฯƒฮนฮบฮฎฯ‚ ฮณฮปฯŽฯƒฯƒฮฑฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ Pythonฮ•ฮฏฮฝฮฑฮน ฯ€ฮฑฯฯŒฮผฮฟฮนฮฟ ฮผฮต ฯ„ฮฟ NumPy ฮฑฮปฮปฮฌ ฮผฮต ฮนฯƒฯ‡ฯ…ฯฮฎ ฯ…ฯ€ฮฟฯƒฯ„ฮฎฯฮนฮพฮท GPU. ฮ ฯฮฟฯƒฯ†ฮญฯฮตฮน ฮ”ฯ…ฮฝฮฑฮผฮนฮบฮฌ ฮฅฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฮฌ ฮ“ฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฑ ฯ€ฮฟฯ… ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฯ„ฯฮฟฯ€ฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฮตฮฝ ฮบฮนฮฝฮฎฯƒฮตฮน ฮผฮต ฯ„ฮท ฮฒฮฟฮฎฮธฮตฮนฮฑ ฯ„ฮฟฯ… autograd. PyTorฮคฮฟ ch ฮตฮฏฮฝฮฑฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฯ€ฮนฮฟ ฮณฯฮฎฮณฮฟฯฮฟ ฮฑฯ€ฯŒ ฮฟฯฮนฯƒฮผฮญฮฝฮฑ ฮฌฮปฮปฮฑ frameworks. ฮ‘ฮฝฮฑฯ€ฯ„ฯฯ‡ฮธฮทฮบฮต ฮฑฯ€ฯŒ ฯ„ฮทฮฝ ฮฟฮผฮฌฮดฮฑ ฮญฯฮตฯ…ฮฝฮฑฯ‚ ฯ„ฮตฯ‡ฮฝฮทฯ„ฮฎฯ‚ ฮฝฮฟฮทฮผฮฟฯƒฯฮฝฮทฯ‚ ฯ„ฮฟฯ… Facebook ฯ„ฮฟ 2016.

ฮ“ฮฝฯ‰ฯฮฏฮถฮฟฮฝฯ„ฮฑฯ‚ ฯ„ฮน PyTorฮคฮฟ ch ฮดฮฏฮฝฮตฮน ฮผฮนฮฑ ฮนฯƒฮฟฯฯฮฟฯ€ฮทฮผฮญฮฝฮท ฮผฮฑฯ„ฮนฮฌ ฯƒฯ„ฮฑ ฮดฯ…ฮฝฮฑฯ„ฮฌ ฮบฮฑฮน ฯ„ฮฑ ฮผฮตฮนฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฌ ฯ„ฮฟฯ….

PyTorฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฮบฮฑฮน ฮผฮตฮนฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ

ฮ‘ฮบฮฟฮปฮฟฯ…ฮธฮฟฯฮฝ ฯ„ฮฑ ฯ€ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฮบฮฑฮน ฯ„ฮฑ ฮผฮตฮนฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… Py:Torch:

ฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… PyTorch

  1. ฮ‘ฯ€ฮปฮฎ ฮ’ฮนฮฒฮปฮนฮฟฮธฮฎฮบฮท
    PyTorฮŸ ฮบฯŽฮดฮนฮบฮฑฯ‚ ch ฮตฮฏฮฝฮฑฮน ฮฑฯ€ฮปฯŒฯ‚. ฮ•ฮฏฮฝฮฑฮน ฮตฯฮบฮฟฮปฮฟฯ‚ ฯƒฯ„ฮทฮฝ ฮบฮฑฯ„ฮฑฮฝฯŒฮทฯƒฮท ฮบฮฑฮน ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮต ฯ„ฮท ฮฒฮนฮฒฮปฮนฮฟฮธฮฎฮบฮท ฮฑฮผฮญฯƒฯ‰ฯ‚. ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฯฮฏฮพฯ„ฮต ฮผฮนฮฑ ฮผฮฑฯ„ฮนฮฌ ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ ฮฑฯ€ฯŒฯƒฯ€ฮฑฯƒฮผฮฑ ฮบฯŽฮดฮนฮบฮฑ:
class Net(torch.nn.Module):
   def __init__(self):
       super(Net, self).__init__()
       self.layer = torch.nn.Linear(1, 1)

   def forward(self, x):
       x = self.layer(x)      
       return x

ฮŒฯ€ฯ‰ฯ‚ ฮฑฮฝฮฑฯ†ฮญฯฮธฮทฮบฮต ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰, ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮดฮนฮบฯ„ฯฮฟฯ… ฮตฯฮบฮฟฮปฮฑ ฮบฮฑฮน ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮบฮฑฯ„ฮฑฮฝฮฟฮฎฯƒฮตฯ„ฮต ฯ„ฮฟฮฝ ฮบฯŽฮดฮนฮบฮฑ ฮณฯฮฎฮณฮฟฯฮฑ ฯ‡ฯ‰ฯฮฏฯ‚ ฯ€ฮฟฮปฮปฮฎ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮท.

  1. ฮ”ฯ…ฮฝฮฑฮผฮนฮบฯŒ ฮฅฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฯŒ ฮ“ฯฮฌฯ†ฮทฮผฮฑ

ฮ”ฯ…ฮฝฮฑฮผฮนฮบฯŒ ฮฅฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฯŒ ฮ“ฯฮฌฯ†ฮทฮผฮฑ

ฮ ฮทฮณฮฎ ฮตฮนฮบฯŒฮฝฮฑฯ‚: ฮ•ฮพฮตฯฮตฯ…ฮฝฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮท ฮ’ฮฑฮธฮนฮฌ ฮœฮฌฮธฮทฯƒฮท ฮผฮต PyTorch

PyTorฮคฮฟ ch ฯ€ฯฮฟฯƒฯ†ฮญฯฮตฮน ฮ”ฯ…ฮฝฮฑฮผฮนฮบฯŒ ฮฅฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฯŒ ฮ“ฯฮฌฯ†ฮทฮผฮฑ (DAG). ฮคฮฑ ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฮฌ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฑ ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑฯ‚ ฯ„ฯฯŒฯ€ฮฟฯ‚ ฮญฮบฯ†ฯฮฑฯƒฮทฯ‚ ฮผฮฑฮธฮทฮผฮฑฯ„ฮนฮบฯŽฮฝ ฮตฮบฯ†ฯฮฌฯƒฮตฯ‰ฮฝ ฯƒฮต ฮผฮฟฮฝฯ„ฮญฮปฮฑ ฮณฯฮฑฯ†ฮทฮผฮฌฯ„ฯ‰ฮฝ ฮฎ ฮธฮตฯ‰ฯฮฏฮตฯ‚ ฯŒฯ€ฯ‰ฯ‚ ฮบฯŒฮผฮฒฮฟฮน ฮบฮฑฮน ฮฑฮบฮผฮญฯ‚. ฮŸ ฮบฯŒฮผฮฒฮฟฯ‚ ฮธฮฑ ฮตฮบฯ„ฮตฮปฮญฯƒฮตฮน ฯ„ฮท ฮผฮฑฮธฮทฮผฮฑฯ„ฮนฮบฮฎ ฯ€ฯฮฌฮพฮท ฮบฮฑฮน ฮท ฮฑฮบฮผฮฎ ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑฯ‚ Tensor ฯ€ฮฟฯ… ฮธฮฑ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮทฮธฮตฮฏ ฯƒฯ„ฮฟฯ…ฯ‚ ฮบฯŒฮผฮฒฮฟฯ…ฯ‚ ฮบฮฑฮน ฮธฮฑ ฮผฮตฯ„ฮฑฯ†ฮญฯฮตฮน ฯ„ฮทฮฝ ฮญฮพฮฟฮดฮฟ ฯ„ฮฟฯ… ฮบฯŒฮผฮฒฮฟฯ… ฯƒฯ„ฮฟ Tensor.

ฮคฮฟ DAG ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑ ฮณฯฮฌฯ†ฮทฮผฮฑ ฯ€ฮฟฯ… ฮญฯ‡ฮตฮน ฮฑฯ…ฮธฮฑฮฏฯฮตฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮบฮฑฮน ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮบฮฌฮฝฮตฮน ฯ€ฯฮฌฮพฮตฮนฯ‚ ฮผฮตฯ„ฮฑฮพฯ ฮดฮนฮฑฯ†ฮฟฯฮตฯ„ฮนฮบฯŽฮฝ ฮณฯฮฑฯ†ฮทฮผฮฌฯ„ฯ‰ฮฝ ฮตฮนฯƒฯŒฮดฮฟฯ…. ฮšฮฌฮธฮต ฮตฯ€ฮฑฮฝฮฌฮปฮทฯˆฮท ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮฑฮน ฮญฮฝฮฑ ฮฝฮญฮฟ ฮณฯฮฌฯ†ฮทฮผฮฑ. ฮˆฯ„ฯƒฮน, ฮตฮฏฮฝฮฑฮน ฮดฯ…ฮฝฮฑฯ„ฯŒฮฝ ฮฝฮฑ ฮญฯ‡ฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฮฏฮดฮนฮฑ ฮดฮฟฮผฮฎ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฟฯ‚ ฮฎ ฮฝฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฮญฮฝฮฑ ฮฝฮญฮฟ ฮณฯฮฌฯ†ฮทฮผฮฑ ฮผฮต ฮดฮนฮฑฯ†ฮฟฯฮตฯ„ฮนฮบฮฎ ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮฎ ฮผฯ€ฮฟฯฮฟฯฮผฮต ฮฝฮฑ ฯ„ฮฟ ฮฟฮฝฮฟฮผฮฌฯƒฮฟฯ…ฮผฮต ฮดฯ…ฮฝฮฑฮผฮนฮบฯŒ ฮณฯฮฌฯ†ฮทฮผฮฑ.

  1. ฮบฮฑฮปฯฯ„ฮตฯฮท ฮฑฯ€ฯŒฮดฮฟฯƒฮท

ฮšฮฟฮนฮฝฯŒฯ„ฮทฯ„ฮตฯ‚ ฮบฮฑฮน ฮตฯฮตฯ…ฮฝฮทฯ„ฮญฯ‚, ฮผฮตฯ„ฯฮฎฯƒฯ„ฮต ฮบฮฑฮน ฯƒฯ…ฮณฮบฯฮฏฮฝฮตฯ„ฮต ฯ€ฮปฮฑฮฏฯƒฮนฮฑ ฮณฮนฮฑ ฮฝฮฑ ฮดฮตฮฏฯ„ฮต ฯ€ฮฟฮนฮฟ ฮตฮฏฮฝฮฑฮน ฯ€ฮนฮฟ ฮณฯฮฎฮณฮฟฯฮฟ. ฮˆฮฝฮฑ ฮฑฯ€ฮฟฮธฮตฯ„ฮฎฯฮนฮฟ GitHub ฮฃฮทฮผฮตฮฏฮฟ ฮฑฮฝฮฑฯ†ฮฟฯฮฌฯ‚ ฯƒฮต ฯ€ฮปฮฑฮฏฯƒฮนฮฑ Deep Learning ฮบฮฑฮน GPU ฮฑฮฝฮญฯ†ฮตฯฮต ฯŒฯ„ฮน ฮฟ PyTorฮคฮฟ ch ฮตฮฏฮฝฮฑฮน ฯ„ฮฑฯ‡ฯฯ„ฮตฯฮฟ ฮฑฯ€ฯŒ ฯ„ฮฟ ฮฌฮปฮปฮฟ ฯ€ฮปฮฑฮฏฯƒฮนฮฟ ฯŒฯƒฮฟฮฝ ฮฑฯ†ฮฟฯฮฌ ฯ„ฮนฯ‚ ฮตฮนฮบฯŒฮฝฮตฯ‚ ฯ€ฮฟฯ… ฮตฯ€ฮตฮพฮตฯฮณฮฌฮถฮฟฮฝฯ„ฮฑฮน ฮฑฮฝฮฌ ฮดฮตฯ…ฯ„ฮตฯฯŒฮปฮตฯ€ฯ„ฮฟ.

ฮŒฯ€ฯ‰ฯ‚ ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮดฮตฮฏฯ„ฮต ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰, ฯ„ฮฑ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฑ ฯƒฯฮณฮบฯฮนฯƒฮทฯ‚ ฮผฮต ฯ„ฮฟ vgg16 ฮบฮฑฮน ฯ„ฮฟ resnet152

ฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… PyTorch

ฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… PyTorch

  1. Native Python

PyTorฮคฮฟ ch ฮฒฮฑฯƒฮฏฮถฮตฯ„ฮฑฮน ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮฟ ฯƒฮต python. ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮฑฮฝ ฮธฮญฮปฮตฯ„ฮต ฮฝฮฑ ฮตฮบฯ€ฮฑฮนฮดฮตฯฯƒฮตฯ„ฮต ฮญฮฝฮฑ ฮผฮฟฮฝฯ„ฮญฮปฮฟ, ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฮตฮณฮณฮตฮฝฮฎ ฯฮฟฮฎ ฮตฮปฮญฮณฯ‡ฮฟฯ… ฯŒฯ€ฯ‰ฯ‚ ฯ„ฮฟ loo.ping ฮบฮฑฮน ฮฑฮฝฮฑฮดฯฮฟฮผฮญฯ‚ ฯ‡ฯ‰ฯฮฏฯ‚ ฯ„ฮทฮฝ ฮฑฮฝฮฌฮณฮบฮท ฯ€ฯฮฟฯƒฮธฮฎฮบฮทฯ‚ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฯ‰ฮฝ ฮตฮนฮดฮนฮบฯŽฮฝ ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฯŽฮฝ ฮฎ ฯƒฯ…ฮฝฮตฮดฯฮนฯŽฮฝ ฮณฮนฮฑ ฯ„ฮทฮฝ ฮตฮบฯ„ฮญฮปฮตฯƒฮฎ ฯ„ฮฟฯ…ฯ‚. ฮ‘ฯ…ฯ„ฯŒ ฮตฮฏฮฝฮฑฮน ฯ€ฮฟฮปฯ ฯ‡ฯฮฎฯƒฮนฮผฮฟ ฮณฮนฮฑ ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚.

PyTorฮคฮฟ ch ฮตฯ†ฮฑฯฮผฯŒฮถฮตฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฮ ฯฮฟฯƒฯ„ฮฑฮบฯ„ฮนฮบฯŒ ฮ ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฮผฯŒ, ฮบฮฑฮน ฮตฮฏฮฝฮฑฮน ฯƒฮฏฮณฮฟฯ…ฯฮฑ ฯ€ฮนฮฟ ฮตฯ…ฮญฮปฮนฮบฯ„ฮฟ. ฮˆฯ„ฯƒฮน, ฮตฮฏฮฝฮฑฮน ฮดฯ…ฮฝฮฑฯ„ฯŒ ฮฝฮฑ ฮตฮบฯ„ฯ…ฯ€ฯŽฯƒฮตฯ„ฮต ฯ„ฮทฮฝ ฯ„ฮนฮผฮฎ ฯ„ฮฟฯ… ฯ„ฮฑฮฝฯ…ฯƒฯ„ฮฎฯฮฑ ฯƒฯ„ฮท ฮผฮญฯƒฮท ฮผฮนฮฑฯ‚ ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮนฮบฮฎฯ‚ ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑฯ‚.

ฮœฮตฮนฮฟฮฝฮญฮบฯ„ฮทฮผฮฑ ฯ„ฮฟฯ… PyTorch

PyTorฮคฮฟ ch ฮฑฯ€ฮฑฮนฯ„ฮตฮฏ ฮตฯ†ฮฑฯฮผฮฟฮณฮญฯ‚ ฯ„ฯฮฏฯ„ฯ‰ฮฝ ฮณฮนฮฑ ฮฟฯ€ฯ„ฮนฮบฮฟฯ€ฮฟฮฏฮทฯƒฮท. ฮงฯฮตฮนฮฌฮถฮตฯ„ฮฑฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฮญฮฝฮฑฮฝ ฮดฮนฮฑฮบฮฟฮผฮนฯƒฯ„ฮฎ API ฮณฮนฮฑ ฯ€ฮฑฯฮฑฮณฯ‰ฮณฮฎ.

ฮ•ฯ€ฯŒฮผฮตฮฝฮฟ ฯƒฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ PyTorch tutorial, ฮธฮฑ ฮผฮฌฮธฮฟฯ…ฮผฮต ฮณฮนฮฑ ฯ„ฮท ฮดฮนฮฑฯ†ฮฟฯฮฌ ฮผฮตฯ„ฮฑฮพฯ PyTorch ฮบฮฑฮน TensorFlow.

PyTorch ฮตฮฝฮฑฮฝฯ„ฮฏฮฟฮฝ TensorFlow

ฮ ฮฑฯฮฌฮผฮตฯ„ฯฮฟฯ‚ PyTorch TensorFlow
ฮŸฯฮนฯƒฮผฯŒฯ‚ ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮคฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮฟฯฮฏฮถฮตฯ„ฮฑฮน ฯƒฮต ฮผฮนฮฑ ฯ…ฯ€ฮฟฮบฮฑฯ„ฮทฮณฮฟฯฮฏฮฑ ฮบฮฑฮน ฯ€ฯฮฟฯƒฯ†ฮญฯฮตฮน ฮตฯฯ‡ฯฮทฯƒฯ„ฮฟ ฯ€ฮฑฮบฮญฯ„ฮฟ ฮคฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮฟฯฮฏฮถฮตฯ„ฮฑฮน ฮผฮต ฯ€ฮฟฮปฮปฮฌ ฮบฮฑฮน ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮบฮฑฯ„ฮฑฮฝฮฟฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฯƒฯฮฝฯ„ฮฑฮพฮท
ฮฅฯ€ฮฟฯƒฯ„ฮฎฯฮนฮพฮท GPU ฮฮฑฮน ฮฮฑฮน
ฮคฯฯ€ฮฟฯ‚ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฟฯ‚ ฮ”ฯ…ฮฝฮฑฮผฮนฮบฯŒฯ‚ ฮฃฯ„ฮฑฯ„ฮนฮบฯŒฯ‚
ฮšฯŒฮปฮปฮฑ ฮงฯ‰ฯฮฏฯ‚ ฮตฯฮณฮฑฮปฮตฮฏฮฟ ฮฟฯ€ฯ„ฮนฮบฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ ฮœฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟ ฮตฯฮณฮฑฮปฮตฮฏฮฟ ฮฟฯ€ฯ„ฮนฮบฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ Tensorboard
ฮšฮฟฮนฮฝฯŒฯ„ฮทฯ„ฮฑ ฮ— ฮบฮฟฮนฮฝฯŒฯ„ฮทฯ„ฮฑ ฮตฮพฮฑฮบฮฟฮปฮฟฯ…ฮธฮตฮฏ ฮฝฮฑ ฮผฮตฮณฮฑฮปฯŽฮฝฮตฮน ฮœฮตฮณฮฌฮปฮตฯ‚ ฮตฮฝฮตฯฮณฮญฯ‚ ฮบฮฟฮนฮฝฯŒฯ„ฮทฯ„ฮตฯ‚

ฮˆฯ‡ฮฟฮฝฯ„ฮฑฯ‚ ฮบฮฑฯ„ฮฌ ฮฝฮฟฯ… ฯ„ฮท ฯƒฯฮณฮบฯฮนฯƒฮท, ฯ„ฮฟ ฮตฯ€ฯŒฮผฮตฮฝฮฟ ฮฒฮฎฮผฮฑ ฮตฮฏฮฝฮฑฮน ฮฝฮฑ ฮฒฯฮฟฯฮผฮต ฯ„ฮทฮฝ PyTorch ฯ€ฮฟฯ… ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน ฯ„ฮฟฯ€ฮนฮบฮฌ ฮฎ ฯƒฯ„ฮฟ cloud.

ฮ•ฮณฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท PyTorch

Linux

ฮ•ฮฏฮฝฮฑฮน ฮตฯฮบฮฟฮปฮฟ ฮฝฮฑ ฯ„ฮฟ ฮตฮณฮบฮฑฯ„ฮฑฯƒฯ„ฮฎฯƒฮตฯ„ฮต ฯƒฮต Linux. ฮœฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮตฯ€ฮนฮปฮญฮพฮตฯ„ฮต ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฮญฮฝฮฑ ฮตฮนฮบฮฟฮฝฮนฮบฯŒ ฯ€ฮตฯฮนฮฒฮฌฮปฮปฮฟฮฝ ฮฎ ฮฝฮฑ ฯ„ฮฟ ฮตฮณฮบฮฑฯ„ฮฑฯƒฯ„ฮฎฯƒฮตฯ„ฮต ฮฑฯ€ฮตฯ…ฮธฮตฮฏฮฑฯ‚ ฮผฮต ฯ€ฯฯŒฯƒฮฒฮฑฯƒฮท root. ฮ ฮปฮทฮบฯ„ฯฮฟฮปฮฟฮณฮฎฯƒฯ„ฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฮตฮฝฯ„ฮฟฮปฮฎ ฯƒฯ„ฮฟ ฯ„ฮตฯฮผฮฑฯ„ฮนฮบฯŒ

pip3 install --upgrade torch torchvision

AWS Sagemaker

ฮคฮฟ Sagemaker ฮตฮฏฮฝฮฑฮน ฮผฮฏฮฑ ฮฑฯ€ฯŒ ฯ„ฮนฯ‚ ฯ€ฮปฮฑฯ„ฯ†ฯŒฯฮผฮตฯ‚ Amazon ฮฅฯ€ฮทฯฮตฯƒฮฏฮฑ ฮ™ฯƒฯ„ฮฟฯ ฯ€ฮฟฯ… ฯ€ฯฮฟฯƒฯ†ฮญฯฮตฮน ฮผฮนฮฑ ฮนฯƒฯ‡ฯ…ฯฮฎ ฮผฮทฯ‡ฮฑฮฝฮฎ ฮผฮทฯ‡ฮฑฮฝฮนฮบฮฎฯ‚ ฮตฮบฮผฮฌฮธฮทฯƒฮทฯ‚ ฮผฮต ฯ€ฯฮฟฮตฮณฮบฮฑฯ„ฮตฯƒฯ„ฮทฮผฮญฮฝฮตฯ‚ ฮดฮนฮฑฮผฮฟฯฯ†ฯŽฯƒฮตฮนฯ‚ ฮฒฮฑฮธฮนฮฌฯ‚ ฮตฮบฮผฮฌฮธฮทฯƒฮทฯ‚ ฮณฮนฮฑ ฮตฯ€ฮนฯƒฯ„ฮฎฮผฮฟฮฝฮตฯ‚ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฮฎ ฯ€ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฯ„ฮญฯ‚ ฮณฮนฮฑ ฯ„ฮทฮฝ ฮบฮฑฯ„ฮฑฯƒฮบฮตฯ…ฮฎ, ฯ„ฮทฮฝ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮท ฮบฮฑฮน ฯ„ฮทฮฝ ฮฑฮฝฮฌฯ€ฯ„ฯ…ฮพฮท ฮผฮฟฮฝฯ„ฮญฮปฯ‰ฮฝ ฯƒฮต ฮฟฯ€ฮฟฮนฮฑฮดฮฎฯ€ฮฟฯ„ฮต ฮบฮปฮฏฮผฮฑฮบฮฑ.

ฮ ฯฯŽฯ„ฮฑ ฮฑฮฝฮฟฮฏฮพฯ„ฮต ฯ„ฮฟ Amazon ฮจฮฑฮปฮฏฮดฮน ฮบฮฟฮฝฯƒฯŒฮปฮฑ ฮบฮฑฮน ฮบฮฌฮฝฯ„ฮต ฮบฮปฮนฮบ ฯƒฯ„ฮฟ Create notebook instance ฮบฮฑฮน ฯƒฯ…ฮผฯ€ฮปฮทฯฯŽฯƒฯ„ฮต ฯŒฮปฮฑ ฯ„ฮฑ ฯƒฯ„ฮฟฮนฯ‡ฮตฮฏฮฑ ฮณฮนฮฑ ฯ„ฮฟ notebook ฯƒฮฑฯ‚.

AWS Sagemaker

ฮ•ฯ€ฯŒฮผฮตฮฝฮฟ ฮฒฮฎฮผฮฑ, ฮบฮฌฮฝฯ„ฮต ฮบฮปฮนฮบ ฯƒฯ„ฮฟ ฮ†ฮฝฮฟฮนฮณฮผฮฑ ฮณฮนฮฑ ฮฝฮฑ ฮตฮบฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮทฮฝ ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮฑ ฯ„ฮฟฯ… ฯ†ฮฟฯฮทฯ„ฮฟฯ ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮฎ ฯƒฮฑฯ‚.

AWS Sagemaker

ฮคฮญฮปฮฟฯ‚, ฯ„ฮฟ In Jupyter, ฮšฮฌฮฝฯ„ฮต ฮบฮปฮนฮบ ฯƒฯ„ฮฟ ฮฮญฮฟ ฮบฮฑฮน ฮตฯ€ฮนฮปฮญฮพฯ„ฮต conda_pytorch_p36 ฮบฮฑฮน ฮตฮฏฯƒฯ„ฮต ฮญฯ„ฮฟฮนฮผฮฟฮน ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮทฮฝ ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮฑ ฯ„ฮฟฯ… ฯƒฮทฮผฮตฮนฯ‰ฮผฮฑฯ„ฮฌฯฮนฮฟฯ ฯƒฮฑฯ‚ ฮผฮต PyTorch ฮตฮณฮบฮฑฯ„ฮตฯƒฯ„ฮทฮผฮญฮฝฮฟ.

ฮ•ฯ€ฯŒฮผฮตฮฝฮฟ ฯƒฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ PyTorch tutorial, ฮธฮฑ ฮผฮฌฮธฮฟฯ…ฮผฮต ฮณฮนฮฑ ฯ„ฮฟ PyTorฮ’ฮฑฯƒฮนฮบฮฌ ฯƒฯ„ฮฟฮนฯ‡ฮตฮฏฮฑ ฯ€ฮปฮฑฮนฯƒฮฏฮฟฯ… ch.

ฮ‘ฯ†ฮฟฯ ฮตฮณฮบฮฑฯ„ฮฑฯƒฯ„ฮฑฮธฮตฮฏ, ฯ„ฮฟ ฮฏฮดฮนฮฟ ฯ„ฮฟ API ฮตฮฏฮฝฮฑฮน ฮท ฮตฯ€ฯŒฮผฮตฮฝฮท ฯƒฯ„ฮฌฯƒฮท.

PyTorฮ’ฮฑฯƒฮนฮบฮฌ ฯƒฯ„ฮฟฮนฯ‡ฮตฮฏฮฑ ฯ€ฮปฮฑฮนฯƒฮฏฮฟฯ… ch

ฮ‘ฯ‚ ฮผฮฌฮธฮฟฯ…ฮผฮต ฯ„ฮนฯ‚ ฮฒฮฑฯƒฮนฮบฮญฯ‚ ฮญฮฝฮฝฮฟฮนฮตฯ‚ ฯ„ฮฟฯ… PyTorch ฯ€ฯฮนฮฝ ฮฒฮฟฯ…ฯ„ฮฎฮพฮฟฯ…ฮผฮต ฮฒฮฑฮธฮนฮฌ. PyTorฮคฮฟ ch ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏ Tensor ฮณฮนฮฑ ฮบฮฌฮธฮต ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฮฎ ฯ€ฮฑฯฯŒฮผฮฟฮนฮฑ ฮผฮต ฯ„ฮทฮฝ ndarray ฯ„ฮฟฯ… numpy ฮฑฮปฮปฮฌ ฮผฮต ฯ…ฯ€ฮฟฯƒฯ„ฮฎฯฮนฮพฮท ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฮผฮฟฯ GPU. ฮ•ฮดฯŽ ฮธฮฑ ฮตฮพฮทฮณฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮดฮนฮบฯ„ฯฮฟฯ…, ฯ„ฮท ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚, ฯ„ฮฟ Backprop ฮบฮฑฮน ฯ„ฮฟ Optimizer.

ฮœฮฟฮฝฯ„ฮญฮปฮฟ ฮดฮนฮบฯ„ฯฮฟฯ…

ฮคฮฟ ฮดฮฏฮบฯ„ฯ…ฮฟ ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮบฮฑฯ„ฮฑฯƒฮบฮตฯ…ฮฑฯƒฯ„ฮตฮฏ ฮผฮต ฯ…ฯ€ฮฟฮบฮฑฯ„ฮทฮณฮฟฯฮฏฮฑ ฯ„ฮฟฯ… ฯ†ฮฑฮบฮฟฯ.nn. ฮฅฯ€ฮฌฯฯ‡ฮฟฯ…ฮฝ 2 ฮบฯฯฮนฮฑ ฮผฮญฯฮท,

  1. ฮคฮฟ ฯ€ฯฯŽฯ„ฮฟ ฮผฮญฯฮฟฯ‚ ฮตฮฏฮฝฮฑฮน ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฯ„ฮนฯ‚ ฯ€ฮฑฯฮฑฮผฮญฯ„ฯฮฟฯ…ฯ‚ ฮบฮฑฮน ฯ„ฮฑ ฮตฯ€ฮฏฯ€ฮตฮดฮฑ ฯ€ฮฟฯ… ฮธฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต
  2. ฮคฮฟ ฮดฮตฯฯ„ฮตฯฮฟ ฮผฮญฯฮฟฯ‚ ฮตฮฏฮฝฮฑฮน ฮท ฮบฯฯฮนฮฑ ฮตฯฮณฮฑฯƒฮฏฮฑ ฯ€ฮฟฯ… ฮฟฮฝฮฟฮผฮฌฮถฮตฯ„ฮฑฮน ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯŽฮธฮทฯƒฮทฯ‚ ฯ€ฮฟฯ… ฮธฮฑ ฮปฮฌฮฒฮตฮน ฮผฮนฮฑ ฮตฮฏฯƒฮฟฮดฮฟ ฮบฮฑฮน ฮธฮฑ ฯ€ฯฮฟฮฒฮปฮญฯˆฮตฮน ฯ„ฮทฮฝ ฮญฮพฮฟฮดฮฟ.
Import torch
import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
 def __init__(self):
        super(Model, self).__init__()
        self.conv1 = nn.Conv2d(3, 20, 5)
        self.conv2 = nn.Conv2d(20, 40, 5)
self.fc1 = nn.Linear(320, 10)

def forward(self, x):
       x = F.relu(self.conv1(x))
       x = F.relu(self.conv2(x))
       x = x.view(-1, 320)
       x = F.relu(self.fc1(x))
       return F.log_softmax(x)

net = Model()

ฮŒฯ€ฯ‰ฯ‚ ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮดฮตฮฏฯ„ฮต ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰, ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮต ฮผฮนฮฑ ฮบฮปฮฌฯƒฮท nn.Module ฯ€ฮฟฯ… ฮฟฮฝฮฟฮผฮฌฮถฮตฯ„ฮฑฮน Model. ฮ ฮตฯฮนฮญฯ‡ฮตฮน 2 ฮตฯ€ฮฏฯ€ฮตฮดฮฑ Conv2d ฮบฮฑฮน ฮญฮฝฮฑ ฮ“ฯฮฑฮผฮผฮนฮบฯŒ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ. ฮคฮฟ ฯ€ฯฯŽฯ„ฮฟ ฯƒฯ„ฯฯŽฮผฮฑ conv2d ฮญฯ‡ฮตฮน ฮตฮฏฯƒฮฟฮดฮฟ 3 ฮบฮฑฮน ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮตฮพฯŒฮดฮฟฯ… 20. ฮคฮฟ ฮดฮตฯฯ„ฮตฯฮฟ ฯƒฯ„ฯฯŽฮผฮฑ ฮธฮฑ ฮปฮฌฮฒฮตฮน ฮผฮนฮฑ ฮตฮฏฯƒฮฟฮดฮฟ 20 ฮบฮฑฮน ฮธฮฑ ฯ€ฮฑฯฮฌฮณฮตฮน ฮญฮฝฮฑ ฯƒฯ‡ฮฎฮผฮฑ ฮตฮพฯŒฮดฮฟฯ… 40. ฮคฮฟ ฯ„ฮตฮปฮตฯ…ฯ„ฮฑฮฏฮฟ ฯƒฯ„ฯฯŽฮผฮฑ ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑ ฯ€ฮปฮฎฯฯ‰ฯ‚ ฯƒฯ…ฮฝฮดฮตฮดฮตฮผฮญฮฝฮฟ ฯƒฯ„ฯฯŽฮผฮฑ ฯƒฮต ฯƒฯ‡ฮฎฮผฮฑ 320 ฮบฮฑฮน ฮธฮฑ ฯ€ฮฑฯฮฌฮณฮตฮน ฮญฮพฮฟฮดฮฟ 10.

ฮ— ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯŽฮธฮทฯƒฮทฯ‚ ฮธฮฑ ฮปฮฌฮฒฮตฮน ฮผฮนฮฑ ฮตฮฏฯƒฮฟฮดฮฟ ฯ„ฮฟฯ… X ฮบฮฑฮน ฮธฮฑ ฯ„ฮทฮฝ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮฎฯƒฮตฮน ฯƒฯ„ฮฟ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ ฮผฮตฯ„ฮฑฯ„ฯฮฟฯ€ฮฎฯ‚ ฮบฮฑฮน ฮธฮฑ ฮตฮบฯ„ฮตฮปฮญฯƒฮตฮน ฯ„ฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ReLU,

ฮŸฮผฮฟฮฏฯ‰ฯ‚, ฮธฮฑ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮฎฯƒฮตฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฯ„ฮฟ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ conv2. ฮœฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ, ฯ„ฮฟ x ฮธฮฑ ฮฑฮฝฮฑฮดฮนฮฑฮผฮฟฯฯ†ฯ‰ฮธฮตฮฏ ฯƒฮต (-1, 320) ฮบฮฑฮน ฮธฮฑ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮทฮธฮตฮฏ ฯƒฯ„ฮฟ ฯ„ฮตฮปฮนฮบฯŒ ฯƒฯ„ฯฯŽฮผฮฑ FC. ฮ ฯฮนฮฝ ฯƒฯ„ฮตฮฏฮปฮตฯ„ฮต ฯ„ฮทฮฝ ฮญฮพฮฟฮดฮฟ, ฮธฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮตฮฝฮตฯฮณฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ softmax.

ฮ— ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯ‚ ฯ„ฮฑ ฯ€ฮฏฯƒฯ‰ ฮฟฯฮฏฮถฮตฯ„ฮฑฮน ฮฑฯ…ฯ„ฯŒฮผฮฑฯ„ฮฑ ฮฑฯ€ฯŒ ฯ„ฮฟ autograd, ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚ ฯ‡ฯฮตฮนฮฌฮถฮตฯ„ฮฑฮน ฮผฯŒฮฝฮฟ ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯŽฮธฮทฯƒฮทฯ‚.

ฮ›ฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚

ฮ— ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮฑฮน ฮณฮนฮฑ ฮฝฮฑ ฮผฮตฯ„ฯฮฎฯƒฮตฮน ฯ€ฯŒฯƒฮฟ ฮบฮฑฮปฮฌ ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฯ€ฯฯŒฮฒฮปฮตฯˆฮทฯ‚ ฮตฮฏฮฝฮฑฮน ฯƒฮต ฮธฮญฯƒฮท ฮฝฮฑ ฯ€ฯฮฟฮฒฮปฮญฯˆฮตฮน ฯ„ฮฑ ฮฑฮฝฮฑฮผฮตฮฝฯŒฮผฮตฮฝฮฑ ฮฑฯ€ฮฟฯ„ฮตฮปฮญฯƒฮผฮฑฯ„ฮฑ. PyTorฮคฮฟ ch ฮญฯ‡ฮตฮน ฮฎฮดฮท ฯ€ฮฟฮปฮปฮญฯ‚ ฯ„ฯ…ฯ€ฮนฮบฮญฯ‚ ฯƒฯ…ฮฝฮฑฯฯ„ฮฎฯƒฮตฮนฯ‚ ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚ ฯƒฯ„ฮทฮฝ ฮตฮฝฯŒฯ„ฮทฯ„ฮฑ torch.nn. ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮทฮฝ ฮ‘ฯ€ฯŽฮปฮตฮนฮฑ ฮ”ฮนฮฑฯƒฯ„ฮฑฯ…ฯฮฟฯฮผฮตฮฝฮทฯ‚ ฮ•ฮฝฯ„ฯฮฟฯ€ฮฏฮฑฯ‚ ฮณฮนฮฑ ฮฝฮฑ ฮปฯฯƒฮตฯ„ฮต ฮญฮฝฮฑ ฯ€ฯฯŒฮฒฮปฮทฮผฮฑ Py ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮบฮปฮฌฯƒฮตฯ‰ฮฝ.Torฯ€ฯฯŒฮฒฮปฮทฮผฮฑ ฯ„ฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮทฯ‚ ch. ฮ•ฮฏฮฝฮฑฮน ฮตฯฮบฮฟฮปฮฟ ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฯ„ฮท ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚ ฮบฮฑฮน ฮฝฮฑ ฯ…ฯ€ฮฟฮปฮฟฮณฮฏฯƒฮตฯ„ฮต ฯ„ฮนฯ‚ ฮฑฯ€ฯŽฮปฮตฮนฮตฯ‚:

loss_fn = nn.CrossEntropyLoss()

#training process
loss = loss_fn(out, target)

ฮ•ฮฏฮฝฮฑฮน ฮตฯฮบฮฟฮปฮฟ ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟฮฝ ฮดฮนฮบฯŒ ฯƒฮฑฯ‚ ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฮผฯŒ ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮทฯ‚ ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚ ฮผฮต PyTorch.

ฮฃฯ„ฮฎฯฮนฮณฮผฮฑ ฯ€ฮปฮฌฯ„ฮทฯ‚

ฮ“ฮนฮฑ ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮญฯƒฮตฯ„ฮต ฯ„ฮทฮฝ backpropagation, ฮบฮฑฮปฮตฮฏฯ„ฮต ฮฑฯ€ฮปฯŽฯ‚ ฯ„ฮฟ los.backward(). ฮคฮฟ ฯƒฯ†ฮฌฮปฮผฮฑ ฮธฮฑ ฯ…ฯ€ฮฟฮปฮฟฮณฮนฯƒฯ„ฮตฮฏ, ฮฑฮปฮปฮฌ ฮธฯ…ฮผฮทฮธฮตฮฏฯ„ฮต ฮฝฮฑ ฮดฮนฮฑฮณฯฮฌฯˆฮตฯ„ฮต ฯ„ฮทฮฝ ฯ…ฯ€ฮฌฯฯ‡ฮฟฯ…ฯƒฮฑ ฮดฮนฮฑฮฒฮฌฮธฮผฮนฯƒฮท ฮผฮต zero_grad()

net.zero_grad() # to clear the existing gradient
loss.backward() # to perform backpropragation

Optimizer

ฮคฮฟ torch.optim ฯ€ฮฑฯฮญฯ‡ฮตฮน ฮบฮฟฮนฮฝฮฟฯฯ‚ ฮฑฮปฮณฯŒฯฮนฮธฮผฮฟฯ…ฯ‚ ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚. ฮœฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฮญฮฝฮฑฮฝ ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮนฮทฯ„ฮฎ ฮผฮต ฮญฮฝฮฑ ฮฑฯ€ฮปฯŒ ฮฒฮฎฮผฮฑ:

optimizer = torch.optim.SGD(net.parameters(), lr = 0.01, momentum=0.9)

ฮ ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮผฮตฯ„ฮฑฮฒฮนฮฒฮฌฯƒฮตฯ„ฮต ฯ„ฮนฯ‚ ฯ€ฮฑฯฮฑฮผฮญฯ„ฯฮฟฯ…ฯ‚ ฯ„ฮฟฯ… ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮดฮนฮบฯ„ฯฮฟฯ… ฮบฮฑฮน ฯ„ฮฟฮฝ ฯฯ…ฮธฮผฯŒ ฮตฮบฮผฮฌฮธฮทฯƒฮทฯ‚, ฮญฯ„ฯƒฮน ฯŽฯƒฯ„ฮต ฯƒฮต ฮบฮฌฮธฮต ฮตฯ€ฮฑฮฝฮฌฮปฮทฯˆฮท ฮฟฮน ฯ€ฮฑฯฮฌฮผฮตฯ„ฯฮฟฮน ฮฝฮฑ ฮตฮฝฮทฮผฮตฯฯŽฮฝฮฟฮฝฯ„ฮฑฮน ฮผฮตฯ„ฮฌ ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ backprop.

ฮŸ ฯ€ฮนฮฟ ฮบฮฑฮธฮฑฯฯŒฯ‚ ฯ„ฯฯŒฯ€ฮฟฯ‚ ฮณฮนฮฑ ฮฝฮฑ ฮผฮฌฮธฮตฯ„ฮต ฯ„ฮฟ API ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑ ฮผฮนฮบฯฯŒ, ฮฟฮปฮฟฮบฮปฮทฯฯ‰ฮผฮญฮฝฮฟ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ.

ฮ‘ฯ€ฮปฮฎ ฮ ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮท ฮผฮต PyTorch

ฮ‘ฯ‚ ฮผฮฌฮธฮฟฯ…ฮผฮต ฮฑฯ€ฮปฮฎ ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮท ฮผฮต PyTorฯ€ฮฑฯฮฑฮดฮตฮฏฮณฮผฮฑฯ„ฮฑ ch:

ฮ’ฮฎฮผฮฑ 1) ฮ”ฮทฮผฮนฮฟฯ…ฯฮณฮฏฮฑ ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮดฮนฮบฯ„ฯฮฟฯ…

ฮคฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮดฮนฮบฯ„ฯฮฟฯ… ฮผฮฑฯ‚ ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑ ฮฑฯ€ฮปฯŒ ฮ“ฯฮฑฮผฮผฮนฮบฯŒ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ ฮผฮต ฯƒฯ‡ฮฎฮผฮฑ ฮตฮนฯƒฯŒฮดฮฟฯ… ฮบฮฑฮน ฮตฮพฯŒฮดฮฟฯ… 1.

from __future__ import print_function

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable

class Net(nn.Module):
   def __init__(self):
       super(Net, self).__init__()
       self.layer = torch.nn.Linear(1, 1)

   def forward(self, x):
       x = self.layer(x)      
       return x

net = Net()
print(net)

ฮšฮฑฮน ฮท ฮญฮพฮฟฮดฮฟฯ‚ ฮดฮนฮบฯ„ฯฮฟฯ… ฮธฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮตฮฏฮฝฮฑฮน ฮญฯ„ฯƒฮน

Net(
  (hidden): Linear(in_features=1, out_features=1, bias=True)
)

ฮ’ฮฎฮผฮฑ 2) ฮ”ฮตฮดฮฟฮผฮญฮฝฮฑ ฮดฮฟฮบฮนฮผฮฎฯ‚

ฮ ฯฮนฮฝ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚, ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮณฮฝฯ‰ฯฮฏฮถฮตฯ„ฮต ฯ„ฮฑ ฮดฮตฮดฮฟฮผฮญฮฝฮฑ ฮผฮฑฯ‚. ฮ”ฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮต ฮผฮนฮฑ ฯ„ฯ…ฯ‡ฮฑฮฏฮฑ ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮณฮนฮฑ ฮฝฮฑ ฮดฮฟฮบฮนฮผฮฌฯƒฮตฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮผฮฑฯ‚. ฮฅ = x3 sin(x)+ 3x+0.8 rand(100)

# Visualize our data
import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(100)
y = np.sin(x) * np.power(x,3) + 3*x + np.random.rand(100)*0.8

plt.scatter(x, y)
plt.show()

ฮ•ฮดฯŽ ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ ฮดฮนฮฌฮณฯฮฑฮผฮผฮฑ ฮดฮนฮฑฯƒฯ€ฮฟฯฮฌฯ‚ ฯ„ฮทฯ‚ ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮฎฯ‚ ฮผฮฑฯ‚:

ฮ”ฮนฮฌฮณฯฮฑฮผฮผฮฑ ฮดฮนฮฑฯƒฯ€ฮฟฯฮฌฯ‚ ฮฑฯ€ฮปฮฎฯ‚ ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮทฯ‚ ฮผฮต PyTorch

ฮ ฯฮนฮฝ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚, ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮผฮตฯ„ฮฑฯ„ฯฮญฯˆฮตฯ„ฮต ฯ„ฮฟฮฝ ฯ€ฮฏฮฝฮฑฮบฮฑ numpy ฯƒฮต ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฮญฯ‚ ฯ€ฮฟฯ… ฯ…ฯ€ฮฟฯƒฯ„ฮทฯฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮฑฯ€ฯŒ Torch ฮบฮฑฮน autograd ฯŒฯ€ฯ‰ฯ‚ ฯ†ฮฑฮฏฮฝฮตฯ„ฮฑฮน ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ PyTorฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮทฯ‚ ch.

# convert numpy array to tensor in shape of input size
x = torch.from_numpy(x.reshape(-1,1)).float()
y = torch.from_numpy(y.reshape(-1,1)).float()
print(x, y)

ฮ’ฮฎฮผฮฑ 3) Optimizer and Loss

ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮธฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮฟฯฮฏฯƒฮตฯ„ฮต ฯ„ฮฟ Optimizer ฮบฮฑฮน ฯ„ฮท ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮฑฯ€ฯŽฮปฮตฮนฮฑฯ‚ ฮณฮนฮฑ ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮฎฯ‚ ฮผฮฑฯ‚.

# Define Optimizer and Loss Function
optimizer = torch.optim.SGD(net.parameters(), lr=0.2)
loss_func = torch.nn.MSELoss()

ฮ’ฮฎฮผฮฑ 4) ฮ•ฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮท

ฮคฯŽฯฮฑ ฮฑฯ‚ ฮพฮตฮบฮนฮฝฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฯ€ฯฮฟฯ€ฮฟฮฝฮทฯ„ฮนฮบฮฎ ฮผฮฑฯ‚ ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ. ฮœฮต ฮผฮนฮฑ ฮตฯ€ฮฟฯ‡ฮฎ 250, ฮธฮฑ ฮตฯ€ฮฑฮฝฮฑฮปฮฌฮฒฮตฯ„ฮต ฯ„ฮฑ ฮดฮตฮดฮฟฮผฮญฮฝฮฑ ฮผฮฑฯ‚ ฮณฮนฮฑ ฮฝฮฑ ฮฒฯฮตฮฏฯ„ฮต ฯ„ฮทฮฝ ฮบฮฑฮปฯฯ„ฮตฯฮท ฯ„ฮนฮผฮฎ ฮณฮนฮฑ ฯ„ฮนฯ‚ ฯ…ฯ€ฮตฯฯ€ฮฑฯฮฑฮผฮญฯ„ฯฮฟฯ…ฯ‚ ฮผฮฑฯ‚.

inputs = Variable(x)
outputs = Variable(y)
for i in range(250):
   prediction = net(inputs)
   loss = loss_func(prediction, outputs) 
   optimizer.zero_grad()
   loss.backward()        
   optimizer.step()       

   if i % 10 == 0:
       # plot and show learning process
       plt.cla()
       plt.scatter(x.data.numpy(), y.data.numpy())
       plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=2)
       plt.text(0.5, 0, 'Loss=%.4f' % loss.data.numpy(), fontdict={'size': 10, 'color':  'red'})
       plt.pause(0.1)

plt.show()

ฮ’ฮฎฮผฮฑ 5) ฮ‘ฯ€ฮฟฯ„ฮญฮปฮตฯƒฮผฮฑ

ฮŒฯ€ฯ‰ฯ‚ ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮดฮตฮฏฯ„ฮต ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰, ฮตฮบฯ„ฮตฮปฮญฯƒฮฑฯ„ฮต ฮผฮต ฮตฯ€ฮนฯ„ฯ…ฯ‡ฮฏฮฑ ฯ„ฮทฮฝ PyTorฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮท ch ฮผฮต ฮญฮฝฮฑ ฮฝฮตฯ…ฯฯ‰ฮฝฮนฮบฯŒ ฮดฮฏฮบฯ„ฯ…ฮฟ. ฮฃฯ„ฮทฮฝ ฯ€ฯฮฑฮณฮผฮฑฯ„ฮนฮบฯŒฯ„ฮทฯ„ฮฑ, ฯƒฮต ฮบฮฌฮธฮต ฮตฯ€ฮฑฮฝฮฌฮปฮทฯˆฮท, ฮท ฮบฯŒฮบฮบฮนฮฝฮท ฮณฯฮฑฮผฮผฮฎ ฯƒฯ„ฮฟ ฮดฮนฮฌฮณฯฮฑฮผฮผฮฑ ฮธฮฑ ฮตฮฝฮทฮผฮตฯฯŽฮฝฮตฯ„ฮฑฮน ฮบฮฑฮน ฮธฮฑ ฮฑฮปฮปฮฌฮถฮตฮน ฯ„ฮท ฮธฮญฯƒฮท ฯ„ฮทฯ‚ ฯŽฯƒฯ„ฮต ฮฝฮฑ ฯ„ฮฑฮนฯฮนฮฌฮถฮตฮน ฯƒฯ„ฮฑ ฮดฮตฮดฮฟฮผฮญฮฝฮฑ. ฮ‘ฮปฮปฮฌ ฯƒฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฮตฮนฮบฯŒฮฝฮฑ, ฯƒฮฑฯ‚ ฮดฮตฮฏฯ‡ฮฝฮตฮน ฮผฯŒฮฝฮฟ ฯ„ฮฟ ฯ„ฮตฮปฮนฮบฯŒ ฮฑฯ€ฮฟฯ„ฮญฮปฮตฯƒฮผฮฑ ฯŒฯ€ฯ‰ฯ‚ ฯ†ฮฑฮฏฮฝฮตฯ„ฮฑฮน ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ Py.Torฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ch:

ฮฃฯ‡ฮญฮดฮนฮฟ ฮดฮนฮฑฯƒฯ€ฮฟฯฮฌฯ‚ ฮฑฯ€ฮฟฯ„ฮตฮปฮตฯƒฮผฮฌฯ„ฯ‰ฮฝ ฮฑฯ€ฮปฮฎฯ‚ ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮทฯ‚

ฮ— ฯ€ฮฑฮปฮนฮฝฮดฯฯŒฮผฮทฯƒฮท ฮตฮฏฮฝฮฑฮน ฮผฮนฮฑ ฯ€ฯฮฟฮธฮญฯฮผฮฑฮฝฯƒฮทยท ฮท ฯ„ฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮท ฮตฮนฮบฯŒฮฝฯ‰ฮฝ ฮฑฯƒฮบฮตฮฏ ฯ„ฮฟฯ…ฯ‚ ฮผฯฮตฯ‚ ฮฒฮฑฮธฮนฮฌฯ‚ ฮผฮฌฮธฮทฯƒฮทฯ‚ ฯ„ฮฟฯ… Py.Torch.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฮคฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮทฯ‚ ฮ•ฮนฮบฯŒฮฝฯ‰ฮฝ ฮผฮต PyTorch

ฮœฮฏฮฑ ฮฑฯ€ฯŒ ฯ„ฮนฯ‚ ฮดฮทฮผฮฟฯ†ฮนฮปฮตฮฏฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…ฯ‚ ฮณฮนฮฑ ฮฝฮฑ ฮผฮฌฮธฮตฯ„ฮต ฯ„ฮฑ ฮฒฮฑฯƒฮนฮบฮฌ ฮฒฮฑฮธฮนฮฌ ฮผฮฌฮธฮทฯƒฮท ฮตฮฏฮฝฮฑฮน ฮผฮต ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ MNIST. ฮ•ฮฏฮฝฮฑฮน ฯ„ฮฟ ยซHello Worldยป ฯƒฯ„ฮท ฮฒฮฑฮธฮนฮฌ ฮผฮฌฮธฮทฯƒฮท. ฮคฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฯ€ฮตฯฮนฮญฯ‡ฮตฮน ฯ‡ฮตฮนฯฯŒฮณฯฮฑฯ†ฮฟฯ…ฯ‚ ฮฑฯฮนฮธฮผฮฟฯฯ‚ ฮฑฯ€ฯŒ ฯ„ฮฟ 0 ฮญฯ‰ฯ‚ ฯ„ฮฟ 9 ฮผฮต ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฯ„ฯ‰ฮฝ 60,000 ฮดฮตฮนฮณฮผฮฌฯ„ฯ‰ฮฝ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚ ฮบฮฑฮน 10,000 ฮดฮตฮนฮณฮผฮฌฯ„ฯ‰ฮฝ ฮดฮฟฮบฮนฮผฮฎฯ‚ ฯ€ฮฟฯ… ฮญฯ‡ฮฟฯ…ฮฝ ฮฎฮดฮท ฮตฯ€ฮนฯƒฮทฮผฮฑฮฝฮธฮตฮฏ ฮผฮต ฯ„ฮฟ ฮผฮญฮณฮตฮธฮฟฯ‚ 28ร—28 pixel.

ฮคฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮท ฮตฮนฮบฯŒฮฝฮฑฯ‚ ฮผฮต PyTorch

ฮ’ฮฎฮผฮฑ 1) ฮ ฯฮฟฮตฯ€ฮตฮพฮตฯฮณฮฑฯƒฯ„ฮตฮฏฯ„ฮต ฯ„ฮฑ ฮ”ฮตฮดฮฟฮผฮญฮฝฮฑ

ฮฃฯ„ฮฟ ฯ€ฯฯŽฯ„ฮฟ ฮฒฮฎฮผฮฑ ฮฑฯ…ฯ„ฮฟฯ ฯ„ฮฟฯ… PyTorฮฃฯ„ฮฟ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฯ„ฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮทฯ‚ ch, ฮธฮฑ ฯ†ฮฟฯฯ„ฯŽฯƒฮตฯ„ฮต ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮท ฮผฮฟฮฝฮฌฮดฮฑ torchvision.

ฮ ฯฮนฮฝ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚, ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮบฮฑฯ„ฮฑฮฝฮฟฮฎฯƒฮตฯ„ฮต ฯ„ฮฑ ฮดฮตฮดฮฟฮผฮญฮฝฮฑ. Torฮคฮฟ chvision ฮธฮฑ ฯ†ฮฟฯฯ„ฯŽฯƒฮตฮน ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฮบฮฑฮน ฮธฮฑ ฮผฮตฯ„ฮฑฯƒฯ‡ฮทฮผฮฑฯ„ฮฏฯƒฮตฮน ฯ„ฮนฯ‚ ฮตฮนฮบฯŒฮฝฮตฯ‚ ฮผฮต ฯ„ฮนฯ‚ ฮบฮฑฯ„ฮฌฮปฮปฮทฮปฮตฯ‚ ฮฑฯ€ฮฑฮนฯ„ฮฎฯƒฮตฮนฯ‚ ฮณฮนฮฑ ฯ„ฮฟ ฮดฮฏฮบฯ„ฯ…ฮฟ, ฯŒฯ€ฯ‰ฯ‚ ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮบฮฑฮน ฯ„ฮทฮฝ ฮฟฮผฮฑฮปฮฟฯ€ฮฟฮฏฮทฯƒฮท ฯ„ฯ‰ฮฝ ฮตฮนฮบฯŒฮฝฯ‰ฮฝ.

import torch
import torchvision
import numpy as np
from torchvision import datasets, models, transforms

# This is used to transform the images to Tensor and normalize it
transform = transforms.Compose(
   [transforms.ToTensor(),
    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

training = torchvision.datasets.MNIST(root='./data', train=True,
                                       download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(training, batch_size=4,
                                         shuffle=True, num_workers=2)

testing = torchvision.datasets.MNIST(root='./data', train=False,
                                      download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(testing, batch_size=4,
                                        shuffle=False, num_workers=2)

classes = ('0', '1', '2', '3',
          '4', '5', '6', '7', '8', '9')
         
import matplotlib.pyplot as plt
import numpy as np

#create an iterator for train_loader
# get random training images
data_iterator = iter(train_loader)
images, labels = data_iterator.next()

#plot 4 images to visualize the data
rows = 2
columns = 2
fig=plt.figure()
for i in range(4):
   fig.add_subplot(rows, columns, i+1)
   plt.title(classes[labels[i]])
   img = images[i] / 2 + 0.5     # this is for unnormalize the image
   img = torchvision.transforms.ToPILImage()(img)
   plt.imshow(img)
plt.show()

ฮ— ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท ฮผฮตฯ„ฮฑฯƒฯ‡ฮทฮผฮฑฯ„ฮนฯƒฮผฮฟฯ ฮผฮตฯ„ฮฑฯ„ฯฮญฯ€ฮตฮน ฯ„ฮนฯ‚ ฮตฮนฮบฯŒฮฝฮตฯ‚ ฯƒฮต ฯ„ฮฑฮฝฯ…ฯƒฯ„ฮฎ ฮบฮฑฮน ฮบฮฑฮฝฮฟฮฝฮนฮบฮฟฯ€ฮฟฮนฮตฮฏ ฯ„ฮทฮฝ ฯ„ฮนฮผฮฎ. ฮ— ฯƒฯ…ฮฝฮฌฯฯ„ฮทฯƒฮท torchvision.transforms.MNIST, ฮธฮฑ ฮบฮฑฯ„ฮตฮฒฮฌฯƒฮตฮน ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ (ฮตฮฌฮฝ ฮดฮตฮฝ ฮตฮฏฮฝฮฑฮน ฮดฮนฮฑฮธฮญฯƒฮนฮผฮฟ) ฯƒฯ„ฮฟฮฝ ฮบฮฑฯ„ฮฌฮปฮฟฮณฮฟ, ฮธฮฑ ฮฟฯฮฏฯƒฮตฮน ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฮณฮนฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮท ฮตฮฌฮฝ ฮตฮฏฮฝฮฑฮน ฮฑฯ€ฮฑฯฮฑฮฏฯ„ฮทฯ„ฮฟ ฮบฮฑฮน ฮธฮฑ ฮบฮฌฮฝฮตฮน ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮผฮตฯ„ฮฑฯƒฯ‡ฮทฮผฮฑฯ„ฮนฯƒฮผฮฟฯ.

ฮ“ฮนฮฑ ฮฝฮฑ ฮฟฯ€ฯ„ฮนฮบฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ, ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮต ฯ„ฮฟ data_iterator ฮณฮนฮฑ ฮฝฮฑ ฮปฮฌฮฒฮตฯ„ฮต ฯ„ฮทฮฝ ฮตฯ€ฯŒฮผฮตฮฝฮท ฯ€ฮฑฯฯ„ฮฏฮดฮฑ ฮตฮนฮบฯŒฮฝฯ‰ฮฝ ฮบฮฑฮน ฮตฯ„ฮนฮบฮตฯ„ฯŽฮฝ. ฮงฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮต matplot ฮณฮนฮฑ ฮฝฮฑ ฯƒฯ‡ฮตฮดฮนฮฌฯƒฮตฯ„ฮต ฮฑฯ…ฯ„ฮญฯ‚ ฯ„ฮนฯ‚ ฮตฮนฮบฯŒฮฝฮตฯ‚ ฮบฮฑฮน ฯ„ฮทฮฝ ฮบฮฑฯ„ฮฌฮปฮปฮทฮปฮท ฮตฯ„ฮนฮบฮญฯ„ฮฑ ฯ„ฮฟฯ…ฯ‚. ฮŒฯ€ฯ‰ฯ‚ ฮผฯ€ฮฟฯฮตฮฏฯ„ฮต ฮฝฮฑ ฮดฮตฮฏฯ„ฮต ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ ฯ„ฮนฯ‚ ฮตฮนฮบฯŒฮฝฮตฯ‚ ฮผฮฑฯ‚ ฮบฮฑฮน ฯ„ฮนฯ‚ ฮตฯ„ฮนฮบฮญฯ„ฮตฯ‚ ฯ„ฮฟฯ…ฯ‚.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฮคฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮทฯ‚ ฮ•ฮนฮบฯŒฮฝฯ‰ฮฝ ฮผฮต PyTorch

ฮ’ฮฎฮผฮฑ 2) ฮ”ฮนฮฑฮผฯŒฯฯ†ฯ‰ฯƒฮท ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮดฮนฮบฯ„ฯฮฟฯ…

ฮคฯŽฯฮฑ ฯƒฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ PyTorฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮธฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮตฯ„ฮต ฮญฮฝฮฑ ฮฑฯ€ฮปฯŒ ฮฝฮตฯ…ฯฯ‰ฮฝฮนฮบฯŒ ฮดฮฏฮบฯ„ฯ…ฮฟ ฮณฮนฮฑ PyTorฯ„ฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮท ฮตฮนฮบฯŒฮฝฮฑฯ‚ ch.

ฮ•ฮดฯŽ, ฯƒฮฑฯ‚ ฯ€ฮฑฯฮฟฯ…ฯƒฮนฮฌฮถฮฟฯ…ฮผฮต ฮญฮฝฮฑฮฝ ฮฌฮปฮปฮฟ ฯ„ฯฯŒฯ€ฮฟ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฏฮฑฯ‚ ฯ„ฮฟฯ… ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮดฮนฮบฯ„ฯฮฟฯ… ฯƒฯ„ฮฟ PyTorฮบฮตฯ†. ฮ˜ฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ nn.Sequential ฮณฮนฮฑ ฮฝฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฮญฮฝฮฑ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮฑฮบฮฟฮปฮฟฯ…ฮธฮฏฮฑฯ‚ ฮฑฮฝฯ„ฮฏ ฮฝฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฮผฮนฮฑ ฯ…ฯ€ฮฟฮบฮปฮฌฯƒฮท ฯ„ฮทฯ‚ nn.Module.

import torch.nn as nn

# flatten the tensor into 
class Flatten(nn.Module):
   def forward(self, input):
       return input.view(input.size(0), -1)

#sequential based model
seq_model = nn.Sequential(
           nn.Conv2d(1, 10, kernel_size=5),
           nn.MaxPool2d(2),
           nn.ReLU(),
           nn.Dropout2d(),
           nn.Conv2d(10, 20, kernel_size=5),
           nn.MaxPool2d(2),
           nn.ReLU(),
           Flatten(),
           nn.Linear(320, 50),
           nn.ReLU(),
           nn.Linear(50, 10),
           nn.Softmax(),
         )

net = seq_model
print(net)

ฮ•ฮดฯŽ ฮตฮฏฮฝฮฑฮน ฮท ฮญฮพฮฟฮดฮฟฯ‚ ฯ„ฮฟฯ… ฮผฮฟฮฝฯ„ฮญฮปฮฟฯ… ฮดฮนฮบฯ„ฯฮฟฯ… ฮผฮฑฯ‚

Sequential(
  (0): Conv2d(1, 10, kernel_size=(5, 5), stride=(1, 1))
  (1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (2): ReLU()
  (3): Dropout2d(p=0.5)
  (4): Conv2d(10, 20, kernel_size=(5, 5), stride=(1, 1))
  (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (6): ReLU()
  (7): Flatten()
  (8): Linear(in_features=320, out_features=50, bias=True)
  (9): ReLU()
  (10): Linear(in_features=50, out_features=10, bias=True)
  (11): Softmax()
)

ฮ•ฯ€ฮตฮพฮฎฮณฮทฯƒฮท ฮดฮนฮบฯ„ฯฮฟฯ…

  1. ฮ— ฮฑฮบฮฟฮปฮฟฯ…ฮธฮฏฮฑ ฮตฮฏฮฝฮฑฮน ฯŒฯ„ฮน ฯ„ฮฟ ฯ€ฯฯŽฯ„ฮฟ ฯƒฯ„ฯฯŽฮผฮฑ ฮตฮฏฮฝฮฑฮน ฮญฮฝฮฑ ฯƒฯ„ฯฯŽฮผฮฑ Conv2D ฮผฮต ฯƒฯ‡ฮฎฮผฮฑ ฮตฮนฯƒฯŒฮดฮฟฯ… 1 ฮบฮฑฮน ฯƒฯ‡ฮฎฮผฮฑ ฮตฮพฯŒฮดฮฟฯ… 10 ฮผฮต ฮผฮญฮณฮตฮธฮฟฯ‚ ฯ€ฯ…ฯฮฎฮฝฮฑ 5
  2. ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮญฯ‡ฮตฯ„ฮต ฮญฮฝฮฑ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ MaxPool2D
  3. ฮœฮนฮฑ ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮตฮฝฮตฯฮณฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ ReLU
  4. ฮญฮฝฮฑ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ ฮตฮณฮบฮฑฯ„ฮฌฮปฮตฮนฯˆฮทฯ‚ ฮณฮนฮฑ ฯ€ฯ„ฯŽฯƒฮท ฯ„ฮนฮผฯŽฮฝ ฯ‡ฮฑฮผฮทฮปฯŽฮฝ ฯ€ฮนฮธฮฑฮฝฮฟฯ„ฮฎฯ„ฯ‰ฮฝ.
  5. ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮญฮฝฮฑ ฮดฮตฯฯ„ฮตฯฮฟ Conv2d ฮผฮต ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮตฮนฯƒฯŒฮดฮฟฯ… 10 ฮฑฯ€ฯŒ ฯ„ฮฟ ฯ„ฮตฮปฮตฯ…ฯ„ฮฑฮฏฮฟ ฯƒฯ„ฯฯŽฮผฮฑ ฮบฮฑฮน ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮตฮพฯŒฮดฮฟฯ… 20 ฮผฮต ฮผฮญฮณฮตฮธฮฟฯ‚ ฯ€ฯ…ฯฮฎฮฝฮฑ 5
  6. ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮญฮฝฮฑ ฯƒฯ„ฯฯŽฮผฮฑ MaxPool2d
  7. ฮ›ฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮตฮฝฮตฯฮณฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ ReLU.
  8. ฮœฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ, ฮธฮฑ ฮนฯƒฮฟฯ€ฮตฮดฯŽฯƒฮตฯ„ฮต ฯ„ฮฟฮฝ ฯ„ฮฑฮฝฯ…ฯƒฯ„ฮฎฯฮฑ ฯ€ฯฮนฮฝ ฯ„ฮฟฮฝ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮฎฯƒฮตฯ„ฮต ฯƒฯ„ฮฟ ฮ“ฯฮฑฮผฮผฮนฮบฯŒ ฯƒฯ„ฯฯŽฮผฮฑ
  9. ฮคฮฟ Linear Layer ฮธฮฑ ฯ‡ฮฑฯฯ„ฮฟฮณฯฮฑฯ†ฮฎฯƒฮตฮน ฯ„ฮทฮฝ ฮญฮพฮฟฮดฮฟ ฮผฮฑฯ‚ ฯƒฯ„ฮฟ ฮดฮตฯฯ„ฮตฯฮฟ Linear layer ฮผฮต ฯ„ฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮตฮฝฮตฯฮณฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ softmax

ฮ’ฮฎฮผฮฑ 3) ฮ•ฮบฯ€ฮฑฮนฮดฮตฯฯƒฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ

ฮ ฯฮนฮฝ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚, ฮฑฯ€ฮฑฮนฯ„ฮตฮฏฯ„ฮฑฮน ฮฝฮฑ ฯฯ…ฮธฮผฮฏฯƒฮตฯ„ฮต ฯ„ฮฟ ฮบฯฮนฯ„ฮฎฯฮนฮฟ ฮบฮฑฮน ฯ„ฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚.

ฮ“ฮนฮฑ ฯ„ฮฟ ฮบฯฮนฯ„ฮฎฯฮนฮฟ, ฮธฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟ CrossEntropyLoss. ฮ“ฮนฮฑ ฯ„ฮฟฮฝ Optimizer, ฮธฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟ SGD ฮผฮต ฯฯ…ฮธฮผฯŒ ฮตฮบฮผฮฌฮธฮทฯƒฮทฯ‚ 0.001 ฮบฮฑฮน ฮฟฯฮผฮฎ 0.9 ฯŒฯ€ฯ‰ฯ‚ ฯ†ฮฑฮฏฮฝฮตฯ„ฮฑฮน ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ Py.Torฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ch.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

ฮ— ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯŽฮธฮทฯƒฮทฯ‚ ฮธฮฑ ฯ€ฮฌฯฮตฮน ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฮตฮนฯƒฯŒฮดฮฟฯ… ฮบฮฑฮน ฮธฮฑ ฯ„ฮฟ ฯ€ฮตฯฮฌฯƒฮตฮน ฯƒฯ„ฮฟ ฯ€ฯฯŽฯ„ฮฟ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ conv2d. ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮฑฯ€ฯŒ ฮตฮบฮตฮฏ, ฮธฮฑ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮทฮธฮตฮฏ ฯƒฯ„ฮฟ maxpool2d ฮบฮฑฮน ฯ„ฮตฮปฮนฮบฮฌ ฮธฮฑ ฯ„ฮตฮธฮตฮฏ ฯƒฯ„ฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑ ฮตฮฝฮตฯฮณฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ ReLU. ฮ— ฮฏฮดฮนฮฑ ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮธฮฑ ฯƒฯ…ฮผฮฒฮตฮฏ ฯƒฯ„ฮฟ ฮดฮตฯฯ„ฮตฯฮฟ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ conv2d. ฮœฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ, ฮท ฮตฮฏฯƒฮฟฮดฮฟฯ‚ ฮธฮฑ ฮฑฮฝฮฑฮดฮนฮฑฮผฮฟฯฯ†ฯ‰ฮธฮตฮฏ ฯƒฮต (-1,320) ฮบฮฑฮน ฮธฮฑ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮทฮธฮตฮฏ ฯƒฯ„ฮฟ ฮตฯ€ฮฏฯ€ฮตฮดฮฟ fc ฮณฮนฮฑ ฮฝฮฑ ฯ€ฯฮฟฮฒฮปฮญฯˆฮตฮน ฯ„ฮทฮฝ ฮญฮพฮฟฮดฮฟ.

ฮคฯŽฯฮฑ, ฮธฮฑ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฯ„ฮต ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚. ฮ˜ฮฑ ฮตฯ€ฮฑฮฝฮฑฮปฮฌฮฒฮตฯ„ฮต ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ ฮผฮฑฯ‚ 2 ฯ†ฮฟฯฮญฯ‚ ฮฎ ฮผฮต ฮผฮนฮฑ ฮตฯ€ฮฟฯ‡ฮฎ 2 ฮบฮฑฮน ฮธฮฑ ฮตฮบฯ„ฯ…ฯ€ฯŽฯƒฮตฯ„ฮต ฯ„ฮทฮฝ ฯ„ฯฮญฯ‡ฮฟฯ…ฯƒฮฑ ฮฑฯ€ฯŽฮปฮตฮนฮฑ ฯƒฮต ฮบฮฌฮธฮต ฯ€ฮฑฯฯ„ฮฏฮดฮฑ 2000.

for epoch in range(2): 

#set the running loss at each epoch to zero
   running_loss = 0.0
# we will enumerate the train loader with starting index of 0
# for each iteration (i) and the data (tuple of input and labels)
   for i, data in enumerate(train_loader, 0):
       inputs, labels = data

# clear the gradient
       optimizer.zero_grad()

#feed the input and acquire the output from network
       outputs = net(inputs)

#calculating the predicted and the expected loss
       loss = criterion(outputs, labels)

#compute the gradient
       loss.backward()

#update the parameters
       optimizer.step()

       # print statistics
       running_loss += loss.item()
       if i % 1000 == 0:
           print('[%d, %5d] loss: %.3f' %
                 (epoch + 1, i + 1, running_loss / 1000))
           running_loss = 0.0

ฮฃฮต ฮบฮฌฮธฮต ฮตฯ€ฮฟฯ‡ฮฎ, ฮฟ ฮฑฯ€ฮฑฯฮนฮธฮผฮทฯ„ฮฎฯ‚ ฮธฮฑ ฮปฮฌฮฒฮตฮน ฯ„ฮทฮฝ ฮตฯ€ฯŒฮผฮตฮฝฮท ฯ€ฮปฮตฮนฮฌฮดฮฑ ฮตฮนฯƒฯŒฮดฮฟฯ… ฮบฮฑฮน ฯ„ฮนฯ‚ ฮฑฮฝฯ„ฮฏฯƒฯ„ฮฟฮนฯ‡ฮตฯ‚ ฮตฯ„ฮนฮบฮญฯ„ฮตฯ‚. ฮ ฯฮนฮฝ ฯ„ฯฮฟฯ†ฮฟฮดฮฟฯ„ฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฮตฮฏฯƒฮฟฮดฮฟ ฯƒฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮดฮนฮบฯ„ฯฮฟฯ… ฮผฮฑฯ‚, ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮบฮฑฮธฮฑฯฮฏฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฯ€ฯฮฟฮทฮณฮฟฯฮผฮตฮฝฮท ฮบฮปฮฏฯƒฮท. ฮ‘ฯ…ฯ„ฯŒ ฮฑฯ€ฮฑฮนฯ„ฮตฮฏฯ„ฮฑฮน ฮณฮนฮฑฯ„ฮฏ ฮผฮตฯ„ฮฌ ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฯ€ฯฮฟฯ‚ ฯ„ฮฑ ฯ€ฮฏฯƒฯ‰ (ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ backpropagation), ฮท ฮบฮปฮฏฯƒฮท ฮธฮฑ ฯƒฯ…ฯƒฯƒฯ‰ฯฮตฯ…ฯ„ฮตฮฏ ฮฑฮฝฯ„ฮฏ ฮฝฮฑ ฮฑฮฝฯ„ฮนฮบฮฑฯ„ฮฑฯƒฯ„ฮฑฮธฮตฮฏ. ฮฃฯ„ฮท ฯƒฯ…ฮฝฮญฯ‡ฮตฮนฮฑ, ฮธฮฑ ฯ…ฯ€ฮฟฮปฮฟฮณฮฏฯƒฮฟฯ…ฮผฮต ฯ„ฮนฯ‚ ฮฑฯ€ฯŽฮปฮตฮนฮตฯ‚ ฮฑฯ€ฯŒ ฯ„ฮทฮฝ ฯ€ฯฮฟฮฒฮปฮตฯ€ฯŒฮผฮตฮฝฮท ฯ€ฮฑฯฮฑฮณฯ‰ฮณฮฎ ฮฑฯ€ฯŒ ฯ„ฮทฮฝ ฮฑฮฝฮฑฮผฮตฮฝฯŒฮผฮตฮฝฮท ฯ€ฮฑฯฮฑฮณฯ‰ฮณฮฎ. ฮœฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ, ฮธฮฑ ฮบฮฌฮฝฮฟฯ…ฮผฮต backpropagation ฮณฮนฮฑ ฮฝฮฑ ฯ…ฯ€ฮฟฮปฮฟฮณฮฏฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฮบฮปฮฏฯƒฮท ฮบฮฑฮน, ฯ„ฮญฮปฮฟฯ‚, ฮธฮฑ ฮตฮฝฮทฮผฮตฯฯŽฯƒฮฟฯ…ฮผฮต ฯ„ฮนฯ‚ ฯ€ฮฑฯฮฑฮผฮญฯ„ฯฮฟฯ…ฯ‚.

ฮ•ฮดฯŽ ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ ฮฑฯ€ฮฟฯ„ฮญฮปฮตฯƒฮผฮฑ ฯ„ฮทฯ‚ ฮตฮบฯ€ฮฑฮนฮดฮตฯ…ฯ„ฮนฮบฮฎฯ‚ ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑฯ‚

[1, 	1] loss: 0.002
[1,  1001] loss: 2.302
[1,  2001] loss: 2.295
[1,  3001] loss: 2.204
[1,  4001] loss: 1.930
[1,  5001] loss: 1.791
[1,  6001] loss: 1.756
[1,  7001] loss: 1.744
[1,  8001] loss: 1.696
[1,  9001] loss: 1.650
[1, 10001] loss: 1.640
[1, 11001] loss: 1.631
[1, 12001] loss: 1.631
[1, 13001] loss: 1.624
[1, 14001] loss: 1.616
[2, 	1] loss: 0.001
[2,  1001] loss: 1.604
[2,  2001] loss: 1.607
[2,  3001] loss: 1.602
[2,  4001] loss: 1.596
[2,  5001] loss: 1.608
[2,  6001] loss: 1.589
[2,  7001] loss: 1.610
[2,  8001] loss: 1.596
[2,  9001] loss: 1.598
[2, 10001] loss: 1.603
[2, 11001] loss: 1.596
[2, 12001] loss: 1.587
[2, 13001] loss: 1.596
[2, 14001] loss: 1.603

ฮ’ฮฎฮผฮฑ 4) ฮ”ฮฟฮบฮนฮผฮฌฯƒฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ

ฮ‘ฯ†ฮฟฯ ฮตฮบฯ€ฮฑฮนฮดฮตฯฯƒฮตฯ„ฮต ฯ„ฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮผฮฑฯ‚, ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮดฮฟฮบฮนฮผฮฌฯƒฮตฯ„ฮต ฮฎ ฮฝฮฑ ฮฑฮพฮนฮฟฮปฮฟฮณฮฎฯƒฮตฯ„ฮต ฮผฮต ฮฌฮปฮปฮฑ ฯƒฯฮฝฮฟฮปฮฑ ฮตฮนฮบฯŒฮฝฯ‰ฮฝ.

ฮ˜ฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮฟฯ…ฮผฮต ฮญฮฝฮฑฮฝ ฮตฯ€ฮฑฮฝฮฑฮปฮฎฯ€ฯ„ฮท ฮณฮนฮฑ ฯ„ฮฟ test_loader ฮบฮฑฮน ฮธฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮตฮน ฮผฮนฮฑ ฯ€ฮฑฯฯ„ฮฏฮดฮฑ ฮตฮนฮบฯŒฮฝฯ‰ฮฝ ฮบฮฑฮน ฮตฯ„ฮนฮบฮตฯ„ฯŽฮฝ ฯ€ฮฟฯ… ฮธฮฑ ฯ€ฮตฯฮฌฯƒฮฟฯ…ฮฝ ฯƒฯ„ฮฟ ฮตฮบฯ€ฮฑฮนฮดฮตฯ…ฮผฮญฮฝฮฟ ฮผฮฟฮฝฯ„ฮญฮปฮฟ. ฮ— ฯ€ฯฮฟฮฒฮปฮตฯ€ฯŒฮผฮตฮฝฮท ฮญฮพฮฟฮดฮฟฯ‚ ฮธฮฑ ฮตฮผฯ†ฮฑฮฝฮนฯƒฯ„ฮตฮฏ ฮบฮฑฮน ฮธฮฑ ฯƒฯ…ฮณฮบฯฮนฮธฮตฮฏ ฮผฮต ฯ„ฮทฮฝ ฮฑฮฝฮฑฮผฮตฮฝฯŒฮผฮตฮฝฮท ฮญฮพฮฟฮดฮฟ.

#make an iterator from test_loader
#Get a batch of training images
test_iterator = iter(test_loader)
images, labels = test_iterator.next()

results = net(images)
_, predicted = torch.max(results, 1)

print('Predicted: ', ' '.join('%5s' % classes[predicted[j]] for j in range(4)))

fig2 = plt.figure()
for i in range(4):
   fig2.add_subplot(rows, columns, i+1)
   plt.title('truth ' + classes[labels[i]] + ': predict ' + classes[predicted[i]])
   img = images[i] / 2 + 0.5     # this is to unnormalize the image
   img = torchvision.transforms.ToPILImage()(img)
   plt.imshow(img)
plt.show()

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฮคฮฑฮพฮนฮฝฯŒฮผฮทฯƒฮทฯ‚ ฮ•ฮนฮบฯŒฮฝฯ‰ฮฝ ฮผฮต PyTorch

ฮฃฯ…ฯ‡ฮฝฮญฯ‚ ฮ•ฯฯ‰ฯ„ฮฎฯƒฮตฮนฯ‚

ฮฮฑฮน ฮณฮนฮฑ ฯ„ฮฟฯ…ฯ‚ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮฟฯ…ฯ‚ ฮผฮฑฮธฮทฯ„ฮญฯ‚. PyTorฮท ฯ€ฯฯŒฮธฯ…ฮผฮท ฮตฮบฯ„ฮญฮปฮตฯƒฮท ฯ„ฮฟฯ… ch, Pythonฮคฮฟ ic API ฮบฮฑฮน ฮท ฮตฯ…ฮธฯ…ฮณฯฮฌฮผฮผฮนฯƒฮท Hugging Face ฮดฮนฮตฯ…ฮบฮฟฮปฯฮฝฮฟฯ…ฮฝ ฯ„ฮทฮฝ ฮตฮบฮผฮฌฮธฮทฯƒฮท. ฮŸฮน ฮญฯฮตฯ…ฮฝฮตฯ‚ ฮดฮตฮฏฯ‡ฮฝฮฟฯ…ฮฝ ฯŒฯ„ฮน ฯ„ฮฟ 60% ฯ„ฯ‰ฮฝ ฮฑฯฯ‡ฮฑฯฮฏฯ‰ฮฝ ฮตฯ€ฮนฮปฮญฮณฮฟฯ…ฮฝ PyTorฮบฮตฯ†. ฯ€ฯฯŽฯ„ฮฑ.

ฮ’ฮฟฮทฮธฮฟฮฏ ฯ„ฮตฯ‡ฮฝฮทฯ„ฮฎฯ‚ ฮฝฮฟฮทฮผฮฟฯƒฯฮฝฮทฯ‚ ฯŒฯ€ฯ‰ฯ‚ Copilot, Cursor ฮบฮฑฮน JetBrains ฮ— ฯ„ฮตฯ‡ฮฝฮทฯ„ฮฎ ฮฝฮฟฮทฮผฮฟฯƒฯฮฝฮท ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏ PyTorฮฒฯฯŒฯ‡ฮฟฯ…ฯ‚ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚ ch, ฯ€ฯฮฟฯ„ฮตฮฏฮฝฮฟฯ…ฮฝ ฮฑฯฯ‡ฮนฯ„ฮตฮบฯ„ฮฟฮฝฮนฮบฮญฯ‚ ฯƒฯ„ฯฯŽฯƒฮตฯ‰ฮฝ ฮบฮฑฮน ฮตฮฝฯ„ฮฟฯ€ฮฏฮถฮฟฯ…ฮฝ ฯƒฯ†ฮฌฮปฮผฮฑฯ„ฮฑ ฯƒฮต ฯƒฯ‡ฮฎฮผฮฑ ฯ„ฮตฮฝฯƒฯŒฯฯ‰ฮฝ. ฮคฮฟ Hugging Face Transformers ฮดฮนฮฑฮธฮญฯ„ฮตฮน ฮตฯ€ฮฏฯƒฮทฯ‚ PyTorฮผฮฟฮฝฯ„ฮญฮปฮฑ ch-first.

ฮฮฑฮน. ฮคฮฑ ฮตฯฮณฮฑฮปฮตฮฏฮฑ ฯ„ฮตฯ‡ฮฝฮทฯ„ฮฎฯ‚ ฮฝฮฟฮทฮผฮฟฯƒฯฮฝฮทฯ‚ (AI) ฯ…ฯ€ฮฟฯƒฯ„ฮทฯฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮฑฯ€ฯŒ ฮบฮปฮฌฯƒฮตฮนฯ‚ ฮผฮฟฮฝฮฌฮดฯ‰ฮฝ, ฮตฯ€ฮนฮปฮฟฮณฮญฯ‚ ฮฒฮตฮปฯ„ฮนฯƒฯ„ฮฟฯ€ฮฟฮฏฮทฯƒฮทฯ‚ ฮบฮฑฮน ฮฒฯฯŒฯ‡ฮฟฯ…ฯ‚ ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮทฯ‚. ฮ•ฮพฮทฮณฮฟฯฮฝ ฮตฯ€ฮฏฯƒฮทฯ‚ ฯƒฯ†ฮฌฮปฮผฮฑฯ„ฮฑ CUDA, ฯ€ฯฮฟฯ„ฮตฮฏฮฝฮฟฯ…ฮฝ ฯƒฮทฮผฮฑฮฏฮตฯ‚ ฮผฮนฮบฯ„ฮฎฯ‚ ฮฑฮบฯฮฏฮฒฮตฮนฮฑฯ‚ ฮบฮฑฮน ฯ€ฯฮฟฯ„ฮตฮฏฮฝฮฟฯ…ฮฝ ฮผฮตฮณฮญฮธฮท ฯ€ฮฑฯฯ„ฮฏฮดฮฑฯ‚ ฮฑฯ€ฯŒ ฯ„ฮฟ ฯƒฯ‡ฮฎฮผฮฑ ฯ„ฮฟฯ… ฯƒฯ…ฮฝฯŒฮปฮฟฯ… ฮดฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ.

PyTorฮคฮฟ ch ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏ ฮดฯ…ฮฝฮฑฮผฮนฮบฮฌ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฑ ฮบฮฑฮน ฮบฯ…ฯฮนฮฑฯฯ‡ฮตฮฏ ฯƒฯ„ฮทฮฝ ฮญฯฮตฯ…ฮฝฮฑ. ฮคฮฟ TensorFlow ฮทฮณฮตฮฏฯ„ฮฑฮน ฯ„ฮทฯ‚ ฮฑฮฝฮฌฯ€ฯ„ฯ…ฮพฮทฯ‚ ฯ€ฮฑฯฮฑฮณฯ‰ฮณฮฎฯ‚ ฯƒฮต ฮบฮนฮฝฮทฯ„ฮฌ ฮบฮฑฮน edge ฮผฮญฯƒฯ‰ ฯ„ฮฟฯ… TensorFlow Lite. ฮคฮฟ ฯ‡ฮฌฯƒฮผฮฑ ฮฑฯ€ฯŒฮดฮฟฯƒฮทฯ‚ ฮญฯ‡ฮตฮน ฮณฮตฯ†ฯ…ฯฯ‰ฮธฮตฮฏ ฯ‡ฮฌฯฮท ฯƒฯ„ฮฟ torch.compile ฯƒฯ„ฮฟ Py.Torฮบฮตฯ† 2.

ฮ ฮตฯฮฏฯ€ฮฟฯ… ฯ„ฮฟ 85% ฯ„ฯ‰ฮฝ ฮตฯฮตฯ…ฮฝฮทฯ„ฮนฮบฯŽฮฝ ฮตฯฮณฮฑฯƒฮนฯŽฮฝ ฮฒฮฑฮธฮนฮฌฯ‚ ฮผฮฌฮธฮทฯƒฮทฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮฝ PyTorch ฯ„ฮฟ 2026. ฮคฮฟ ฮดฯ…ฮฝฮฑฮผฮนฮบฯŒ ฮผฮฟฮฝฯ„ฮญฮปฮฟ ฮณฯฮฑฯ†ฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ„ฮฑฮนฯฮนฮฌฮถฮตฮน ฯƒฯ„ฮฟฮฝ ฯ€ฮตฮนฯฮฑฮผฮฑฯ„ฮนฯƒฮผฯŒ ฮบฮฑฮน ฮฟฮปฯŒฮบฮปฮทฯฮฟ ฯ„ฮฟ ฮฟฮนฮบฮฟฯƒฯฯƒฯ„ฮทฮผฮฑ LLM ฮฑฯ€ฯŒ ฯ„ฮฟ Hugging Face ฮญฯ‰ฯ‚ ฯ„ฮฟ vLLM ฮตฮฏฮฝฮฑฮน ฯ‡ฯ„ฮนฯƒฮผฮญฮฝฮฟ ฮณฯฯฯ‰ ฮฑฯ€ฯŒ ฯ„ฮฟ PyTorch.

PyTorฮคฮฟ ch ฯ„ฯฮญฯ‡ฮตฮน ฮตฮณฮณฮตฮฝฯŽฯ‚ ฯƒฮต CPU ฮบฮฑฮน GPU CUDA, ฯ…ฯ€ฮฟฯƒฯ„ฮทฯฮฏฮถฮตฮน ROCm ฯƒฮต GPU AMD, MPS ฯƒฮต Apple Silicon ฮบฮฑฮน TPU ฮผฮญฯƒฯ‰ ฯ„ฮฟฯ… Py.Torฮˆฯฮณฮฟ XLA. ฮ•ฯ€ฮนฮปฮญฮพฯ„ฮต ฯ„ฮท ฯƒฯ‰ฯƒฯ„ฮฎ ฯƒฯ…ฯƒฮบฮตฯ…ฮฎ ฮผฮต ฮบฮปฮฎฯƒฮตฮนฯ‚ .to().

ฮฮฑฮน ฮผฮญฯƒฯ‰ TorchServe, ฮตฮพฮฑฮณฯ‰ฮณฮฎ ONNX ฮบฮฑฮน ฯ„ฮฟ ฮฝฮตฯŒฯ„ฮตฯฮฟ ExecuTorch runtime. ฮคฮฟ TensorFlow Lite ฯ€ฮฑฯฮฑฮผฮญฮฝฮตฮน ฯ€ฮนฮฟ ฯŽฯฮนฮผฮฟ ฮณฮนฮฑ ฮบฮนฮฝฮทฯ„ฮฌ, ฮฑฮปฮปฮฌ ฯ„ฮฟ PyTorฮคฮฟ ch ฮบฮปฮตฮฏฮฝฮตฮน ฮณฯฮฎฮณฮฟฯฮฑ ฯ„ฮฟ ฮบฮตฮฝฯŒ ฯƒฯ„ฮทฮฝ ฮตฮพฮฑฮณฯ‰ฮณฮฎ ฯƒฯ…ฮผฯ€ฮตฯฮฑฯƒฮผฮฌฯ„ฯ‰ฮฝ ฮฑฮบฮผฮฎฯ‚.

ฮŸฮน ฮฑฯฯ‡ฮฌฯฮนฮฟฮน ฯ‡ฯ„ฮฏฮถฮฟฯ…ฮฝ ฯ„ฮฟ ฯ€ฯฯŽฯ„ฮฟ ฯ„ฮฟฯ…ฯ‚ ฮดฮฏฮบฯ„ฯ…ฮฟ ฯƒฮต ฮผฮฏฮฑ ฮฎ ฮดฯฮฟ ฮทฮผฮญฯฮตฯ‚. ฮ— ฮตฮพฮตฮนฮดฮฏฮบฮตฯ…ฯƒฮท ฯƒฮต CNN, ฮผฮตฯ„ฮฑฯƒฯ‡ฮทฮผฮฑฯ„ฮนฯƒฯ„ฮญฯ‚, ฮบฮฑฯ„ฮฑฮฝฮตฮผฮทฮผฮญฮฝฮท ฮตฮบฯ€ฮฑฮฏฮดฮตฯ…ฯƒฮท ฮบฮฑฮน ฮฑฮฝฮฌฯ€ฯ„ฯ…ฮพฮท ฯ€ฮฑฯฮฑฮณฯ‰ฮณฮฎฯ‚ ฯƒฯ…ฮฝฮฎฮธฯ‰ฯ‚ ฮฑฯ€ฮฑฮนฯ„ฮตฮฏ ฯ„ฯฮตฮนฯ‚ ฮญฯ‰ฯ‚ ฮญฮพฮน ฮผฮฎฮฝฮตฯ‚ ฯƒฯ…ฮฝฮตฯ‡ฮฟฯฯ‚ ฮตฯฮณฮฑฯƒฮฏฮฑฯ‚ ฯƒฮต ฮญฯฮณฮฑ.

ฮฃฯ…ฮฝฮฟฯˆฮฏฯƒฯ„ฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฮฑฮฝฮฌฯฯ„ฮทฯƒฮท ฮผฮต: