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

Deep Reinforcement Learning dengan Python

Lihat Kursus

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

Cobalah latihan ini dengan melengkapi kode contoh ini.

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