builder
data.dataloader.builder
Full2PatchDataLoader
Full2PatchDataLoader(dataset: Dataset, collate_fn: Optional[Callable[[List[dict]], dict]] = None, batch_sampler: Optional[Iterable[int]] = None, batch_size: int = 1, shuffle: bool = False, drop_last: bool = True, **cfg_dataloader: dict)
DataLoader class for Segmentation and SceneTextRecognition tasks.
Whole image is divided into multiple image patches, based on polygon labels.
Full2PatchDataLoader has dataloader as class attribute, which returns croppped image patches.
Image patches are stocked in buffer attribute, then passed to deep network in batch_size.
Attributes:
-
dataset(Dataset) –base dataset
-
batch_size(int) –batch size
-
drop_last(bool) –whether drop remaining data items less than batch_size at last iter.
-
buffer_multiple(int) –maximum size of buffer is decided by {buffer_multiple} x {batch_size}.
-
loader(DataLoader) –DataLoader that provides cropped image patches.
-
loader_iter(Iterable[list]) –iterator of loader attribute.
-
buffer(List[dict]) –buffer where image patches are stacking.
-
collate_function(Callable[[List[dict]], dict]) –function collating image patches into a batch.
initializing Full2PatchLoader
Parameters:
-
dataset(Dataset) –base dataset to be loaded.
-
collate_fn(Optional[Callable[[List[dict]], dict]], default:None) –function collating image patches into a batch. Defaults to None.
-
sampler(Optional[Iterable[int]]) –specific sampler such as balanced sampler. Defaults to None.
-
batch_size(int, default:1) –size of a batch for one iteration. Defaults to 1.
-
drop_last(bool, default:True) –drop_last boolean. Defaults to True.
Source code in SaigeToolkit/data/dataloader/full2patch_loader.py
collate_patch
dataset with crop_fn returns List[List[dict]] type. Since batch_size of self.loader is hard-defined as 1, simply returning first item of input is enough.
Parameters:
-
batch(List[List[dict]]) –batch (1) of cropped patches (n)
Returns:
-
List[dict]–List[dict]: cropped patches (n)
Source code in SaigeToolkit/data/dataloader/full2patch_loader.py
collate_batch
collating image patches into a batch
Parameters:
-
batch(List[dict]) –list cropped patch data dicts (n)
Returns:
-
dict(dict) –a batch dict
Source code in SaigeToolkit/data/dataloader/full2patch_loader.py
__next__
generating a batch data, extracting from buffer stack.
Raises:
-
StopIteration–self.get_buffer() called due to (len(self.buffer) < self.batch_size) and (len(self.buffer) == 0) even after self.get_buffer() : raise StopIteration.
-
StopIteration–self.get_buffer() called due to (len(self.buffer) < self.batch_size) and (len(self.buffer) < self.batch_size) even after self.get_buffer() and (drop_last == True) : raise StopIteration.
Returns:
-
dict(dict) –a batch dict
Source code in SaigeToolkit/data/dataloader/full2patch_loader.py
get_dataloader_class
get_dataloader_class(cfg_dataloader_name: Optional[str] = None, crop_fn: Optional[Callable[[dict], List[dict]]] = None) -> Type[SaigeDataLoader]
getting dataloader class
Parameters:
-
cfg_dataloader_name(Optional[str], default:None) –name of dataloader class. If None, choose appropriate class considering
crop_fn. Defaults to None. -
crop_fn(Optional[Callable[[dict], List[dict]]], default:None) –image crop function. Used for segmentation/OCR patch-wise training. Defaults to None.
Returns:
-
Type[SaigeDataLoader]–Type[SaigeDataLoader]: dataloader class