Esempio n. 1
0
    def add_to_queue(self, trainer: "pl.Trainer",
                     queue: torch.multiprocessing.SimpleQueue) -> None:
        """Appends the :attr:`trainer.callback_metrics` dictionary to the given queue. To avoid issues with memory
        sharing, we cast the data to numpy.

        Args:
            queue: the instance of the queue to append the data.
        """
        callback_metrics: dict = apply_to_collection(
            trainer.callback_metrics, torch.Tensor, lambda x: x.cpu().numpy(
            ))  # send as numpy to avoid issues with memory sharing
        queue.put(callback_metrics)
Esempio n. 2
0
    def get_from_queue(self, trainer: "pl.Trainer",
                       queue: torch.multiprocessing.SimpleQueue) -> None:
        """Retrieve the :attr:`trainer.callback_metrics` dictionary from the given queue. To preserve consistency,
        we cast back the data to ``torch.Tensor``.

        Args:
            queue: the instance of the queue from where to get the data.
        """
        # NOTE: `add_to_queue` needs to be called before
        callback_metrics: dict = queue.get()
        trainer.callback_metrics.update(
            apply_to_collection(callback_metrics, np.ndarray,
                                lambda x: torch.tensor(x)))
 def get_from_queue(self, trainer: Trainer,
                    queue: torch.multiprocessing.SimpleQueue) -> None:
     self.new_test_val = queue.get()
     return super().get_from_queue(trainer, queue)
 def add_to_queue(self, trainer: Trainer,
                  queue: torch.multiprocessing.SimpleQueue) -> None:
     queue.put("new_test_val")
     return super().add_to_queue(trainer, queue)
 def get_from_queue(self, queue: torch.multiprocessing.SimpleQueue) -> None:
     self.test_val = queue.get()
     return super().get_from_queue(queue)
 def add_to_queue(self, queue: torch.multiprocessing.SimpleQueue) -> None:
     queue.put("test_val")
     return super().add_to_queue(queue)