ПочатиПочніть безкоштовно

Робота з дискретними розподілами

Незабаром ви працюватимете зі стохастичними політиками: політиками, які описують поведінку агента в заданому стані як розподіл імовірностей над діями.

PyTorch може представляти дискретні розподіли за допомогою класу torch.distributions.Categorical, з яким ви зараз поекспериментуєте.

Ви побачите, що насправді числа, які подаються на вхід, не обов'язково мають сумуватися до 1, як імовірності; вони автоматично нормалізуються.

Ця вправа є частиною курсу

Глибоке навчання з підкріпленням у Python

Переглянути курс

Інструкції до вправи

  • Створіть категоріальний розподіл імовірностей.
  • Візьміть одну вибірку з цього розподілу.
  • Вкажіть 3 додатні числа, що сумуються до 1, щоб вони слугували імовірностями.
  • Вкажіть 5 додатних чисел; Categorical непомітно нормалізує їх, щоб отримати імовірності.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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, ____, ____, ____, ____])
Редагувати та запускати код