| 261 | } |
| 262 | |
| 263 | TfLiteDriver::TfLiteDriver(DelegateType delegate_type, bool reference_kernel) |
| 264 | : delegate_(nullptr, nullptr), |
| 265 | relative_threshold_(kRelativeThreshold), |
| 266 | absolute_threshold_(kAbsoluteThreshold) { |
| 267 | if (reference_kernel) { |
| 268 | resolver_.reset(new ops::builtin::BuiltinRefOpResolver); |
| 269 | } else { |
| 270 | resolver_.reset(new ops::builtin::BuiltinOpResolver); |
| 271 | ops::builtin::BuiltinOpResolver* buildinop_resolver_ = |
| 272 | reinterpret_cast<ops::builtin::BuiltinOpResolver*>(resolver_.get()); |
| 273 | buildinop_resolver_->AddCustom("RFFT2D", |
| 274 | tflite::ops::custom::Register_RFFT2D()); |
| 275 | } |
| 276 | |
| 277 | switch (delegate_type) { |
| 278 | case DelegateType::kNone: |
| 279 | break; |
| 280 | case DelegateType::kNnapi: |
| 281 | delegate_ = evaluation::CreateNNAPIDelegate(); |
| 282 | break; |
| 283 | case DelegateType::kGpu: |
| 284 | delegate_ = evaluation::CreateGPUDelegate(/*model=*/nullptr); |
| 285 | break; |
| 286 | case DelegateType::kFlex: |
| 287 | delegate_ = Interpreter::TfLiteDelegatePtr( |
| 288 | FlexDelegate::Create().release(), [](TfLiteDelegate* delegate) { |
| 289 | delete static_cast<tflite::FlexDelegate*>(delegate); |
| 290 | }); |
| 291 | break; |
| 292 | } |
| 293 | } |
| 294 | |
| 295 | TfLiteDriver::~TfLiteDriver() { |
| 296 | for (auto t : tensors_to_deallocate_) { |
nothing calls this directly
no test coverage detected