Output head for classification and regresssion.
Details
When the method $shapes_out() does not have access to the task, it returns c(NA, NA).
When this PipeOp is trained however, the model descriptor has the correct output shape.
nn_module
Calls torch::nn_linear() with the input features inferred from the input shape and the output
features from the task, via output_dim_for(). For
binary classification, the output dimension is 1.
multiclass classification, the output dimension is the number of classes.
regression, the output dimension is 1.
Supporting Other Task Types
The output dimension is not hard-coded here: PipeOpTorchHead asks the generic
output_dim_for() how many output neurons the task needs, and mlr3torch implements methods
for TaskClassif and TaskRegr.
You can add support to your custom task type by implementing a method for your class.
Input and Output Channels
One input channel called "input" and one output channel called "output".
For an explanation see PipeOpTorch.
Super classes
mlr3pipelines::PipeOp -> PipeOpTorch -> PipeOpTorchHead
Methods
PipeOpTorchHead$new()
Creates a new instance of this R6 class.
Usage
PipeOpTorchHead$new(id = "nn_head", param_vals = list())Arguments
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.
Examples
# Construct the PipeOp
pipeop = nn("head")
pipeop
#>
#> ── PipeOp <head>: not trained ──────────────────────────────────────────────────
#> Values: list()
#>
#> ── Input channels:
#> name train predict
#> <char> <char> <char>
#> input ModelDescriptor Task
#>
#> ── Output channels:
#> name train predict
#> <char> <char> <char>
#> output ModelDescriptor Task
# The available parameters
pipeop$param_set
#> <ParamSet(1)>
#> id class lower upper nlevels default value
#> <char> <char> <num> <num> <num> <list> <list>
#> 1: bias ParamLgl NA NA 2 TRUE [NULL]