Exemplo n.º 1
0
    def save_checkpoint(self, data_container: DataContainer,
                        context: ExecutionContext) -> DataContainer:
        """
        Save data container data inputs with :py:attr:`~data_input_checkpointer`.
        Save data container expected outputs with :py:attr:`~expected_output_checkpointer`.

        :param data_container: data container to checkpoint
        :type data_container: neuraxle.data_container.DataContainer
        :param context: execution context to checkpoint from
        :type context: ExecutionContext
        :return:
        """
        if not self.is_for_execution_mode(context.get_execution_mode()):
            return data_container

        context.mkdir()

        self.summary_checkpointer.save_summary(
            checkpoint_path=context.get_path(), data_container=data_container)

        for current_id, data_input, expected_output in data_container:
            self.data_input_checkpointer.save_checkpoint(
                checkpoint_path=self._get_data_input_checkpoint_path(context),
                current_id=current_id,
                data=data_input)

            self.expected_output_checkpointer.save_checkpoint(
                checkpoint_path=self._get_expected_output_checkpoint_path(
                    context),
                current_id=current_id,
                data=expected_output)

        return data_container
Exemplo n.º 2
0
    def save_checkpoint(self, data_container: DataContainer,
                        context: ExecutionContext) -> DataContainer:
        if self.is_for_execution_mode(context.get_execution_mode()):
            # TODO: save the context by execution mode AND data container ids / summary
            context.copy().save()

        return data_container
Exemplo n.º 3
0
    def read_checkpoint(self, data_container: DataContainer, context: ExecutionContext) -> DataContainer:
        """
        Read data checkpoint for the current execution mode using self.data_checkpointers.

        :param data_container: data container to load checkpoint from
        :param context: execution mode to load checkpoint from
        :return: loaded data container checkpoint
        :rtype: neuraxle.data_container.DataContainer
        """
        for checkpointer in self.all_checkpointers:
            if checkpointer.is_for_execution_mode(context.get_execution_mode()):
                data_container = checkpointer.read_checkpoint(data_container, context)

        return data_container
Exemplo n.º 4
0
    def should_resume(self, data_container: DataContainer, context: ExecutionContext) -> bool:
        """
        Returns True if all of the execution mode data checkpointers can be resumed.

        :param context: execution context
        :param data_container: data to resume
        :return: if we can resume the checkpoint
        :rtype: bool
        """
        for checkpointer in self.all_checkpointers:
            if checkpointer.is_for_execution_mode(context.get_execution_mode()):
                if not checkpointer.should_resume(data_container, context):
                    return False

        return True