| mlr_pipeops_torch_ingress_ltnsr | R Documentation |
Ingress for a single lazy_tensor column.
shape :: integer() | NULL | "infer"
The shape of the tensor, where the first dimension (batch) must be NA.
When it is not specified, the lazy tensor input column needs to have a known shape.
When it is set to "infer", the shape is inferred from an example batch.
The returned batchgetter materializes the lazy tensor column to a tensor.
One input channel called "input" and one output channel called "output".
For an explanation see PipeOpTorch.
The state is set to the input shape.
mlr3pipelines::PipeOp -> mlr3torch::PipeOpTorchIngress -> PipeOpTorchIngressLazyTensor
new()Creates a new instance of this R6 class.
PipeOpTorchIngressLazyTensor$new( id = "torch_ingress_ltnsr", param_vals = list() )
id(character(1))
Identifier of the resulting object.
param_vals(list())
List of hyperparameter settings, overwriting the hyperparameter settings that would
otherwise be set during construction.
clone()The objects of this class are cloneable with this method.
PipeOpTorchIngressLazyTensor$clone(deep = FALSE)
deepWhether to make a deep clone.
Other PipeOps:
mlr_pipeops_nn_adaptive_avg_pool1d,
mlr_pipeops_nn_adaptive_avg_pool2d,
mlr_pipeops_nn_adaptive_avg_pool3d,
mlr_pipeops_nn_avg_pool1d,
mlr_pipeops_nn_avg_pool2d,
mlr_pipeops_nn_avg_pool3d,
mlr_pipeops_nn_batch_norm1d,
mlr_pipeops_nn_batch_norm2d,
mlr_pipeops_nn_batch_norm3d,
mlr_pipeops_nn_block,
mlr_pipeops_nn_celu,
mlr_pipeops_nn_conv1d,
mlr_pipeops_nn_conv2d,
mlr_pipeops_nn_conv3d,
mlr_pipeops_nn_conv_transpose1d,
mlr_pipeops_nn_conv_transpose2d,
mlr_pipeops_nn_conv_transpose3d,
mlr_pipeops_nn_dropout,
mlr_pipeops_nn_elu,
mlr_pipeops_nn_flatten,
mlr_pipeops_nn_ft_cls,
mlr_pipeops_nn_ft_transformer_block,
mlr_pipeops_nn_geglu,
mlr_pipeops_nn_gelu,
mlr_pipeops_nn_glu,
mlr_pipeops_nn_hardshrink,
mlr_pipeops_nn_hardsigmoid,
mlr_pipeops_nn_hardtanh,
mlr_pipeops_nn_head,
mlr_pipeops_nn_identity,
mlr_pipeops_nn_layer_norm,
mlr_pipeops_nn_leaky_relu,
mlr_pipeops_nn_linear,
mlr_pipeops_nn_log_sigmoid,
mlr_pipeops_nn_max_pool1d,
mlr_pipeops_nn_max_pool2d,
mlr_pipeops_nn_max_pool3d,
mlr_pipeops_nn_merge,
mlr_pipeops_nn_merge_cat,
mlr_pipeops_nn_merge_prod,
mlr_pipeops_nn_merge_sum,
mlr_pipeops_nn_prelu,
mlr_pipeops_nn_reglu,
mlr_pipeops_nn_relu,
mlr_pipeops_nn_relu6,
mlr_pipeops_nn_reshape,
mlr_pipeops_nn_rrelu,
mlr_pipeops_nn_selu,
mlr_pipeops_nn_sigmoid,
mlr_pipeops_nn_softmax,
mlr_pipeops_nn_softplus,
mlr_pipeops_nn_softshrink,
mlr_pipeops_nn_softsign,
mlr_pipeops_nn_squeeze,
mlr_pipeops_nn_tanh,
mlr_pipeops_nn_tanhshrink,
mlr_pipeops_nn_threshold,
mlr_pipeops_nn_tokenizer_categ,
mlr_pipeops_nn_tokenizer_num,
mlr_pipeops_nn_unsqueeze,
mlr_pipeops_torch_ingress,
mlr_pipeops_torch_ingress_categ,
mlr_pipeops_torch_ingress_num,
mlr_pipeops_torch_loss,
mlr_pipeops_torch_model,
mlr_pipeops_torch_model_classif,
mlr_pipeops_torch_model_regr
Other Graph Network:
ModelDescriptor(),
TorchIngressToken(),
mlr_learners_torch_model,
mlr_pipeops_module,
mlr_pipeops_torch,
mlr_pipeops_torch_ingress,
mlr_pipeops_torch_ingress_categ,
mlr_pipeops_torch_ingress_num,
model_descriptor_to_learner(),
model_descriptor_to_module(),
model_descriptor_union(),
nn_graph()
po_ingress = po("torch_ingress_ltnsr")
task = tsk("lazy_iris")
md = po_ingress$train(list(task))[[1L]]
ingress = md$ingress
x_batch = ingress[[1L]]$batchgetter(data = task$data(1, "x"), cache = NULL)
x_batch
# Now we try a lazy tensor with unknown shape, i.e. the shapes between the rows can differ
ds = dataset(
initialize = function() self$x = list(torch_randn(3, 10, 10), torch_randn(3, 8, 8)),
.getitem = function(i) list(x = self$x[[i]]),
.length = function() 2)()
task_unknown = as_task_regr(data.table(
x = as_lazy_tensor(ds, dataset_shapes = list(x = NULL)),
y = rnorm(2)
), target = "y", id = "example2")
# this task (as it is) can NOT be processed by PipeOpTorchIngressLazyTensor
# It therefore needs to be preprocessed
po_resize = po("trafo_resize", size = c(6, 6))
task_unknown_resize = po_resize$train(list(task_unknown))[[1L]]
# printing the transformed column still shows unknown shapes,
# because the preprocessing pipeop cannot infer them,
# however we know that the shape is now (3, 10, 10) for all rows
task_unknown_resize$data(1:2, "x")
po_ingress$param_set$set_values(shape = c(NA, 3, 6, 6))
md2 = po_ingress$train(list(task_unknown_resize))[[1L]]
ingress2 = md2$ingress
x_batch2 = ingress2[[1L]]$batchgetter(
data = task_unknown_resize$data(1:2, "x"),
cache = NULL
)
x_batch2
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.