Python torch.utils.data.sampler.BatchSampler() Examples
The following are 30
code examples of torch.utils.data.sampler.BatchSampler().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.utils.data.sampler
, or try the search function
.
Example #1
Source File: rollout.py From midlevel-reps with MIT License | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( f"PPO requires the number processes ({num_processes}) " f"* number of steps ({num_steps}) = {num_processes * num_steps} " f"to be greater than or equal to the number of PPO mini batches ({num_mini_batch}).") mini_batch_size = batch_size // num_mini_batch observations_batch = {} sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: for k, sensor_ob in self.observations.items(): observations_batch[k] = sensor_ob[:-1].view(-1, *sensor_ob.size()[2:])[indices] states_batch = self.states[:-1].view(-1, self.states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield observations_batch, states_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #2
Source File: rollout_storage.py From pytorch-pommerman-rl with MIT License | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( "PPO requires the number of processes ({}) " "* number of steps ({}) = {} " "to be greater than or equal to the number of PPO mini batches ({})." "".format(num_processes, num_steps, num_processes * num_steps, num_mini_batch)) mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: obs_batch = self.obs[:-1].view(-1, *self.obs.size()[2:])[indices] recurrent_hidden_states_batch = self.recurrent_hidden_states[:-1].view(-1, self.recurrent_hidden_states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield obs_batch, recurrent_hidden_states_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #3
Source File: storage.py From Actor-Critic-Based-Resource-Allocation-for-Multimodal-Optical-Networks with GNU General Public License v3.0 | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: indices = torch.LongTensor(indices) if advantages.is_cuda: indices = indices.cuda() observations_batch = self.observations[:-1].view(-1, *self.observations.size()[2:])[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield observations_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #4
Source File: finetuning.py From neural_chat with MIT License | 6 votes |
def get_data_loader(X_in, y_in, batch_size, extended_batch_sampler=True, epoch_size=25000, upsample=False, seed=42): """ Returns a dataloader that enables larger epochs on small datasets and has upsampling functionality. # Arguments: X_in: Inputs of the given dataset. y_in: Outputs of the given dataset. batch_size: Batch size. epoch_size: Number of samples in an epoch. upsample: Whether upsampling should be done. This flag should only be set on binary class problems. # Returns: DataLoader. """ dataset = DeepMojiDataset(X_in, y_in) if extended_batch_sampler: batch_sampler = DeepMojiBatchSampler(y_in, batch_size, epoch_size=epoch_size, upsample=upsample, seed=seed) else: batch_sampler = BatchSampler(SequentialSampler(y_in), batch_size, drop_last=False) return DataLoader(dataset, batch_sampler=batch_sampler, num_workers=0)
Example #5
Source File: test_data_samplers.py From sampling-free with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #6
Source File: test_data_samplers.py From HRNet-MaskRCNN-Benchmark with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #7
Source File: test_data_samplers.py From maskrcnn-benchmark with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #8
Source File: test_data_samplers.py From EmbedMask with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #9
Source File: test_data_samplers.py From FreeAnchor with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #10
Source File: test_data_samplers.py From retinamask with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #11
Source File: test_data_samplers.py From R2CNN.pytorch with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #12
Source File: rollout.py From midlevel-reps with MIT License | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( f"PPO requires the number processes ({num_processes}) " f"* number of steps ({num_steps}) = {num_processes * num_steps} " f"to be greater than or equal to the number of PPO mini batches ({num_mini_batch}).") mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: observations_batch = self.observations[:-1].view(-1, *self.observations.size()[2:])[indices] states_batch = self.states[:-1].view(-1, self.states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield observations_batch, states_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #13
Source File: storage.py From marl_transfer with MIT License | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch, sampler=None): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( "PPO requires the number of processes ({}) " "* number of steps ({}) = {} " "to be greater than or equal to the number of PPO mini batches ({})." "".format(num_processes, num_steps, num_processes * num_steps, num_mini_batch)) mini_batch_size = batch_size // num_mini_batch if sampler is None: sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: obs_batch = self.obs[:-1].view(-1, *self.obs.size()[2:])[indices] recurrent_hidden_states_batch = self.recurrent_hidden_states[:-1].view(-1, self.recurrent_hidden_states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] value_preds_batch = self.value_preds[:-1].view(-1, 1)[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield obs_batch, recurrent_hidden_states_batch, actions_batch, value_preds_batch, return_batch, \ masks_batch, old_action_log_probs_batch, adv_targ
Example #14
Source File: ppo.py From marl_transfer with MIT License | 6 votes |
def magent_feed_forward_generator(rollouts_list, advantages_list, num_mini_batch): num_steps, num_processes = rollouts_list[0].rewards.size()[0:2] batch_size = num_processes * num_steps mini_batch_size = int((batch_size/num_mini_batch)) # size of minibatch for each agent sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: obs_batch=torch.cat([rollout.obs[:-1].view(-1,*rollout.obs.size()[2:])[indices] for rollout in rollouts_list],0) recurrent_hidden_states_batch = torch.cat([rollout.recurrent_hidden_states[:-1].view(-1, rollout.recurrent_hidden_states.size(-1))[indices] for rollout in rollouts_list],0) actions_batch = torch.cat([rollout.actions.view(-1, rollout.actions.size(-1))[indices] for rollout in rollouts_list],0) value_preds_batch=torch.cat([rollout.value_preds[:-1].view(-1, 1)[indices] for rollout in rollouts_list],0) return_batch = torch.cat([rollout.returns[:-1].view(-1, 1)[indices] for rollout in rollouts_list],0) masks_batch = torch.cat([rollout.masks[:-1].view(-1, 1)[indices] for rollout in rollouts_list],0) old_action_log_probs_batch=torch.cat([rollout.action_log_probs.view(-1,1)[indices] for rollout in rollouts_list],0) adv_targ = torch.cat([advantages.view(-1, 1)[indices] for advantages in advantages_list],0) yield obs_batch, recurrent_hidden_states_batch, actions_batch, value_preds_batch, return_batch,\ masks_batch, old_action_log_probs_batch, adv_targ
Example #15
Source File: test_data_samplers.py From training with Apache License 2.0 | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #16
Source File: test_data_samplers.py From NAS-FCOS with BSD 2-Clause "Simplified" License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #17
Source File: deterministic.py From ignite with BSD 3-Clause "New" or "Revised" License | 6 votes |
def update_dataloader(dataloader: DataLoader, new_batch_sampler: BatchSampler) -> DataLoader: """Helper function to replace current batch sampler of the dataloader by a new batch sampler. Function returns new dataloader with new batch sampler. Args: dataloader (torch.utils.data.DataLoader): input dataloader new_batch_sampler (torch.utils.data.sampler.BatchSampler): new batch sampler to use Returns: DataLoader """ params_keys = [k for k in dataloader.__dict__.keys() if not k.startswith("_")] for k in ["batch_size", "sampler", "drop_last", "batch_sampler", "dataset_kind"]: if k in params_keys: params_keys.remove(k) params = {k: getattr(dataloader, k) for k in params_keys} params["batch_sampler"] = new_batch_sampler return type(dataloader)(**params)
Example #18
Source File: test_data_samplers.py From RRPN_pytorch with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #19
Source File: test_data_samplers.py From DF-Traffic-Sign-Identification with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #20
Source File: test_data_samplers.py From maskscoring_rcnn with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #21
Source File: storage.py From dal with MIT License | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( "PPO requires the number of processes ({}) " "* number of steps ({}) = {} " "to be greater than or equal to the number of PPO mini batches ({})." "".format(num_processes, num_steps, num_processes * num_steps, num_mini_batch)) mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: obs_batch = self.obs[:-1].view(-1, *self.obs.size()[2:])[indices] recurrent_hidden_states_batch = self.recurrent_hidden_states[:-1].view(-1, self.recurrent_hidden_states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] value_preds_batch = self.value_preds[:-1].view(-1, 1)[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield obs_batch, recurrent_hidden_states_batch, actions_batch, \ value_preds_batch, return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #22
Source File: storage.py From gym-miniworld with Apache License 2.0 | 6 votes |
def feed_forward_generator(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps assert batch_size >= num_mini_batch, ( "PPO requires the number of processes ({}) " "* number of steps ({}) = {} " "to be greater than or equal to the number of PPO mini batches ({})." "".format(num_processes, num_steps, num_processes * num_steps, num_mini_batch)) mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: obs_batch = self.obs[:-1].view(-1, *self.obs.size()[2:])[indices] recurrent_hidden_states_batch = self.recurrent_hidden_states[:-1].view(-1, self.recurrent_hidden_states.size(-1))[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv_targ = advantages.view(-1, 1)[indices] yield obs_batch, recurrent_hidden_states_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv_targ
Example #23
Source File: test_data_samplers.py From Res2Net-maskrcnn with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #24
Source File: test_data_samplers.py From remote_sensing_object_detection_2019 with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #25
Source File: DQN_CartPole-v0.py From Deep-reinforcement-learning-with-pytorch with MIT License | 6 votes |
def update(self): if self.memory_count >= self.capacity: state = torch.tensor([t.state for t in self.memory]).float() action = torch.LongTensor([t.action for t in self.memory]).view(-1,1).long() reward = torch.tensor([t.reward for t in self.memory]).float() next_state = torch.tensor([t.next_state for t in self.memory]).float() reward = (reward - reward.mean()) / (reward.std() + 1e-7) with torch.no_grad(): target_v = reward + self.gamma * self.target_net(next_state).max(1)[0] #Update... for index in BatchSampler(SubsetRandomSampler(range(len(self.memory))), batch_size=self.batch_size, drop_last=False): v = (self.act_net(state).gather(1, action))[index] loss = self.loss_func(target_v[index].unsqueeze(1), (self.act_net(state).gather(1, action))[index]) self.optimizer.zero_grad() loss.backward() self.optimizer.step() self.writer.add_scalar('loss/value_loss', loss, self.update_count) self.update_count +=1 if self.update_count % 100 ==0: self.target_net.load_state_dict(self.act_net.state_dict()) else: print("Memory Buff is too less")
Example #26
Source File: DQN_MountainCar-v0.py From Deep-reinforcement-learning-with-pytorch with MIT License | 6 votes |
def update(self): if self.memory_count >= self.capacity: state = torch.tensor([t.state for t in self.memory]).float() action = torch.LongTensor([t.action for t in self.memory]).view(-1,1).long() reward = torch.tensor([t.reward for t in self.memory]).float() next_state = torch.tensor([t.next_state for t in self.memory]).float() reward = (reward - reward.mean()) / (reward.std() + 1e-7) with torch.no_grad(): target_v = reward + self.gamma * self.target_net(next_state).max(1)[0] #Update... for index in BatchSampler(SubsetRandomSampler(range(len(self.memory))), batch_size=self.batch_size, drop_last=False): v = (self.act_net(state).gather(1, action))[index] loss = self.loss_func(target_v[index].unsqueeze(1), (self.act_net(state).gather(1, action))[index]) self.optimizer.zero_grad() loss.backward() self.optimizer.step() self.writer.add_scalar('loss/value_loss', loss, self.update_count) self.update_count +=1 if self.update_count % 100 ==0: self.target_net.load_state_dict(self.act_net.state_dict()) else: print("Memory Buff is too less")
Example #27
Source File: test_distributed_batch_sampler.py From PyTorch-NLP with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_distributed_batch_sampler(): sampler = SequentialSampler(list(range(15))) batch_sampler = BatchSampler(sampler, 10, False) distributed_sampler = DistributedBatchSampler(batch_sampler, num_replicas=4, rank=0) assert list(distributed_sampler) == [[0, 4, 8], [10, 14]] assert len(distributed_sampler) == 2 distributed_sampler = DistributedBatchSampler(batch_sampler, num_replicas=4, rank=1) assert list(distributed_sampler) == [[1, 5, 9], [11]] assert len(distributed_sampler) == 2 distributed_sampler = DistributedBatchSampler(batch_sampler, num_replicas=4, rank=2) assert list(distributed_sampler) == [[2, 6], [12]] assert len(distributed_sampler) == 2 distributed_sampler = DistributedBatchSampler(batch_sampler, num_replicas=4, rank=3) assert list(distributed_sampler) == [[3, 7], [13]] assert len(distributed_sampler) == 2
Example #28
Source File: test_data_samplers.py From DetNAS with MIT License | 6 votes |
def test_number_of_iters_and_elements(self): for batch_size in [2, 3, 4]: for num_iterations in [4, 10, 20]: for drop_last in [False, True]: dataset = [i for i in range(10)] sampler = SequentialSampler(dataset) batch_sampler = BatchSampler( sampler, batch_size, drop_last=drop_last ) iter_sampler = IterationBasedBatchSampler( batch_sampler, num_iterations ) assert len(iter_sampler) == num_iterations for i, batch in enumerate(iter_sampler): start = (i % len(batch_sampler)) * batch_size end = min(start + batch_size, len(dataset)) expected = [x for x in range(start, end)] self.assertEqual(batch, expected)
Example #29
Source File: memory.py From ppo-pytorch with MIT License | 6 votes |
def sample(self, advantages, num_mini_batch): num_steps, num_processes = self.rewards.size()[0:2] batch_size = num_processes * num_steps # Make sure we have at least enough for a bunch of batches of size 1. assert batch_size >= num_mini_batch mini_batch_size = batch_size // num_mini_batch sampler = BatchSampler(SubsetRandomSampler(range(batch_size)), mini_batch_size, drop_last=False) for indices in sampler: observations_batch = self.observations[:-1].view(-1, *self.observations.size()[2:])[indices] actions_batch = self.actions.view(-1, self.actions.size(-1))[indices] return_batch = self.returns[:-1].view(-1, 1)[indices] masks_batch = self.masks[:-1].view(-1, 1)[indices] old_action_log_probs_batch = self.action_log_probs.view(-1, 1)[indices] adv = advantages.view(-1, 1)[indices] yield observations_batch, actions_batch, \ return_batch, masks_batch, old_action_log_probs_batch, adv
Example #30
Source File: main.py From Tricks-of-Semi-supervisedDeepLeanring-Pytorch with MIT License | 5 votes |
def create_loaders_v2(trainset, evalset, label_idxs, unlab_idxs, num_classes, config): if config.data_twice: trainset.transform = twice(trainset.transform) if config.data_idxs: trainset = DataSetWarpper(trainset, num_classes) ## supervised batch loader label_sampler = SubsetRandomSampler(label_idxs) label_batch_sampler = BatchSampler(label_sampler, config.sup_batch_size, drop_last=True) label_loader = torch.utils.data.DataLoader(trainset, batch_sampler=label_batch_sampler, num_workers=config.workers, pin_memory=True) ## unsupervised batch loader if not config.label_exclude: unlab_idxs += label_idxs unlab_sampler = SubsetRandomSampler(unlab_idxs) unlab_batch_sampler = BatchSampler(unlab_sampler, config.usp_batch_size, drop_last=True) unlab_loader = torch.utils.data.DataLoader(trainset, batch_sampler=unlab_batch_sampler, num_workers=config.workers, pin_memory=True) ## test batch loader eval_loader = torch.utils.data.DataLoader(evalset, batch_size=config.sup_batch_size, shuffle=False, num_workers=2*config.workers, pin_memory=True, drop_last=False) return label_loader, unlab_loader, eval_loader