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

Optimize edici boyutunu hesapla

Bir modeli eğitmek için farklı optimize edicileri inceliyorsun ve nesnel bir karşılaştırma için bir optimize edicinin bellek kullanımını nicelleştirmen gerekiyor. Test olarak, bellek kullanımını ölçebilmek için bir DistilBERT modeli ve AdamW optimize edicisi yükledin. Bir optimize edicinin boyutunu hesaplamak için compute_optimizer_size fonksiyonunu yaz.

AdamW optimizer doğrudan ( Trainer olmadan) tanımlandı ve eğitim tamamlandı.

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

PyTorch ile Verimli AI Model Eğitimi

Kursa Göz Atın

Egzersiz talimatları

  • for döngüsünde her tensor için eleman sayısını ve her birinin boyutunu hesapla.
  • optimizerın toplam boyutunu megabayt cinsinden hesapla.
  • Optimize edici durum sözlüğüne, optimizer.state üzerinde uygun yöntemi kullanarak eriş.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

def compute_optimizer_size(optimizer_state):
    total_size_megabytes, total_num_elements = 0, 0
    for params in optimizer_state:
        for name, tensor in params.items():
            tensor = torch.tensor(tensor)
            # Compute number of elements and size of each tensor
            num_elements, element_size = tensor.____(), tensor.____()
            total_num_elements += num_elements
            # Compute the total size in megabytes
            total_size_megabytes += ____ * ____ / (1024 ** 2)
    return total_size_megabytes, total_num_elements

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")
Kodu Düzenle ve Çalıştır