MulaiMulai sekarang secara gratis

Pemilihan aksi dalam REINFORCE

Tulis fungsi REINFORCE select_action, yang akan digunakan agen REINFORCE Anda untuk memilih aksi pada setiap langkah.

Dalam DQN, forward pass jaringan mengembalikan nilai Q; dalam REINFORCE, jaringan mengembalikan probabilitas aksi, dari mana aksi dapat diambil sampelnya secara langsung.

Sebuah policy network dan sebuah state telah dimuat di lingkungan Anda.

torch.distributions.Categorical telah diimpor sebagai Categorical.

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Petunjuk latihan

  • Peroleh probabilitas aksi sebagai tensor torch.
  • Peroleh objek torch Distribution yang sesuai dengan probabilitas aksi tersebut.
  • Ambil sampel sebuah aksi dari distribusi tersebut.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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}')
Edit dan Jalankan Kode