class ov::pass::SoftmaxFusion

Overview

SoftmaxFusion transformation replaces following graphs: More…

#include <softmax_fusion.hpp>

class SoftmaxFusion: public ov::pass::MatcherPass
{
public:
    // methods

    "SoftmaxFusion""0" OPENVINO_RTTI(, );
};

Inherited Members

public:
    // typedefs

    typedef DiscreteTypeInfo type_info_t;

    // methods

    boolconst PassPropertyMask& get_property() const;
    voidconst std::string& set_name();
    std::string get_name() const;
    voidconst param_callback& set_callback();
    virtual voidconst std::shared_ptr<PassConfig>& set_pass_config();
    std::shared_ptr<PassConfig> get_pass_config();
    boolconst std::shared_ptr<const Node>& transformation_callback();
    virtual const type_info_t& get_type_info() const = 0;
    "ov::pass::MatcherPass" OPENVINO_RTTI();
    MatcherPass&const MatcherPass& operator = ();
    boolstd::shared_ptr<ov::Node> apply();

    template <, >
    std::shared_ptr<T>Args&&... register_new_node();

    template <>
    std::shared_ptr<T>const std::shared_ptr<T>& register_new_node();

    std::shared_ptr<ov::Node>const std::shared_ptr<ov::Node>& register_new_node_();
    const std::vector<std::shared_ptr<ov::Node>>& get_new_nodes();
    void clear_new_nodes();
    std::shared_ptr<pattern::Matcher> get_matcher();

Detailed Documentation

SoftmaxFusion transformation replaces following graphs:

+---------------+
               
     input     
               
+---------------+
          
          v
     +-----------+
                
      ReduceMax 
                
     +-----------+
          
          
    v      v
+---------------+
               
      Sub      
               
+---------------+
        |
        |
        v
+---------------+
               
      Exp      
               
+---------------+
          
          v
     +-----------+
                
      ReduceSum 
                
     +-----------+
          
          
    v      v
 +-------------+
 |             
 |     Div     
              
 +-------------+

and +———— + │ │ │ input │ │ │ +———— +

v +———— + │ │ │ Exp │ │ │ +———— + │ │ │ v │ +——– + │ │ │ │ │ ReduceSum │ │ │ │ │ +——– + │ │ │ │ v v +———- + | │ | Div │ │ │ +———- +

to a single Softmax node

  • Restrictions:

    • ReduceMax and ReduceSum axes must be scalar constants and they have to point to the same axis