ncalab.training.kfold ===================== .. py:module:: ncalab.training.kfold Classes ------- .. autoapisummary:: ncalab.training.kfold.TrainValRecord ncalab.training.kfold.SplitDefinition ncalab.training.kfold.KFoldCrossValidationTrainer Module Contents --------------- .. py:class:: TrainValRecord(train: List[str], val: List[str]) Helper class, storing a training / validation data split to generate respective DataLoader objects. :param train: List of training image file paths :type train: List[str] :param val: List of validation image file paths :type val: List[str] .. py:attribute:: train .. py:attribute:: val .. py:method:: dataloaders(DatasetType: Type, path: pathlib.Path | pathlib.PosixPath, transform=None, batch_sizes=None) Generate a pair of training and validation DataLoader objects, based on a given DataSet subtype. .. py:class:: SplitDefinition Stores a k-fold cross-validation split. .. py:attribute:: folds :value: [] .. py:attribute:: dataloader_test :value: None .. py:method:: read(path: pathlib.PosixPath) -> SplitDefinition :staticmethod: Reads json files with split definitions, similar to those created by nnUNet. Format is like .. highlight:: python .. code-block:: python [ { "train": [ "filename0", "filename1",... ] "val": [ "filename2", "filename3",... ] }, { ... } ] :param path: Path to JSON file containing split definition. :returns: SplitDefinition object :rtype: SplitDefinition .. py:method:: __len__() -> int .. py:method:: __getitem__(idx) -> TrainValRecord .. py:class:: KFoldCrossValidationTrainer(trainer: ncalab.training.trainer.BasicNCATrainer, split: SplitDefinition) :param trainer [BasicNCATrainer]: BasicNCATrainer, to train each individual fold. :param split [SplitDefinition]: Definition of the split used for k-fold cross-training. .. py:attribute:: trainer .. py:attribute:: model_prototype .. py:attribute:: model_name .. py:attribute:: split .. py:method:: train(DatasetType: Type, datapath: pathlib.Path | pathlib.PosixPath, transform, batch_sizes: None | Dict = None, save_every: int | None = None) -> List[ncalab.training.traininghistory.TrainingHistory] Run training loop with a single function call. :param DatasetType [Type]: Type of dataset class to use. :param datapath [Path]: _description_ :param transform: Data transform, e.g. initialized via Albumentations. :param batch_sizes: Dict of batch sizes per set, e.g. {"train": 8, "val": 16}. Defaults to None. :param save_every [int]: _description_. Defaults to None. :param plot_function: Plot function override. If None, use model's default. Defaults to None. :returns [List[TrainingHistory]]: List of TrainingHistory objects, one per fold.