Exemple #1
0
 def save_image(self, log, step):
     for i in range(self.env_batch):
         if self.env.imgid[i] <= 10:
             canvas = cv2.cvtColor(
                 (to_numpy(self.env.canvas[i].permute(1, 2, 0))),
                 cv2.COLOR_BGR2RGB)
             self.writer.add_image(
                 "{}/canvas_{}.png".format(str(self.env.imgid[i]),
                                           str(step)),
                 canvas,
                 log,
             )
     if step == self.max_episode_length:
         for i in range(self.env_batch):
             if self.env.imgid[i] < 50:
                 gt = cv2.cvtColor(
                     (to_numpy(self.env.gt[i].permute(1, 2, 0))),
                     cv2.COLOR_BGR2RGB)
                 canvas = cv2.cvtColor(
                     (to_numpy(self.env.canvas[i].permute(1, 2, 0))),
                     cv2.COLOR_BGR2RGB,
                 )
                 self.writer.add_image(
                     str(self.env.imgid[i]) + "/_target.png", gt, log)
                 self.writer.add_image(
                     str(self.env.imgid[i]) + "/_canvas.png", canvas, log)
Exemple #2
0
 def save_image_with_gen(self, log, step):
     for i in range(1):
         canvas = to_numpy(self.env.canvas[i].permute(1, 2, 0))
         self.writer.add_image(
             "images/%d-%d-%d_canvas.png" % (log, i, step), canvas, log)
     gt = to_numpy(self.env.gt[i].permute(1, 2, 0))
     self.writer.add_image("images/%d-%d_target.png" % (log, i), gt, log)
Exemple #3
0
 def select_action(self, state, return_fix=False, noise_factor=0):
     self.eval()
     with torch.no_grad():
         action = self.play(state)
         action = to_numpy(action)
     if noise_factor > 0:
         action = self.noise_action(noise_factor, state, action)
     self.train()
     self.action = action
     if return_fix:
         return action
     return self.action
Exemple #4
0
 def cal_reward(self):
     dis = self.cal_dis()
     reward = (self.lastdis - dis) / (self.ini_dis + 1e-8)
     self.lastdis = dis
     return to_numpy(reward)
Exemple #5
0
 def get_dist(self):
     return to_numpy((((self.env.gt.float() - self.env.canvas.float()) /
                       255)**2).mean(1).mean(1).mean(1))
Exemple #6
0
 def get_grads(self):
     """
     Returns the current gradient
     """
     return deepcopy(
         np.hstack([to_numpy(v.grad).flatten() for v in self.parameters()]))
Exemple #7
0
 def get_params(self):
     """
     Returns parameters of the actor
     """
     return deepcopy(
         np.hstack([to_numpy(v).flatten() for v in self.parameters()]))