A mutable, format-neutral interface to a computational-graph model. More...
#include <graph_builder.hpp>
Two-stage workflow: explore and configure a model (introspection, dynamic-dimension binding) with GraphBuilder, then freeze it into an immutable, evaluable Function.
GraphBuilder b("model.onnx");
b.bind_dim("batch", 4);
Function f = b.create("net");
Extra doc: https://github.com/casadi/casadi/wiki/L_2jd
Definition at line 49 of file graph_builder.hpp.


Public Types | |
| using | internal_base_type = SharedObjectInternal |
| using | base_type = SharedObject |
Public Member Functions | |
| std::string | type_name () const |
| Readable name of the class. More... | |
| GraphBuilder () | |
| Default constructor. More... | |
| GraphBuilder (const std::string &model_path, const Dict &opts=Dict()) | |
| Construct from a model file (import lifecycle; format from the file suffix) More... | |
| GraphBuilder (const Function &f, const Dict &opts=Dict()) | |
| Construct from a CasADi Function (export lifecycle) More... | |
| GraphBuilder (const std::string &name, const std::vector< uint8_t > &model_data, const std::string &format, const Dict &opts=Dict()) | |
| Construct from model data in memory. More... | |
| const std::string & | name () const |
| Name of the model. More... | |
| Function | create (const std::string &name, const std::vector< std::string > &name_in, const std::vector< std::string > &name_out, const Dict &opts=Dict()) const |
| Freeze into an evaluable Function. More... | |
| Function | create (const std::string &name, const Dict &opts=Dict()) const |
| Freeze into an evaluable Function, exposing all model inputs and outputs. More... | |
| Function | create () const |
| Freeze into an evaluable Function, default naming. More... | |
| void | export_onnx (const std::string &filename, const Dict &opts=Dict()) |
| Export to an ONNX model file. More... | |
| std::string | class_name () const |
| Get class name. More... | |
| void | disp (std::ostream &stream, bool more=false) const |
| Print a description of the object. More... | |
| std::string | get_str (bool more=false) const |
| Get string representation. More... | |
| void | print_ptr (std::ostream &stream=casadi::uout()) const |
| void | own (SharedObjectInternal *node) |
| void | assign (SharedObjectInternal *node) |
| Assign the node to a node class pointer without reference counting. More... | |
| casadi_int | getCount () const |
| Get the reference count. More... | |
| void | swap (GenericShared &other) |
| Swap content with another instance. More... | |
| std::string | debug_repr () const |
| bool | is_null () const |
| Is a null pointer? More... | |
| casadi_int | __hash__ () const |
| Returns a number that is unique for a given Node. More... | |
| GenericWeakRef< SharedObject, SharedObjectInternal > * | weak () |
| Get a weak reference to the object. More... | |
Model introspection | |
| casadi_int | n_in () const |
| Declared shape of a tensor (input or output) by name; -1 for dynamic dimensions. More... | |
| casadi_int | n_out () const |
| Declared shape of a tensor (input or output) by name; -1 for dynamic dimensions. More... | |
| std::vector< std::string > | name_in () const |
| Declared shape of a tensor (input or output) by name; -1 for dynamic dimensions. More... | |
| std::vector< std::string > | name_out () const |
| Declared shape of a tensor (input or output) by name; -1 for dynamic dimensions. More... | |
| std::vector< casadi_int > | dimension (const std::string &name) const |
| Declared shape of a tensor (input or output) by name; -1 for dynamic dimensions. More... | |
| std::string | dtype (const std::string &name) const |
| Element type name of a tensor (input or output) by name (FLOAT, INT64, ...) More... | |
| std::vector< std::string > | dimension_param (const std::string &name) const |
| Per-axis symbolic dimension name of a tensor by name ("" for static axes) More... | |
| std::vector< std::string > | dynamic_params () const |
| Names of the symbolic/dynamic dimensions in the model. More... | |
Configuration | |
| void | bind_dim (const std::string ¶m, casadi_int value) |
| Bind a symbolic/dynamic dimension to a concrete size. More... | |
| void | bind_shape (const std::string &input_name, const std::vector< casadi_int > &shape) |
| Pin the full shape of an input. More... | |
| void | set (const std::string &input_name, const std::vector< double > &value) |
| Bake a fixed value into an input; it is fed at create() and not exposed as a Function input. More... | |
| void | set (const std::string &input_name, double value) |
| Bake a scalar value into an input. More... | |
| GraphBuilderInternal * | operator-> () |
| const GraphBuilderInternal * | operator-> () const |
| GraphBuilderInternal * | get () const |
Protected Member Functions | |
| void | count_up () |
| void | count_down () |
|
inherited |
Definition at line 103 of file shared_object.hpp.
|
inherited |
Definition at line 102 of file shared_object.hpp.
| casadi::GraphBuilder::GraphBuilder | ( | ) |
Definition at line 62 of file graph_builder.cpp.
|
explicit |
Definition at line 65 of file graph_builder.cpp.
References casadi::format_from_path(), and casadi::GenericShared< SharedObject, SharedObjectInternal >::own().
Definition at line 76 of file graph_builder.cpp.
References casadi::Function::name(), and casadi::GenericShared< SharedObject, SharedObjectInternal >::own().
| casadi::GraphBuilder::GraphBuilder | ( | const std::string & | name, |
| const std::vector< uint8_t > & | model_data, | ||
| const std::string & | format, | ||
| const Dict & | opts = Dict() |
||
| ) |
Definition at line 80 of file graph_builder.cpp.
References name(), and casadi::GenericShared< SharedObject, SharedObjectInternal >::own().
|
inherited |
If the Object does not point to any node, "0" is returned.
Extra doc: https://github.com/casadi/casadi/wiki/L_av
Definition at line 123 of file generic_shared_impl.hpp.
|
inherited |
improper use will cause memory leaks!
Extra doc: https://github.com/casadi/casadi/wiki/L_at
Definition at line 96 of file generic_shared_impl.hpp.
| void casadi::GraphBuilder::bind_dim | ( | const std::string & | param, |
| casadi_int | value | ||
| ) |
Definition at line 117 of file graph_builder.cpp.
| void casadi::GraphBuilder::bind_shape | ( | const std::string & | input_name, |
| const std::vector< casadi_int > & | shape | ||
| ) |
Definition at line 120 of file graph_builder.cpp.
|
inherited |
Extra doc: https://github.com/casadi/casadi/wiki/L_au
Definition at line 31 of file shared_object.cpp.
Referenced by casadi::FmuFunction::check_mem_count(), casadi::MXFunction::export_code_body(), and casadi::BlazingSplineFunction::merge().
|
protectedinherited |
Definition at line 133 of file generic_shared_impl.hpp.
|
protectedinherited |
Definition at line 132 of file generic_shared_impl.hpp.
|
inline |
Extra doc: https://github.com/casadi/casadi/wiki/L_2jg
Definition at line 127 of file graph_builder.hpp.
References create().
Referenced by create().
| Function casadi::GraphBuilder::create | ( | const std::string & | name, |
| const Dict & | opts = Dict() |
||
| ) | const |
Extra doc: https://github.com/casadi/casadi/wiki/L_2jf
Definition at line 137 of file graph_builder.cpp.
References name().
| Function casadi::GraphBuilder::create | ( | const std::string & | name, |
| const std::vector< std::string > & | name_in, | ||
| const std::vector< std::string > & | name_out, | ||
| const Dict & | opts = Dict() |
||
| ) | const |
| name | Name assigned to the resulting Function |
| name_in | Names of the inputs to expose (empty = all model inputs) |
| name_out | Names of the outputs to expose (empty = all model outputs) |
| opts | "symbolic" (bool, default false) and "backend" (numeric backend, default "ort"); any remaining options pass through to the backend. |
Extra doc: https://github.com/casadi/casadi/wiki/L_2je
Definition at line 131 of file graph_builder.cpp.
References name(), name_in(), and name_out().
Referenced by casadi::DaeBuilderInternal::load_fmi_description().
|
inherited |
Definition at line 112 of file generic_shared_impl.hpp.
| std::vector< casadi_int > casadi::GraphBuilder::dimension | ( | const std::string & | name | ) | const |
Definition at line 104 of file graph_builder.cpp.
References name().
| std::vector< std::string > casadi::GraphBuilder::dimension_param | ( | const std::string & | name | ) | const |
Definition at line 110 of file graph_builder.cpp.
References name().
|
inherited |
Definition at line 35 of file shared_object.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::is_null().
Referenced by casadi::Nlpsol::disp_more(), and casadi::CsparseInterface::nfact().
| std::string casadi::GraphBuilder::dtype | ( | const std::string & | name | ) | const |
Definition at line 107 of file graph_builder.cpp.
References name().
| std::vector< std::string > casadi::GraphBuilder::dynamic_params | ( | ) | const |
Definition at line 113 of file graph_builder.cpp.
Extra doc: https://github.com/casadi/casadi/wiki/L_2jh
Definition at line 140 of file graph_builder.cpp.
References casadi::filename().
| GraphBuilderInternal * casadi::GraphBuilder::get | ( | ) | const |
Access functions of the node
Definition at line 91 of file graph_builder.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::get().
Referenced by casadi::OnnxFunction::from_model_data().
|
inlineinherited |
Definition at line 91 of file shared_object.hpp.
|
inherited |
Definition at line 102 of file generic_shared_impl.hpp.
|
inherited |
Definition at line 116 of file generic_shared_impl.hpp.
| casadi_int casadi::GraphBuilder::n_in | ( | ) | const |
Definition at line 100 of file graph_builder.cpp.
| casadi_int casadi::GraphBuilder::n_out | ( | ) | const |
Definition at line 101 of file graph_builder.cpp.
| const std::string & casadi::GraphBuilder::name | ( | ) | const |
Definition at line 95 of file graph_builder.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::is_null().
Referenced by create(), dimension(), dimension_param(), dtype(), and GraphBuilder().
| std::vector< std::string > casadi::GraphBuilder::name_in | ( | ) | const |
Definition at line 102 of file graph_builder.cpp.
Referenced by create().
| std::vector< std::string > casadi::GraphBuilder::name_out | ( | ) | const |
Definition at line 103 of file graph_builder.cpp.
Referenced by create().
| GraphBuilderInternal * casadi::GraphBuilder::operator-> | ( | ) |
Access functions of the node
Definition at line 85 of file graph_builder.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::operator->().
| const GraphBuilderInternal * casadi::GraphBuilder::operator-> | ( | ) | const |
Access functions of the node
Definition at line 88 of file graph_builder.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::operator->().
|
inherited |
Assign the node to a node class pointer (or null)
Definition at line 89 of file generic_shared_impl.hpp.
|
inherited |
Print the pointer to the internal class
Definition at line 43 of file shared_object.cpp.
References casadi::GenericShared< SharedObject, SharedObjectInternal >::get().
| void casadi::GraphBuilder::set | ( | const std::string & | input_name, |
| const std::vector< double > & | value | ||
| ) |
Definition at line 124 of file graph_builder.cpp.
| void casadi::GraphBuilder::set | ( | const std::string & | input_name, |
| double | value | ||
| ) |
Definition at line 127 of file graph_builder.cpp.
|
inherited |
Definition at line 105 of file generic_shared_impl.hpp.
|
inline |
Definition at line 54 of file graph_builder.hpp.
|
inherited |
Extra doc: https://github.com/casadi/casadi/wiki/L_aw
Definition at line 130 of file generic_shared_impl.hpp.