26 : dataset_(std::move(dataset)), backend_(backend) {}
28 [[nodiscard]] int64_t
size()
const override {
return static_cast<int64_t
>(dataset_.
images.size()); }
37 [[nodiscard]]
Sample get(int64_t index)
const override {
38 if (index < 0 || index >=
size()) {
39 throw std::out_of_range(
"MnistDatasetAdapter::get: index out of range");
41 size_t i =
static_cast<size_t>(index);
Random-access dataset abstraction – pulsatrix's analogue of PyTorch's torch.utils....
Definition dataset.hpp:33
Vendor-agnostic compute/memory backend. CPUBackend, CUDABackend (Phase 1.5), and HIPBackend (Phase 1....
Definition device_backend.hpp:219
Adapts a pre-loaded MnistDataset (MnistIdxLoader::Load's output) onto the generic Dataset interface –...
Definition mnist_dataset_adapter.hpp:23
int64_t size() const override
Number of samples in this dataset.
Definition mnist_dataset_adapter.hpp:28
Sample get(int64_t index) const override
Definition mnist_dataset_adapter.hpp:37
MnistDatasetAdapter(MnistDataset dataset, DeviceBackend *backend)
Definition mnist_dataset_adapter.hpp:25
An N-dimensional shape. A plain aggregate of dimensions with no invariant beyond "non-negative dimens...
Definition shape.hpp:24
N-dimensional tensor. Owns its data buffer exclusively; a DeviceBackend* is injected (not owned) – th...
Definition tensor.hpp:29
Random-access dataset abstraction – Sample, Dataset (size()/get()).
Parses real MNIST IDX/ubyte files (fetched by tools/fetch_mnist.py) into Tensor images and integer la...
Definition acquisition_functions.hpp:16
One IDX file pair's contents: parallel images/labels, same length.
Definition mnist_loader.hpp:18
std::vector< Tensor > images
Shape (1, 28, 28), pixel values normalized to [0,1].
Definition mnist_loader.hpp:20
std::vector< int64_t > labels
0-9 class index, one per image, same order/length as images.
Definition mnist_loader.hpp:22
One dataset sample: an ordered list of Tensor fields (e.g. {features, label} or {image,...
Definition dataset.hpp:19