Selectarea acțiunilor în REINFORCE
Scrie funcția select_action pentru algoritmul REINFORCE, care va fi folosită de agentul tău pentru a selecta o acțiune la fiecare pas.
În DQN, pasul înainte al rețelei returna valori Q; în REINFORCE, returnează probabilitățile acțiunilor, din care o acțiune poate fi eșantionată direct.
O rețea de politici și o stare au fost încărcate în mediul tău.
torch.distributions.Categorical a fost importat ca Categorical.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Instrucțiuni pentru exercițiu
- Obține probabilitățile acțiunilor sub forma unui tensor torch.
- Obține distribuția torch corespunzătoare probabilităților acțiunilor.
- Eșantionează o acțiune din distribuție.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
def select_action(policy_network, state):
# Obtain the action probabilities
action_probs = ____
print('Action probabilities:', action_probs)
# Instantiate the action distribution
action_dist = Categorical(____)
# Sample an action from the distribution
action = ____
log_prob = action_dist.log_prob(action)
return action.item(), log_prob.reshape(1)
state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')