BaşlayınÜcretsiz başlayın

Temel PyTorch ile karma hassasiyetli eğitim

Dil çeviri modelinin eğitimini hızlandırmak için düşük hassasiyetli kayan nokta veri tiplerini kullanacaksın. Örneğin, 16 bit kayan nokta veri tipi (float16), 32 bit karşılığının (float32) yalnızca yarısı boyutundadır. Bu da matris çarpımları ve evrişimlerin hesaplamalarını hızlandırır. Bunun, gradyanların ölçeklenmesini ve işlemlerin 16 bit kayan nokta tipine dökülmesini içerdiğini unutma.

Bazı nesneler önceden yüklendi: dataset, model, dataloader ve optimizer.

Bu egzersiz, kursun bir parçasıdır

PyTorch ile Verimli AI Model Eğitimi

Kursa Göz Atın

Egzersiz talimatları

  • Döngüden önce, torch.amp.GradScaler kullanarak gradyanlar için bir scaler tanımla.
  • Döngü içinde, torch.autocast’i bir bağlam yöneticisi olarak kullanarak işlemleri 16 bit kayan nokta veri tipine dök.
  • Döngü içinde, kaybı ölçekle ve ölçeklenmiş gradyanlar oluşturmak için .backward() çağır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Define a scaler for the gradients
scaler = torch.amp.____()
for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    # Casts operations to mixed precision
    with torch.____(device_type="cpu", dtype=torch.____):
        outputs = model(inputs, labels=targets)
        loss = outputs.loss
    # Compute scaled gradients
    scaler.____(loss).backward()
    scaler.step(optimizer)
    scaler.update()
    optimizer.zero_grad()
Kodu Düzenle ve Çalıştır