From 696102807d1db5e7119fdf21ab2f392eed69525c Mon Sep 17 00:00:00 2001 From: Renjie Liu Date: Tue, 10 Nov 2020 20:00:26 -0800 Subject: [PATCH] Expose the TfLiteDelegateFlags params for simple delegate creation. This allows more flexibility for example users want to implement a delegate takes in custom op. PiperOrigin-RevId: 341749773 Change-Id: I89ece3af61750fded53c810d3aa63ba0aafb9740 --- tensorflow/lite/delegates/utils/simple_delegate.cc | 4 ++-- tensorflow/lite/delegates/utils/simple_delegate.h | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tensorflow/lite/delegates/utils/simple_delegate.cc b/tensorflow/lite/delegates/utils/simple_delegate.cc index 5eb2e319b94..9746e6d8dfb 100644 --- a/tensorflow/lite/delegates/utils/simple_delegate.cc +++ b/tensorflow/lite/delegates/utils/simple_delegate.cc @@ -113,13 +113,13 @@ TfLiteStatus DelegatePrepare(TfLiteContext* context, } // namespace TfLiteDelegate* TfLiteDelegateFactory::CreateSimpleDelegate( - std::unique_ptr simple_delegate) { + std::unique_ptr simple_delegate, int64_t flag) { if (simple_delegate == nullptr) { return nullptr; } auto delegate = new TfLiteDelegate(); delegate->Prepare = &DelegatePrepare; - delegate->flags = kTfLiteDelegateFlagsNone; + delegate->flags = flag; delegate->CopyFromBufferHandle = nullptr; delegate->CopyToBufferHandle = nullptr; delegate->FreeBufferHandle = nullptr; diff --git a/tensorflow/lite/delegates/utils/simple_delegate.h b/tensorflow/lite/delegates/utils/simple_delegate.h index 338633d92e0..58b9ddb791a 100644 --- a/tensorflow/lite/delegates/utils/simple_delegate.h +++ b/tensorflow/lite/delegates/utils/simple_delegate.h @@ -114,8 +114,12 @@ class TfLiteDelegateFactory { public: // Creates TfLiteDelegate from the provided SimpleDelegateInterface. // The returned TfLiteDelegate should be deleted using DeleteSimpleDelegate. + // A simple usage of the flags bit mask: + // CreateSimpleDelegate(..., kTfLiteDelegateFlagsAllowDynamicTensors | + // kTfLiteDelegateFlagsRequirePropagatedShapes) static TfLiteDelegate* CreateSimpleDelegate( - std::unique_ptr simple_delegate); + std::unique_ptr simple_delegate, + int64_t flags = kTfLiteDelegateFlagsNone); // Deletes 'delegate' the passed pointer must be the one returned // from CreateSimpleDelegate.