MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / TanhEval

Function TanhEval

tensorflow/lite/kernels/activations.cc:698–766  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

696
697template <KernelType kernel_type>
698TfLiteStatus TanhEval(TfLiteContext* context, TfLiteNode* node) {
699 OpData* data = reinterpret_cast<OpData*>(node->user_data);
700 const TfLiteTensor* input = GetInput(context, node, 0);
701 TfLiteTensor* output = GetOutput(context, node, 0);
702 switch (input->type) {
703 case kTfLiteFloat32: {
704 if (kernel_type == kReference) {
705 reference_ops::Tanh(GetTensorShape(input), GetTensorData<float>(input),
706 GetTensorShape(output),
707 GetTensorData<float>(output));
708 } else {
709 optimized_ops::Tanh(GetTensorShape(input), GetTensorData<float>(input),
710 GetTensorShape(output),
711 GetTensorData<float>(output));
712 }
713 return kTfLiteOk;
714 } break;
715 case kTfLiteInt16: {
716 TanhParams params;
717 params.input_left_shift = data->input_left_shift;
718 if (kernel_type == kReference) {
719 reference_ops::Tanh(
720 params, GetTensorShape(input), GetTensorData<int16_t>(input),
721 GetTensorShape(output), GetTensorData<int16_t>(output));
722 } else {
723 optimized_ops::Tanh(
724 params, GetTensorShape(input), GetTensorData<int16_t>(input),
725 GetTensorShape(output), GetTensorData<int16_t>(output));
726 }
727 return kTfLiteOk;
728 } break;
729 case kTfLiteUInt8: {
730 if (kernel_type == kFixedPointOptimized) {
731 TanhParams params;
732 params.input_zero_point = input->params.zero_point;
733 params.input_range_radius = data->input_range_radius;
734 params.input_multiplier = data->input_multiplier;
735 params.input_left_shift = data->input_left_shift;
736 optimized_ops::Tanh16bitPercision(
737 params, GetTensorShape(input), GetTensorData<uint8_t>(input),
738 GetTensorShape(output), GetTensorData<uint8_t>(output));
739 } else {
740 EvalUsingLookupTable<uint8_t>(data, input, output);
741 }
742 return kTfLiteOk;
743 } break;
744 case kTfLiteInt8: {
745 if (kernel_type == kFixedPointOptimized) {
746 TanhParams params;
747 params.input_zero_point = input->params.zero_point;
748 params.input_range_radius = data->input_range_radius;
749 params.input_multiplier = data->input_multiplier;
750 params.input_left_shift = data->input_left_shift;
751 optimized_ops::Tanh16bitPercision(
752 params, GetTensorShape(input), GetTensorData<int8_t>(input),
753 GetTensorShape(output), GetTensorData<int8_t>(output));
754 } else {
755 EvalUsingLookupTable<int8_t>(data, input, output);

Callers

nothing calls this directly

Calls 7

GetInputFunction · 0.85
GetOutputFunction · 0.85
Tanh16bitPercisionFunction · 0.85
TfLiteTypeGetNameFunction · 0.85
TanhFunction · 0.50
GetTensorShapeFunction · 0.50
ReportErrorMethod · 0.45

Tested by

no test coverage detected