Repeat a block n_blocks
times by concatenating it with itself (via %>>%
).
Naming
For the generated module graph, the IDs of the modules are generated by prefixing the
IDs of the n_blocks
layers with the ID of the PipeOpTorchBlock
and postfixing them with
__<layer>
.
Parameters
The parameters available for the provided block
, as well as
n_blocks
::integer(1)
How often to repeat the block.trafo
::function(i, param_vals, param_set) -> list()
A function that allows to transform the parameters vaues of each layer (block
). Here,i
::integer(1)
is the index of the layer, ranging from1
ton_blocks
.param_vals
:: namedlist()
are the parameter values of the layeri
.param_set
::ParamSet
is the parameter set of the wholePipeOpTorchBlock
.
The function must return the modified parameter values for the given layer. This, e.g., allows for special behavior of the first or last layer.
Input and Output Channels
The PipeOp
sets its input and output channels to those from the block
(Graph)
it received during construction.
See also
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_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_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_ltnsr
,
mlr_pipeops_torch_ingress_num
,
mlr_pipeops_torch_loss
,
mlr_pipeops_torch_model
,
mlr_pipeops_torch_model_classif
,
mlr_pipeops_torch_model_regr
Super classes
mlr3pipelines::PipeOp
-> mlr3torch::PipeOpTorch
-> PipeOpTorchBlock
Active bindings
block
(
Graph
)
The neural network segment that is repeated by thisPipeOp
.
Methods
Method new()
Creates a new instance of this R6 class.
Usage
PipeOpTorchBlock$new(block, id = "nn_block", param_vals = list())
Arguments
block
(
Graph
)
A graph consisting primarily ofPipeOpTorch
objects that is to be repeated.id
(
character(1)
)
The id for of the new object.param_vals
(named
list()
)
Parameter values to be set after construction.
Examples
# repeat a simple linear layer with ReLU activation 3 times, but set the bias for the last
# layer to `FALSE`
block = nn("linear") %>>% nn("relu")
blocks = nn("block", block,
linear.out_features = 10L, linear.bias = TRUE, n_blocks = 3,
trafo = function(i, param_vals, param_set) {
if (i == param_set$get_values()$n_blocks) {
param_vals$linear.bias = FALSE
}
param_vals
})
graph = po("torch_ingress_num") %>>%
blocks %>>%
nn("head")
md = graph$train(tsk("iris"))[[1L]]
network = model_descriptor_to_module(md)
network
#> An `nn_module` containing 293 parameters.
#>
#> ── Modules ─────────────────────────────────────────────────────────────────────
#> • module_list: <nn_module_list> #293 parameters