शुरू करेंमुफ़्त में शुरू करें

एक्सपीरियंस रिप्ले बफ़र

अब आप Experience Replay के लिए आवश्यक डेटा स्ट्रक्चर बनाएँगे, जिससे आपका एजेंट कहीं अधिक कुशलता से सीख सकेगा.

इस रिप्ले बफ़र को दो ऑपरेशन सपोर्ट करने चाहिए:

  • भविष्य में सैंपलिंग के लिए अपनी मेमोरी में एक्सपीरियंस स्टोर करना.
  • अपनी मेमोरी से बीते एक्सपीरियंस का रैंडम सैंपल लिया हुआ बैच "रीप्ले" करना.

क्योंकि रिप्ले बफ़र से निकला डेटा एक न्यूरल नेटवर्क में फीड किया जाएगा, सुविधा के लिए बफ़र को torch Tensors लौटाने चाहिए.

torch और random मॉड्यूल तथा deque क्लास आपके अभ्यास वातावरण में इम्पोर्ट किए जा चुके हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Deep Reinforcement Learning

पाठ्यक्रम देखें

अभ्यास निर्देश

  • ReplayBuffer के push() मेथड को पूरा करें, experience_tuple को बफ़र मेमोरी में append करके.
  • sample() मेथड में, self.memory से आकार batch_size का रैंडम सैंपल निकालें.
  • फिर sample() में, सैंपल शुरुआत में ट्यूपल्स की एक सूची के रूप में मिलता है; सुनिश्चित करें कि इसे सूचियों के एक ट्यूपल में बदला जाए.
  • actions_tensor को (batch_size) की बजाय (batch_size, 1) शेप में ट्रांसफॉर्म करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

class ReplayBuffer:
    def __init__(self, capacity):
        self.memory = deque([], maxlen=capacity)
    def push(self, state, action, reward, next_state, done):
        experience_tuple = (state, action, reward, next_state, done)
        # Append experience_tuple to the memory buffer
        self.memory.____    
    def __len__(self):
        return len(self.memory)
    def sample(self, batch_size):
        # Draw a random sample of size batch_size
        batch = ____(____, ____)
        # Transform batch into a tuple of lists
        states, actions, rewards, next_states, dones = ____
        states_tensor = torch.tensor(states, dtype=torch.float32)
        rewards_tensor = torch.tensor(rewards, dtype=torch.float32)
        next_states_tensor = torch.tensor(next_states, dtype=torch.float32)
        dones_tensor = torch.tensor(dones, dtype=torch.float32)
        # Ensure actions_tensor has shape (batch_size, 1)
        actions_tensor = torch.tensor(actions, dtype=torch.long).____
        return states_tensor, actions_tensor, rewards_tensor, next_states_tensor, dones_tensor
कोड संपादित करें और चलाएँ