Policy ağının mimarisi
Daha sonra policy gradient ajanını eğitmek için kullanabileceğin bir Policy Ağı mimarisi oluştur.
Policy ağı durumu girdi olarak alır ve eylem uzayında bir olasılık çıktılar. Lunar Lander ortamında dört ayrık eylemle çalışırsın; bu yüzden ağının bu eylemlerin her biri için birer olasılık üretmesini istersin.
Bu egzersiz
Python ile Deep Reinforcement Learning
kursunun bir parçasıdırEgzersiz talimatları
- Policy ağının çıktı katmanı için boyutu belirt; esneklik için gerçek sayı yerine değişken adını kullan.
- Son katmanın olasılık döndürdüğünden emin ol.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
class PolicyNetwork(nn.Module):
def __init__(self, state_size, action_size):
super(PolicyNetwork, self).__init__()
self.fc1 = nn.Linear(state_size, 64)
self.fc2 = nn.Linear(64, 64)
# Give the desired size for the output layer
self.fc3 = nn.Linear(64, ____)
def forward(self, state):
x = torch.relu(self.fc1(torch.tensor(state)))
x = torch.relu(self.fc2(x))
# Obtain the action probabilities
action_probs = ____(self.fc3(x), dim=-1)
return action_probs
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)