as_dataloader
is used internally by luz to convert input
data
and valid_data
as passed to fit.luz_module_generator()
to a
torch::dataloader
Usage
as_dataloader(x, ...)
# S3 method for class 'dataset'
as_dataloader(x, ..., batch_size = 32)
# S3 method for class 'iterable_dataset'
as_dataloader(x, ..., batch_size = 32)
# S3 method for class 'list'
as_dataloader(x, ...)
# S3 method for class 'dataloader'
as_dataloader(x, ...)
# S3 method for class 'matrix'
as_dataloader(x, ...)
# S3 method for class 'numeric'
as_dataloader(x, ...)
# S3 method for class 'array'
as_dataloader(x, ...)
# S3 method for class 'torch_tensor'
as_dataloader(x, ...)
Arguments
- x
the input object.
- ...
Passed to
torch::dataloader()
.- batch_size
(int, optional): how many samples per batch to load (default:
1
).
Details
as_dataloader
methods should have sensible defaults for batch_size,
parallel workers, etc.
It allows users to quickly experiment with fit.luz_module_generator()
by not requiring
to create a torch::dataset and a torch::dataloader in simple
experiments.
Methods (by class)
as_dataloader(dataset)
: Converts atorch::dataset()
to atorch::dataloader()
.as_dataloader(iterable_dataset)
: Converts atorch::iterable_dataset()
into atorch::dataloader()
as_dataloader(list)
: Converts a list of tensors or arrays with the same size in the first dimension to atorch::dataloader()
as_dataloader(dataloader)
: Returns the same dataloaderas_dataloader(matrix)
: Converts the matrix to a dataloaderas_dataloader(numeric)
: Converts the numeric vector to a dataloaderas_dataloader(array)
: Converts the array to a dataloaderas_dataloader(torch_tensor)
: Converts the tensor to a dataloader
Overriding
You can implement your own as_dataloader
S3 method if you want your data
structure to be automatically supported by luz's fit.luz_module_generator()
.
The method must satisfy the following conditions:
The method should return a
torch::dataloader()
.The only required argument is
x
. You have good default for all other arguments.
It's better to avoid implementing as_dataloader
methods for common S3 classes
like data.frames
. In this case, its better to assign a different class to
the inputs and implement as_dataloader
for it.