Program Listing for File layer_norm_fusion.h

Return to documentation for file (include/converter/include/infer/cxx_api/layer_norm_fusion.h)

#ifndef MINDSPORE_CORE_OPS_LAYER_NORM_FUSION_H_
#define MINDSPORE_CORE_OPS_LAYER_NORM_FUSION_H_
#include <memory>
#include <vector>

#include "mindapi/base/types.h"
#include "ops/base_operator.h"
#include "abstract/abstract_value.h"

namespace mindspore {
namespace ops {
constexpr auto kNameLayerNormFusion = "LayerNormFusion";
class OPS_API LayerNormFusion : public BaseOperator {
 public:
  MIND_API_BASE_MEMBER(LayerNormFusion);
  LayerNormFusion() : BaseOperator(kNameLayerNormFusion) {}

  void Init(const int64_t begin_norm_axis = 1, const int64_t begin_params_axis = 1, const float epsilon = 1e-7,
            const bool elementwise_affine = false);

  void set_begin_norm_axis(const int64_t begin_norm_axis);
  void set_begin_params_axis(const int64_t begin_params_axis);
  void set_epsilon(const float epsilon);
  int64_t get_begin_norm_axis() const;
  int64_t get_begin_params_axis() const;
  float get_epsilon() const;

  void set_elementwise_affine(const bool elementwise_affine);

  bool get_elementwise_affine() const;
};

abstract::AbstractBasePtr LayerNormFusionInfer(const abstract::AnalysisEnginePtr &, const PrimitivePtr &primitive,
                                               const std::vector<abstract::AbstractBasePtr> &input_args);
}  // namespace ops
}  // namespace mindspore

#endif  // MINDSPORE_CORE_OPS_LAYER_NORM_FUSION_H_