पॉलिसी नेटवर्क आर्किटेक्चर
एक Policy Network की आर्किटेक्चर तैयार करें जिसे आप आगे चलकर अपने policy gradient एजेंट को ट्रेन करने में उपयोग करेंगे.
पॉलिसी नेटवर्क इनपुट के रूप में state लेता है और action space में प्रायिकताएँ आउटपुट करता है। Lunar Lander environment के लिए, आप चार discrete actions के साथ काम करते हैं, इसलिए आप चाहेंगे कि आपका नेटवर्क उन प्रत्येक एक्शनों के लिए एक-एक प्रायिकता निकाले.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Deep Reinforcement Learning
अभ्यास निर्देश
- पॉलिसी नेटवर्क की आउटपुट लेयर का साइज़ बताइए; लचीलापन बनाए रखने के लिए वास्तविक संख्या के बजाय वैरिएबल नाम का उपयोग करें.
- सुनिश्चित करें कि अंतिम लेयर प्रायिकताएँ लौटाए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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)