class ngraph::pass::ConcatReduceFusion

Overview

ConcatReduceFusion pass replaces the following graph: More…

#include <concat_reduce_fusion.hpp>

class ConcatReduceFusion: public ov::pass::GraphRewrite
{
};

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;
    OPENVINO_RTTI("ov::pass::ModelPass");
    virtual bool run_on_function(std::shared_ptr<ov::Model> m);
    virtual bool run_on_model(const std::shared_ptr<ov::Model>& m);
    OPENVINO_RTTI("ov::pass::GraphRewrite");

    template <
        typename T,
        bool Enabled = true,
        class... Args,
        typename std::enable_if<std::is_base_of<pass::MatcherPass, T>::value, bool>::type = true
        >
    std::shared_ptr<T> add_matcher(Args&&... args);

    template <
        typename T,
        class... Args,
        typename std::enable_if<std::is_base_of<pass::GraphRewrite, T>::value, bool>::type = true
        >
    void add_matcher(Args&&... args);

    void add_matcher(
        const std::shared_ptr<pattern::Matcher>& m,
        const graph_rewrite_callback& callback,
        const PassPropertyMask& property
        );

    void add_matcher(
        const std::shared_ptr<pattern::Matcher>& m,
        const ov::graph_rewrite_callback& callback
        );

    virtual bool run_on_model(const std::shared_ptr<ov::Model>& m);
    virtual void set_pass_config(const std::shared_ptr<PassConfig>& pass_config);

Detailed Documentation

ConcatReduceFusion pass replaces the following graph:

+---------------+            +---------------+
                           |               |
     input                 |     input     |
                           |               |
+---------------+            +----------------
        |                            |
        |                            |
        \                            /
         \                          /
          \                        /
           \                      /
            \                    /
             \                  /
              \                /
               \              /
                \            /
               +---------------+
               |               |
               |     Concat    |
               |               |
               +----------------
                       |
                       v
               +---------------+
               |               |
               |   ReduceMin/  |
               |   ReduceMax   |
               +----------------

by a single Minimum/Maximum with 2 inputs and tries to eliminate Squeeze/Unsqueeze layers before and after Min/Max.