MulaiMulai sekarang secara gratis

Bekerja dengan distribusi diskret

Anda akan segera bekerja dengan kebijakan stokastik: kebijakan yang merepresentasikan perilaku agen pada suatu keadaan sebagai distribusi probabilitas atas aksi.

PyTorch dapat merepresentasikan distribusi diskret menggunakan kelas torch.distributions.Categorical, yang akan Anda coba sekarang.

Anda akan melihat bahwa sebenarnya tidak perlu angka-angka yang digunakan sebagai masukan berjumlah 1 seperti probabilitas; angka-angka tersebut akan dinormalisasi secara otomatis.

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Petunjuk latihan

  • Instansiasikan distribusi probabilitas kategorikal.
  • Ambil satu sampel dari distribusi tersebut.
  • Tentukan 3 angka positif yang berjumlah 1, untuk bertindak sebagai probabilitas.
  • Tentukan 5 angka positif; Categorical akan menormalkannya secara diam-diam untuk memperoleh probabilitas.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

from torch.distributions import Categorical

def sample_from_distribution(probs):
    print(f"\nInput: {probs}")
    probs = torch.tensor(probs, dtype=torch.float32)
    # Instantiate the categorical distribution
    dist = ____(probs)
    # Take one sample from the distribution
    sampled_index = ____
    print(f"Taking one sample: index {sampled_index}, with associated probability {dist.probs[sampled_index]:.2f}")

# Specify 3 positive numbers summing to 1
sample_from_distribution([.3, ____, ____])
# Specify 5 positive numbers that do not sum to 1
sample_from_distribution([2, ____, ____, ____, ____])
Edit dan Jalankan Kode