19#include "kernels/Utils.h"
21#include <tensorflow/lite/kernels/internal/reference/pad.h>
42 throw std::runtime_error(
"Unsupported number of dimensions.");
44 assert(
output()->element_type() ==
input()->element_type());
45 assert(
paddings()->element_type() == DataType::S32);
48 assert(
paddings()->shape().num_dims() == 2);
49 assert(
paddings()->shape().dim(0) == num_dims);
50 assert(
paddings()->shape().dim(1) == 2);
56 for (
int i = 0;
i < num_dims; ++
i)
60 assert(padding_before >= 0 && padding_after >= 0);
71 tflite::PadParams params{};
72 params.left_padding_count = num_dims;
73 params.right_padding_count = num_dims;
76 for (
int i = num_dims - 1;
i >= 0; --
i)
82 switch (
input()->element_type())
84 case DataType::FLOAT32:
94 assert(
output()->zero_point() >= std::numeric_limits<uint8_t>::min());
95 assert(
output()->zero_point() <= std::numeric_limits<uint8_t>::max());
103 throw std::runtime_error(
"luci-intp PadV2 Unsupported type.");
void resize(const Shape &new_shape)
const Shape & shape() const
const Tensor * input() const
const Tensor * constant_values() const
void configure() override
PadV2(const Tensor *input, const Tensor *paddings, const Tensor *constant_values, Tensor *output)
const Tensor * paddings() const
void execute() const override
const luci_interpreter::RuntimeShape output_shape
tflite::RuntimeShape getTensorShape(const Tensor *tensor)
T must_cast(loco::Node *node)