<aside> 💡 Feito por: Vítor Caruso

</aside>

Muito do destaque do PyTorch na área de Machine Learning advém da sua praticidade, já que ele segue um esqueleto de implementação padrão para os modelo.

É possível dividir esse esqueleto em quatro partes:

  1. Importação de módulos
  2. Design do modelo
  3. Escolha da loss, otimizador e hiperparâmetros relacionados ao treino
  4. Construção do loop de treino

Importar módulos

O torch é o pacote básico que contêm todos os outros módulos do PyTorch, além de conter tensores e operações com essas estruturas, assim, ele é sempre importado.

Os seguintes módulos dele sempre são utilizados:

import torch
import torch.nn as nn
import torch.optim as optim

Além deles, as classes Dataset e Dataloader do módulo torch.utils.data também são comumente usados. Elas serão abordadas no módulo de Redes Neurais.

Esses são os imports essenciais, fica a cargo do programador se ele deseja importar outros módulos ou acessar diretamente pelo torch.

Design do modelo

class LinearRegression(nn.Module):
    def __init__(self, input_size, output_size):
        super().__init__()
        self.linear = nn.Linear(input_size, output_size)

    def forward(self, x):
        return self.linear(x)

Todos os modelos construídos no PyTorch são classes.

Para construir um modelo, é necessário implementar as seguintes pré-definições requeridas pelo PyTorch na classe do modelo: