43 const auto input_map =
MapAsVector(input_data, input_shape);
49 output_map.array() = 0.5f * input_map.array() *
51 (input_map.array() + 0.044715f * input_map.array().cube()))
59 const float neg_sqrt1_2 = -
static_cast<float>(M_SQRT1_2);
60 auto x = input_map.array();
61 auto x_scaled = x * neg_sqrt1_2;
62 auto erfc_x_scaled = x_scaled.matrix().unaryExpr([](
float val) {
return erfcf(val); });
63 output_map.array() = 0.5f * x * erfc_x_scaled.array();
void GELU(const GELUParams ¶ms, const Shape &input_shape, const float *input_data, const Shape &output_shape, float *output_data)