目录
class torch.utils.data.Sampler(data_source)[source]
class torch.utils.data.SequentialSampler(data_source)[source]
class torch.utils.data.RandomSampler(data_source, replacement=False, num_samples=None)[source]
class torch.utils.data.SubsetRandomSampler(indices)[source]
class torch.utils.data.WeightedRandomSampler(weights, num_samples, replacement=True)[source]
class torch.utils.data.BatchSampler(sampler, batch_size, drop_last)[source]
采样器的返回值是一个索引列表,用于在训练集中查找训练样本,一般总的元素数是数据集的长度。
class torch.utils.data.
Sampler
(data_source)[source]
所有采样器的基类。
每个采样器的子类必须提供一个__iter__()方法,提供一个数据集元素指数上进行迭代的方法,并且__len__()方法返回迭代器的长度。
注意:
在Dataloader中__len__()方法不是严格需要的,但是在任何包含Datalaoder长度的计算中都需要。
class torch.utils.data.
SequentialSampler
(data_source)[source]
顺序的采样元素,通常以相同的顺序。
参数:
data_source (Dataset) – 数据集的来源
class torch.utils.data.
RandomSampler
(data_source, replacement=False, num_samples=None)[source]
随机采样元素。如果不能重复采样,样本来自打乱后的数据集。如果可以重复采样,使用者可以指定需要的样本数num_samples。
参数:
-
data_source (Dataset) – 需要采样的数据集
-
replacement (bool) – 是否可以重复采样
-
num_samples (int) – 需要采样的样本数,默认为数据集的长度,参数仅仅在可以重复为真实设置。
class torch.utils.data.
SubsetRandomSampler
(indices)[source]
从给定的指数列表中随机采样,不可以重复采样。
参数:
- indices (sequence) – 指数的序列
class torch.utils.data.
WeightedRandomSampler
(weights, num_samples, replacement=True)[source]
从[0,..,len(weights)-1]中以给定的概率(权重)进行采样元素。
参数:
-
weights (sequence) – 一个权重序列,不必要不需要加起来是1。
-
num_samples (int) – 需要采样的样本数。
-
replacement (bool) – 如果为真的话,样本可以进行重复采样。如果为假,不可以进行重复采样,这意味着当一个样本指数来自某行时,对那行不能再一次进行采样。
Example
>>> list(WeightedRandomSampler([0.1, 0.9, 0.4, 0.7, 3.0, 0.6], 5, replacement=True))
[4, 4, 1, 4, 5]
>>> list(WeightedRandomSam