Skriver vår första träningsloop

Introduktion till djupinlärning med PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Träna ett neuralt nätverk

  1. Skapa en modell
  2. Välj en förlustfunktion
  3. Definiera en datamängd
  4. Ange en optimerare
  5. Kör en träningsloop:
    • Beräkna förlust (framåtpassning)
    • Beräkna gradienter (backpropagation)
    • Uppdatera modellparametrar
Introduktion till djupinlärning med PyTorch

Data Science Salary-datamängden

 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

$$

  • Särdrag: kategoriska, mål: lön (USD)
  • Slutligt utdatalager: linjärt lager
  • Förlust: regressionsspecifik
Introduktion till djupinlärning med PyTorch

Mean Squared Error-förlust

$$

  • MSE-förlust är medelvärdet av de kvadrerade skillnaderna mellan prediktioner och faktiska värden
def mean_squared_loss(prediction, target):
  return np.mean((prediction - target)**2)

$$

  • i PyTorch:
criterion = nn.MSELoss()
# Prediction and target are float tensors
loss = criterion(prediction, target)
Introduktion till djupinlärning med PyTorch

Innan träningsloopen

# 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)
Introduktion till djupinlärning med PyTorch

Träningsloopen

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()
Introduktion till djupinlärning med PyTorch

Nu kör vi en övning!

Introduktion till djupinlärning med PyTorch

Preparing Video For Download...