ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
onert::ir::operation::ElementwiseActivation Class Reference

#include <ElementwiseActivation.h>

Collaboration diagram for onert::ir::operation::ElementwiseActivation:

Data Structures

struct  Param
 

Public Types

enum  Input { INPUT = 0 }
 
enum class  Type {
  ELU , LOGISTIC , RELU , TANH ,
  LEAKY_RELU , GELU
}
 

Public Member Functions

 ElementwiseActivation (const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param)
 
void accept (OperationVisitor &v) const override
 
std::string name () const override
 
OpCode opcode () const final
 
const Paramparam () const
 
- Public Member Functions inherited from onert::ir::Operation
 Operation (OperandConstraint input_constr, const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, OperandConstraint output_constr=OperandConstraint::createAny())
 
 Operation (OperandConstraint input_constr, OperandConstraint output_constr=OperandConstraint::createAny())
 
 Operation (const Operation &)=default
 
 Operation (Operation &&)=default
 
Operationoperator= (const Operation &)=default
 
Operationoperator= (Operation &&)=default
 
virtual ~Operation ()
 
void replaceInputs (const OperandIndex &from, const OperandIndex &to) override
 
void replaceOutputs (const OperandIndex &from, const OperandIndex &to) override
 
OperandIndexSequencegetInputs ()
 
const OperandIndexSequencegetInputs () const override
 
const OperandIndexSequencegetOutputs () const override
 
void setInputs (const OperandIndexSequence &indexes)
 
void setOutputs (const OperandIndexSequence &indexes)
 
- Public Member Functions inherited from onert::ir::IOperation
virtual ~IOperation ()=default
 

Static Public Attributes

static float infinity = std::numeric_limits<float>::infinity()
 

Detailed Description

Definition at line 25 of file ElementwiseActivation.h.

Member Enumeration Documentation

◆ Input

◆ Type

Constructor & Destructor Documentation

◆ ElementwiseActivation()

onert::ir::operation::ElementwiseActivation::ElementwiseActivation ( const OperandIndexSequence inputs,
const OperandIndexSequence outputs,
const Param param 
)

Definition at line 27 of file ElementwiseActivation.cc.

31{
33 {
34 assert(param.alpha == 0.0f && param.beta == 0.0f &&
35 "Logistic will be supported only as "
36 "sigmoid function(L=1, k=1, x0=0). So, do "
37 "not use alpha and beta");
38 }
39 else if (param.op_type == Type::RELU)
40 {
41 assert(param.alpha >= param.beta && "ReLU's alpha must be equal or greater than beta");
42 }
43 else if (param.op_type == Type::TANH)
44 {
45 assert(param.alpha == 1.0f && param.beta == 1.0f &&
46 "f(x) = alpha * tanh(beta * x), Tanh is "
47 "supported only the values of alpha and "
48 "beta are 1.f");
49 }
50}
static OperandConstraint createExact(uint32_t exact)

References onert::ir::operation::ElementwiseActivation::Param::alpha, onert::ir::operation::ElementwiseActivation::Param::beta, LOGISTIC, onert::ir::operation::ElementwiseActivation::Param::op_type, param(), RELU, and TANH.

Member Function Documentation

◆ accept()

void onert::ir::operation::ElementwiseActivation::accept ( OperationVisitor v) const
overridevirtual

Implements onert::ir::IOperation.

Reimplemented in onert::ir::train::operation::ElementwiseActivation.

Definition at line 25 of file ElementwiseActivation.cc.

25{ v.visit(*this); }

◆ name()

std::string onert::ir::operation::ElementwiseActivation::name ( ) const
overridevirtual

Reimplemented from onert::ir::IOperation.

Definition at line 52 of file ElementwiseActivation.cc.

53{
55 static const std::unordered_map<Type, std::string> name_map{
56 {ElementwiseActivationType::ELU, "ELU"},
57 {ElementwiseActivationType::LOGISTIC, "Logistic"},
58 {ElementwiseActivationType::RELU, "ReLU"},
59 {ElementwiseActivationType::TANH, "Tanh"},
60 {ElementwiseActivationType::LEAKY_RELU, "LeakyRelu"},
61 {ElementwiseActivationType::GELU, "GELU"}};
62 return name_map.at(_param.op_type);
63}

References onert::ir::operation::ElementwiseActivation::Param::op_type.

◆ opcode()

OpCode onert::ir::operation::ElementwiseActivation::opcode ( ) const
inlinefinalvirtual

Implements onert::ir::IOperation.

Definition at line 64 of file ElementwiseActivation.h.

64{ return OpCode::ElementwiseActivation; }

◆ param()

Field Documentation

◆ infinity

float onert::ir::operation::ElementwiseActivation::infinity = std::numeric_limits<float>::infinity()
inlinestatic

The documentation for this class was generated from the following files: