Introduction au Deep Learning avec PyTorch
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
La dérivée représente la pente de la courbe
$$
$$

Voici une fonction convexe

Voici une fonction non convexe

$$

$$

$$
Considérer un réseau de trois couches :

# Exécuter un passage avant model = nn.Sequential(nn.Linear(16, 8), nn.Linear(8, 4), nn.Linear(4, 2)) prediction = model(sample)# Calculer la perte et les gradients criterion = CrossEntropyLoss() loss = criterion(prediction, target) loss.backward()
# Accéder aux gradients de chaque couche
model[0].weight.grad
model[0].bias.grad
model[1].weight.grad
model[1].bias.grad
model[2].weight.grad
model[2].bias.grad
# Le taux d'apprentissage est généralement petit lr = 0.001 # Mettre à jour les poids weight = model[0].weight weight_grad = model[0].weight.gradweight = weight - lr * weight_grad# Mettre à jour les biais bias = model[0].bias bias_grad = model[0].bias.gradbias = bias - lr * bias_grad
$$
Pour les fonctions non convexes, nous utiliserons la descente de gradient
PyTorch simplifie cela avec des optimiseurs
import torch.optim as optim # Créer l'optimiseur optimizer = optim.SGD(model.parameters(), lr=0.001)# Effectuer la mise à jour des paramètres optimizer.step()
Introduction au Deep Learning avec PyTorch