Mulai sekarangMulai 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 merupakan bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Instruksi 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 langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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