【发布时间】:2020-12-13 08:49:08
【问题描述】:
我有 Android 本机代码(C++ 共享对象),想在创建 APK 时将 read 模型文件保存在 assets 文件夹中。
Tensorflow Lite 有两个 API:FromFile 和 FromBuffer
static std::unique_ptr<FlatBufferModel> BuildFromFile(const char* filename, ErrorReporter* error_reporter);
static std::unique_ptr<FlatBufferModel> BuildFromBuffer(const char* buffer, size_t buffer_size, ErrorReporter* error_reporter);
使用以下代码我可以访问 FromBuffer:
Java代码:
private AssetManager mgr;
// Get mgr
mgr = getResources().getAssets();
C++代码:
AAssetDir* assetDir = AAssetManager_openDir(mgr, "");
const char* filename = (const char*)NULL;
while ((filename = AAssetDir_getNextFileName(assetDir)) != NULL) {
AAsset* asset = AAssetManager_open(mgr, filename, AASSET_MODE_STREAMING);
char buf[BUFSIZ];
int nb_read = 0;
FILE* out = fopen(filename, "w");
while ((nb_read = AAsset_read(asset, buf, BUFSIZ)) > 0)
fwrite(buf, nb_read, 1, out);
fclose(out);
AAsset_close(asset);
}
AAssetDir_close(assetDir);
任何想法,如何访问assets文件夹以使用BuildFromFile?
【问题讨论】:
标签: android c++ tensorflow android-ndk tensorflow-lite