pub struct SamplerDataLoader<D>where
D: Dataset,{ /* private fields */ }Expand description
Sampler が返す添字列をそのまま Dataset::batch へ渡す
ローダー(イシュー #2182)。タプルデータセット((TensorDataset<f32>, TensorDataset<i32>) 等)でも同じ添字が全成分に適用されるため、
分類タスクのように特徴量とラベルを同一のシャッフル順で取り出す
要件を満たす(HookedDataLoader はサンプル単位 transform/collate
のため TensorDataset<T> 限定になるが、本型はタプルにも使える)。
Implementations§
Source§impl<D> SamplerDataLoader<D>where
D: Dataset,
impl<D> SamplerDataLoader<D>where
D: Dataset,
Sourcepub fn new(
dataset: D,
sampler: impl Sampler + 'static,
) -> Result<SamplerDataLoader<D>, DataError>
pub fn new( dataset: D, sampler: impl Sampler + 'static, ) -> Result<SamplerDataLoader<D>, DataError>
dataset.validate() を実行し、タプル成分の長さ不一致を
fail-closed に拒否する(DataLoader::new と同じ契約)。
Sourcepub fn into_dataset(self) -> D
pub fn into_dataset(self) -> D
内部の dataset を取り出す。
Sourcepub fn num_batches(&self) -> Option<usize>
pub fn num_batches(&self) -> Option<usize>
1 epoch あたりのバッチ数(Sampler::num_batches が Some を
返す場合のみ)。
Sourcepub fn iter(&mut self) -> SamplerBatches<'_, D> ⓘ
pub fn iter(&mut self) -> SamplerBatches<'_, D> ⓘ
1 epoch 分のイテレータを返す。Sampler::start_epoch を呼んで
から yield を始める(失敗した場合は最初の next() で 1 回だけ
Err を返し、以降は None。Batches の pending_error と
同じ方式)。
Trait Implementations§
Auto Trait Implementations§
impl<D> !RefUnwindSafe for SamplerDataLoader<D>
impl<D> !Sync for SamplerDataLoader<D>
impl<D> !UnwindSafe for SamplerDataLoader<D>
impl<D> Freeze for SamplerDataLoader<D>where
D: Freeze,
impl<D> Send for SamplerDataLoader<D>where
D: Send,
impl<D> Unpin for SamplerDataLoader<D>where
D: Unpin,
impl<D> UnsafeUnpin for SamplerDataLoader<D>where
D: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more