diff --git a/tensorflow/lite/interpreter_builder.cc b/tensorflow/lite/interpreter_builder.cc index 4249c85238e..dcf6705a892 100644 --- a/tensorflow/lite/interpreter_builder.cc +++ b/tensorflow/lite/interpreter_builder.cc @@ -163,6 +163,12 @@ TFLITE_ATTRIBUTE_WEAK Interpreter::TfLiteDelegatePtr AcquireFlexDelegate() { #endif void* lib_tf_internal = SharedLibrary::LoadLibrary(filename_pywrap_tensorflow_internal); +#if defined(_WIN32) + if (lib_tf_internal == nullptr) { + lib_tf_internal = SharedLibrary::LoadLibrary( + "_pywrap_tensorflow_interpreter_wrapper.pyd"); + } +#endif if (lib_tf_internal) { acquire_flex_delegate_func = reinterpret_cast<Interpreter::TfLiteDelegatePtr (*)()>( diff --git a/tensorflow/lite/shared_library.h b/tensorflow/lite/shared_library.h index a7bd91b3a0a..90b3dba3b70 100644 --- a/tensorflow/lite/shared_library.h +++ b/tensorflow/lite/shared_library.h @@ -36,6 +36,8 @@ class SharedLibrary { return reinterpret_cast<void*>( GetProcAddress(static_cast<HMODULE>(handle), symbol)); } + // Warning: Unlike dlsym(RTLD_DEFAULT), it doesn't search the symbol from + // dependent DLLs. static inline void* GetSymbol(const char* symbol) { return reinterpret_cast<void*>(GetProcAddress(nullptr, symbol)); }