Represents a neural network using a Graph
that usually costains mostly PipeOpModule
s.
Arguments
- graph
- shapes_in
(named
integer
)
Shape info of tensors that go intograph
. Names must begraph$input$name
, possibly in different order.- output_map
(
character
)
Which ofgraph
's outputs to use. Must be a subset ofgraph$output$name
.- list_output
(
logical(1)
)
Whether output should be a list of tensors. IfFALSE
(default), thenlength(output_map)
must be 1.
See also
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_ltnsr
,
mlr_pipeops_torch_ingress_num
,
model_descriptor_to_learner()
,
model_descriptor_to_module()
,
model_descriptor_union()
Examples
graph = mlr3pipelines::Graph$new()
graph$add_pipeop(po("module_1", module = nn_linear(10, 20)), clone = FALSE)
graph$add_pipeop(po("module_2", module = nn_relu()), clone = FALSE)
graph$add_pipeop(po("module_3", module = nn_linear(20, 1)), clone = FALSE)
graph$add_edge("module_1", "module_2")
graph$add_edge("module_2", "module_3")
network = nn_graph(graph, shapes_in = list(module_1.input = c(NA, 10)))
x = torch_randn(16, 10)
network(module_1.input = x)
#> torch_tensor
#> 0.3744
#> 0.4958
#> 0.2366
#> 0.4935
#> 0.5576
#> 0.5646
#> 0.4307
#> 0.0599
#> 0.1646
#> 0.4125
#> 0.3545
#> 0.2628
#> 0.5434
#> 0.3028
#> 0.2900
#> 0.4098
#> [ CPUFloatType{16,1} ][ grad_fn = <AddmmBackward0> ]