class ngraph::pass::Validate

Overview

The Validate pass performs sanity checks on attributes and inputs, and computes output shapes and element types for all computation nodes in a given computation graph. More…

#include <validate.hpp>

class Validate: public ngraph::pass::FunctionPass
{
public:
    // methods

    virtual bool run_on_function(std::shared_ptr<ngraph::Function> f);
};

Inherited Members

public:
    // typedefs

    typedef DiscreteTypeInfo type_info_t;

    // methods

    bool get_property(const PassPropertyMask& prop_mask) const;
    void set_name(const std::string& name);
    std::string get_name() const;
    void set_callback(const param_callback& callback);
    virtual void set_pass_config(const std::shared_ptr<PassConfig>& pass_config);
    std::shared_ptr<PassConfig> get_pass_config();
    bool m_transformation_callback(const std::shared_ptr<const Node>& node);
    bool transformation_callback(const std::shared_ptr<const Node>& node);
    virtual const type_info_t& get_type_info() const = 0;
    virtual bool run_on_function(std::shared_ptr<ngraph::Function>) = 0;

Detailed Documentation

The Validate pass performs sanity checks on attributes and inputs, and computes output shapes and element types for all computation nodes in a given computation graph.

The verification and inference is done via invoking each node’s specific implementation of ngraph::Node::validate_and_infer_types() function.

By default, the ngraph::pass::Manager runs this pass after executing every optimization pass. This is to ensure that any update to the graph by an optimization pass does not break the shape and data type requirement on a computation node. This default validation run can be changed via calling the ngraph::pass::Manager::set_per_pass_validation(bool) function.