InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
elu.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_ELU_H_
2#define INFINI_OPS_BASE_ELU_H_
3
4#include "operator.h"
5
6namespace infini::ops {
7
8class Elu : public Operator<Elu> {
9 public:
10 Elu(const Tensor input, const double alpha, Tensor out)
11 : input_shape_{input.shape()},
12 input_strides_{input.strides()},
13 input_type_{input.dtype()},
14 out_shape_{out.shape()},
15 out_strides_{out.strides()},
16 out_type_{out.dtype()},
17 alpha_{alpha},
18 scale_{1.0},
19 input_scale_{1.0},
20 device_index_{out.device().index()} {}
21
24 [[deprecated("Use the `(input, alpha, out)` overload instead.")]]
25 Elu(const Tensor input, const double alpha, const double scale,
26 const double input_scale, Tensor out)
27 : input_shape_{input.shape()},
28 input_strides_{input.strides()},
29 input_type_{input.dtype()},
30 out_shape_{out.shape()},
31 out_strides_{out.strides()},
32 out_type_{out.dtype()},
33 alpha_{alpha},
34 scale_{scale},
35 input_scale_{input_scale},
36 device_index_{out.device().index()} {}
37
38 void operator()(const Tensor input, const double alpha, Tensor out) const {
39 return operator()(input, alpha, 1.0, 1.0, out);
40 }
41
44 [[deprecated("Use `operator()(input, alpha, out)` instead.")]]
45 virtual void operator()(const Tensor input, const double alpha,
46 const double scale, const double input_scale,
47 Tensor out) const = 0;
48
49 protected:
50 Tensor::Shape input_shape_;
51
52 Tensor::Strides input_strides_;
53
54 DataType input_type_;
55
56 Tensor::Shape out_shape_;
57
58 Tensor::Strides out_strides_;
59
60 DataType out_type_;
61
62 double alpha_{};
63
64 double scale_{};
65
66 double input_scale_{};
67
69};
70
71} // namespace infini::ops
72
73#endif
Definition elu.h:8
double alpha_
Definition elu.h:62
Tensor::Shape out_shape_
Definition elu.h:56
double scale_
Definition elu.h:64
Elu(const Tensor input, const double alpha, Tensor out)
Definition elu.h:10
DataType input_type_
Definition elu.h:54
void operator()(const Tensor input, const double alpha, Tensor out) const
Definition elu.h:38
DataType out_type_
Definition elu.h:60
virtual void operator()(const Tensor input, const double alpha, const double scale, const double input_scale, Tensor out) const =0
Tensor::Shape input_shape_
Definition elu.h:50
Tensor::Strides input_strides_
Definition elu.h:52
double input_scale_
Definition elu.h:66
int device_index_
Definition elu.h:68
Elu(const Tensor input, const double alpha, const double scale, const double input_scale, Tensor out)
Definition elu.h:25
Tensor::Strides out_strides_
Definition elu.h:58
Definition generated/include/operator.h:282
Definition generated/include/operator.h:28
infini::rt::TensorView Tensor
Definition tensor.h:8