Náš první trénovací cyklus

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Trénování neuronové sítě

  1. Vytvoření modelu
  2. Výběr ztrátové funkce
  3. Definování datové sady
  4. Nastavení optimalizátoru
  5. Spuštění trénovacího cyklu:
    • Výpočet ztráty (dopředný průchod)
    • Výpočet gradientů (zpětné šíření)
    • Aktualizace parametrů modelu
Introduction to Deep Learning with PyTorch

Datová sada Data Science Salary

 experience_level  employment_type  remote_ratio  company_size  salary_in_usd  
        0                0               0.5             1            0.036 
        1                0               1.0             2            0.133     
        2                0               0.0             1            0.234  
        1                0               1.0             0            0.076  
        2                0               1.0             1            0.170

$$

  • Příznaky: kategorické, cíl: mzda (USD)
  • Výstupní vrstva: lineární
  • Ztráta: pro regresní úlohy
Introduction to Deep Learning with PyTorch

Střední kvadratická chyba (MSE)

$$

  • MSE ztráta je průměr čtverce rozdílu mezi predikcemi a skutečnými hodnotami
def mean_squared_loss(prediction, target):
  return np.mean((prediction - target)**2)

$$

  • v PyTorchi:
criterion = nn.MSELoss()
# Prediction and target are float tensors
loss = criterion(prediction, target)
Introduction to Deep Learning with PyTorch

Před trénovacím cyklem

# Create the dataset and the dataloader
dataset = TensorDataset(torch.tensor(features).float(),
                        torch.tensor(target).float())


dataloader = DataLoader(dataset, batch_size=4, shuffle=True)
# Create the model model = nn.Sequential(nn.Linear(4, 2), nn.Linear(2, 1))
# Create the loss and optimizer criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.001)
Introduction to Deep Learning with PyTorch

Trénovací cyklus

for epoch in range(num_epochs):

for data in dataloader:
# Set the gradients to zero optimizer.zero_grad()
# Get feature and target from the data loader feature, target = data
# Run a forward pass pred = model(feature) # Compute loss and gradients loss = criterion(pred, target) loss.backward()
# Update the parameters optimizer.step()
Introduction to Deep Learning with PyTorch

Pojďme si procvičit!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...