Mulai sekarangMulai gratis

Hitung ukuran optimizer

Anda sedang mengeksplorasi berbagai optimizer untuk melatih sebuah model, dan Anda perlu mengukur penggunaan memori optimizer untuk perbandingan yang objektif. Sebagai uji coba, Anda telah memuat model DistilBERT dan optimizer AdamW sehingga Anda dapat mengukur penggunaan memori. Tulis fungsi compute_optimizer_size untuk menghitung ukuran sebuah optimizer.

optimizer AdamW telah didefinisikan secara langsung (tanpa Trainer), dan pelatihan telah selesai.

Latihan ini merupakan bagian dari kursus

Pelatihan Model AI Efisien dengan PyTorch

Lihat Kursus

Instruksi latihan

  • Hitung jumlah elemen dan ukuran setiap tensor dalam for loop.
  • Hitung total ukuran optimizer dalam megabyte.
  • Akses kamus status optimizer menggunakan metode yang sesuai pada optimizer.state.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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")
Edit dan Jalankan Kode