Public Types | Public Member Functions | Static Public Attributes | Friends
ngraph::Function Class Reference

A user-defined function. More...

#include <function.hpp>

Collaboration diagram for ngraph::Function:
Collaboration graph
[legend]

Public Types

using topological_sort_t = std::function< std::vector< std::shared_ptr< Node > >(const std::vector< std::shared_ptr< Node > > &root_nodes)>
 

Public Member Functions

const DiscreteTypeInfoget_type_info () const
 
 Function (const NodeVector &results, const ParameterVector &parameters, const std::string &name="")
 
 Function (const OutputVector &results, const ParameterVector &parameters, const std::string &name="")
 
 Function (const std::shared_ptr< Node > &result, const ParameterVector &parameters, const std::string &name="")
 
 Function (const ResultVector &results, const ParameterVector &parameters, const std::string &name="")
 
size_t get_output_size () const
 Return the number of outputs for this function.
 
std::shared_ptr< Nodeget_output_op (size_t i) const
 Return the op that generates output i.
 
Output< Nodeoutput (size_t i) const
 
const element::Type & get_output_element_type (size_t i) const
 Return the element type of output i.
 
const Shapeget_output_shape (size_t i) const
 Return the shape of element i.
 
const PartialShapeget_output_partial_shape (size_t i) const
 Return the partial shape of element i.
 
std::shared_ptr< Nodeget_result () const
 Check that there is a single result and return it.
 
const std::string & get_name () const
 Get the unique name of the function. More...
 
void set_friendly_name (const std::string &name)
 Sets a friendly name for a function. This does not overwrite the unique name of the function and is retrieved via get_friendly_name(). Used mainly for debugging. More...
 
const std::string & get_friendly_name () const
 Gets the friendly name for a function. If no friendly name has been set via set_friendly_name then the function's unique name is returned. More...
 
std::vector< std::shared_ptr< Node > > get_ops () const
 
std::vector< std::shared_ptr< Node > > get_ordered_ops () const
 
void map_unordered_ops (std::function< void(Node *)> f) const
 
void replace_node (std::shared_ptr< Node > old, std::shared_ptr< Node > repl)
 
void validate_nodes_and_infer_types ()
 
size_t get_graph_size () const
 Returns the sum of the size of all nodes in the graph plus the size of all constant data. This has little value beyond comparing the relative size of graphs and should not be considered the actual memory consumption of a graph.
 
bool is_dynamic () const
 Returns true if any of the op's defined in the function contains partial shape.
 
void replace_parameter (size_t parameter_index, const std::shared_ptr< op::Parameter > &parameter)
 Replace the parameter_indexth parameter of the function with parameter. More...
 
void set_topological_sort (topological_sort_t)
 
virtual bool visit_attributes (AttributeVisitor &visitor)
 
const ParameterVector & get_parameters () const
 Return the function parameters.
 
const ResultVector & get_results () const
 Return a list of function's outputs.
 
int64_t get_parameter_index (const std::shared_ptr< op::Parameter > &parameter) const
 Index for parameter, or -1.
 
int64_t get_result_index (const Output< Node > &value) const
 Index for value or result referencing it, or -1.
 
bool evaluate (const HostTensorVector &output_tensors, const HostTensorVector &input_tensors) const
 Evaluate the function on inputs, putting results in outputs. More...
 

Static Public Attributes

static constexpr DiscreteTypeInfo type_info {"Function", 0}
 

Friends

std::ostream & operator<< (std::ostream &, const Function &)
 

Detailed Description

A user-defined function.

Member Function Documentation

◆ evaluate()

bool ngraph::Function::evaluate ( const HostTensorVector &  output_tensors,
const HostTensorVector &  input_tensors 
) const

Evaluate the function on inputs, putting results in outputs.

Parameters
outputsTensors for the outputs to compute. One for each result
inputsTensors for the inputs. One for each inputs.

◆ get_friendly_name()

const std::string& ngraph::Function::get_friendly_name ( ) const

Gets the friendly name for a function. If no friendly name has been set via set_friendly_name then the function's unique name is returned.

Returns
A const reference to the function's friendly name.

◆ get_name()

const std::string& ngraph::Function::get_name ( ) const

Get the unique name of the function.

Returns
A const reference to the function's unique name.

◆ replace_parameter()

void ngraph::Function::replace_parameter ( size_t  parameter_index,
const std::shared_ptr< op::Parameter > &  parameter 
)

Replace the parameter_indexth parameter of the function with parameter.

All users of the parameter_indexth parameter are redirected to parameter, and the parameter_indexth entry in the function parameter list is replaced with parameter.

Parameters
parameter_indexThe index of the parameter to replace.
parameterThe parameter to substitute for the parameter_indexth parameter.

◆ set_friendly_name()

void ngraph::Function::set_friendly_name ( const std::string &  name)

Sets a friendly name for a function. This does not overwrite the unique name of the function and is retrieved via get_friendly_name(). Used mainly for debugging.

Parameters
nameis the friendly name to set

The documentation for this class was generated from the following file: