Program Listing for File layer_norm_fusion.h

Return to documentation for file (include/converter/include/ops/fusion/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/layer_norm.h"

namespace mindspore {
namespace ops {
constexpr auto kNameLayerNormFusion = "LayerNormFusion";
class MIND_API LayerNormFusion : public LayerNorm {
 public:
  MIND_API_BASE_MEMBER(LayerNormFusion);
  LayerNormFusion() : LayerNorm(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_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_