Začněte nyníZačněte zdarma

Práce s diskrétními rozděleními

Brzy budeš pracovat se stochastickými politikami – tedy politikami, které reprezentují chování agenta v daném stavu jako pravděpodobnostní rozdělení přes akce.

PyTorch umožňuje reprezentovat diskrétní rozdělení pomocí třídy torch.distributions.Categorical, se kterou si teď vyzkoušíš pracovat.

Uvidíš, že vstupní čísla nemusí nutně tvořit součet 1 jako klasické pravděpodobnosti – normalizace proběhne automaticky.

Toto cvičení je součástí kurzu

Deep Reinforcement Learning v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř instanci kategorického pravděpodobnostního rozdělení.
  • Vezmi jeden vzorek z tohoto rozdělení.
  • Zadej 3 kladná čísla se součtem 1, která budou sloužit jako pravděpodobnosti.
  • Zadej 5 kladných čísel; Categorical je automaticky normalizuje na pravděpodobnosti.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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, ____, ____, ____, ____])
Upravit a spustit kód