flambe.sampler.episodic

Module Contents

class flambe.sampler.episodic.EpisodicSampler(n_support: int, n_query: int, n_episodes: int, n_classes: int = None, pad_index: int = 0, balance_query: bool = False)[source]

Bases: flambe.sampler.Sampler

Implement an EpisodicSample object.

Currently only supports sequence inputs.

sample(self, data: Sequence[Sequence[torch.Tensor]], n_epochs: int = 1)[source]

Sample from the list of features and yields batches.

Parameters:
  • data (Sequence[Sequence[torch.Tensor, torch.Tensor]]) – The input data as a list of (source, target) pairs
  • n_epochs (int, optional) – The number of epochs to run in the output iterator. For this object, the total number of batches will be (n_episodes * n_epochs)
Yields:

Iterator[Tuple[Tensor, Tensor, Tensor, Tensor]] – In order: the query_source, the query_target the support_source, and the support_target tensors. For sequences, the batch is used as first dimension.

length(self, data: Sequence[Sequence[torch.Tensor]])[source]

Return the number of batches in the sampler.

Parameters:data (Sequence[Sequence[torch.Tensor, ..]]) – The input data to sample from
Returns:The number of batches that would be created per epoch
Return type:int