@@ -14,12 +14,8 @@ limitations under the License.
1414==============================================================================*/
1515
1616#include " tensorflow/lite/c/builtin_op_data.h"
17+ #include " tensorflow/lite/c/c_api_types.h"
1718#include " tensorflow/lite/c/common.h"
18- #include " tensorflow/lite/kernels/internal/common.h"
19- #include " tensorflow/lite/kernels/internal/quantization_util.h"
20- #include " tensorflow/lite/kernels/internal/reference/conv.h"
21- #include " tensorflow/lite/kernels/internal/reference/integer_ops/conv.h"
22- #include " tensorflow/lite/kernels/internal/tensor_ctypes.h"
2319#include " tensorflow/lite/kernels/kernel_util.h"
2420#include " tensorflow/lite/kernels/padding.h"
2521#include " tensorflow/lite/micro/kernels/conv.h"
@@ -188,6 +184,15 @@ TfLiteStatus ConvPrepare(TfLiteContext* context, TfLiteNode* node) {
188184 context, node, params, input_width, input_height, filter_width,
189185 filter_height, output_width, output_height, input->type , data));
190186
187+ if (filter->type == kTfLiteInt4 ) {
188+ int filter_size =
189+ RuntimeShape (filter->dims ->size ,
190+ reinterpret_cast <const int32_t *>(filter->dims ->data ))
191+ .FlatSize ();
192+ context->RequestScratchBufferInArena (context, filter_size,
193+ &data->filter_buffer_index );
194+ }
195+
191196 micro_context->DeallocateTempTfLiteTensor (filter);
192197 micro_context->DeallocateTempTfLiteTensor (input);
193198 micro_context->DeallocateTempTfLiteTensor (output);
0 commit comments