#include "tflite_ops/tflite_qrnn_pooling.h"
#include "tflite_ops/quantization_util.h"
namespace seq_flow_lite {
namespace ops {
namespace custom {
namespace {
const uint8_t kPoolingUInt8Forward = …;
const int8_t kPoolingInt8Forward = …;
const float kPoolingFloatForward = …;
TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { … }
template <typename T>
TfLiteStatus QRNNPooling(TfLiteContext* context,
TfLiteTensor* multiplier,
TfLiteTensor* constant,
TfLiteTensor* outputs,
TfLiteTensor* final_state,
bool forward) { … }
template <>
TfLiteStatus QRNNPooling<float>(TfLiteContext* context,
TfLiteTensor* multiplier,
TfLiteTensor* constant,
TfLiteTensor* outputs,
TfLiteTensor* final_state,
bool forward) { … }
TfLiteStatus Invoke(TfLiteContext* context, TfLiteNode* node) { … }
}
const char kPoolingOp[] = …;
void RegisterQRNNPooling(::tflite::ops::builtin::BuiltinOpResolver* resolver) { … }
TfLiteRegistration* Register_QRNN_POOLING() { … }
}
}
}