def get_scene_states(self, xabs): """ functions get scene_states (scene memories) for each current pedestrian """ nonlinear_grid_h0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) nonlinear_grid_c0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) if (self.use_cuda): nonlinear_grid_h0, nonlinear_grid_c0 = nonlinear_grid_h0.cuda( ), nonlinear_grid_c0.cuda() for pid in range(self.batch_size): # For each ped in current frame gid = get_grid_cell_index(xabs[pid].cpu().detach().numpy(), self.num_grid_cells) # current grid-cell sid = get_sub_grid_cell_index( xabs[pid].cpu().detach().numpy(), self.num_grid_cells, self.num_sub_grids) # current grid-cell if (gid in self.scene_info["nonlinear_grid_list"][self.dataset_id] and sid in self.scene_info["nonlinear_subgrid_maps"][ self.dataset_id][gid]): # if current grid-cells is in nonlinear grid list then extract it to use nonlinear_grid_h0[:, pid, :] = self.scene_states[ "nonlinear_h0_list"][self.dataset_id][gid] nonlinear_grid_c0[:, pid, :] = self.scene_states[ "nonlinear_c0_list"][self.dataset_id][gid] self.scene_grid_h0 = nonlinear_grid_h0.view(-1, self.batch_size, self.rnn_size) self.scene_grid_c0 = nonlinear_grid_c0.view(-1, self.batch_size, self.rnn_size) if (self.use_cuda): self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda( ), self.scene_grid_c0.cuda()
def get_scene_states(self, xabs): """ functions get scene_states (scene memories) for each current pedestrian """ common_grid_h0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) common_grid_c0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) if (self.use_cuda): common_grid_h0, common_grid_c0 = common_grid_h0.cuda( ), common_grid_c0.cuda() for pid in range(self.batch_size): # For each ped in current frame gid = get_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells) # current grid-cell if (gid in self.scene_info["common_grid_list"][self.dataset_id]): # if current grid-cells is in common grid list then extract it to use common_grid_h0[:, pid, :] = self.scene_states["common_h0_list"][ self.dataset_id][gid] common_grid_c0[:, pid, :] = self.scene_states["common_c0_list"][ self.dataset_id][gid] self.scene_grid_h0 = common_grid_h0.view(-1, self.batch_size, self.rnn_size) self.scene_grid_c0 = common_grid_c0.view(-1, self.batch_size, self.rnn_size) if (self.use_cuda): self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda( ), self.scene_grid_c0.cuda()
def get_scene_states(self, xabs): """ functions get scene_states (scene memories) for each current pedestrian """ scene_grid_h0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) scene_grid_c0 = torch.zeros( (self.num_layers, self.batch_size, self.rnn_size)) if (self.use_cuda): scene_grid_h0, scene_grid_c0 = scene_grid_h0.cuda( ), scene_grid_c0.cuda() for pid in range(self.batch_size): # For each ped in current frame gid = get_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells) # current grid-cell scene_grid_h0[:, pid, :] = self.scene_states["scene_h0_list"][ self.dataset_id][gid] scene_grid_c0[:, pid, :] = self.scene_states["scene_c0_list"][ self.dataset_id][gid] self.scene_grid_h0 = scene_grid_h0.view(-1, self.batch_size, self.rnn_size) self.scene_grid_c0 = scene_grid_c0.view(-1, self.batch_size, self.rnn_size) if (self.use_cuda): self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda( ), self.scene_grid_c0.cuda()
def update_scene_states(self, xabs): """ functions update scene_states (scene memories) """ for pid in range(self.batch_size): # For each ped in current frame gid = get_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells) # current grid-cell self.scene_states["scene_h0_list"][self.dataset_id][ gid] = self.scene_grid_h0[:, pid, :].data.clone() self.scene_states["scene_c0_list"][self.dataset_id][ gid] = self.scene_grid_c0[:, pid, :].data.clone()
def update_scene_states(self, xabs): """ functions update scene_states (scene memories) """ for pid in range(self.batch_size): # For each ped in current frame gid = get_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells) # current grid-cell sid = get_sub_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells, self.num_sub_grids) if(gid in self.scene_info["common_grid_list"][self.dataset_id] \ and sid in self.scene_info["common_sub_grids_maps"][self.dataset_id][gid]): # if grid-cell is in common_grid_list then update self.scene_states["common_h0_list"][self.dataset_id][gid] = self.scene_grid_h0[:,pid,:].data.clone() self.scene_states["common_c0_list"][self.dataset_id][gid] = self.scene_grid_c0[:,pid,:].data.clone()