首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cpp tflite API在珊瑚开发板中的应用

cpp tflite API在珊瑚开发板中的应用
EN

Stack Overflow用户
提问于 2019-10-31 10:39:43
回答 1查看 457关注 0票数 0

我试图使用cpp tflite API来查询开发板上的模型。该代码是用usb棒进行测试的,工作正常,但是,在开发板上,我在这一行中得到了一个错误:

代码语言:javascript
复制
model_interpreter_ = coral::BuildEdgeTpuInterpreter(*model_, this->edgetpu_context_.get());

这是一个错误:

代码语言:javascript
复制
INFO: Initialized TensorFlow Lite runtime.
ERROR: Failed to retrieve TPU context.
ERROR: Node number 0 (edgetpu-custom-op) failed to prepare.

使用python可以使用相同的模型。

开发板上是否支持tflite cpp API?

在开发板上,我有最新的版本(12-1),这就是我构建tflite lib时所做的工作:

  1. 在本地为arm64构建tflite (使用构建通用脚本,不像描述的这里),我使用了分支v.2.0。*原因是缺乏虚拟内存和磁盘空间来构建开发板。
  2. 在安装的平板缓冲板上。

编辑:i能够在开发板上从tensorflow分支v2.0构建tflite,并更新为针对本地构建的库链接,仍然得到相同的错误.

编辑2: i能够用tflite编译的tf-r1.15复制相同的beaviour。此外,我还尝试添加一个可用tpus的num打印,这是由@Nam建议的。下面是一个代码片段:

代码语言:javascript
复制
cout << "check num available tpus\n";
    cout << available_tpus.size() << "\n";
    cout << "get edge session\n";
    this->edgetpu_context_ = edgetpu::EdgeTpuManager::GetSingleton()->OpenDevice();
    cout << "check num available tpus again:\n";
    cout << available_tpus.size() << "\n";
    cout << "get model buffer\n";
    this->model_ = tflite::FlatBufferModel::BuildFromFile(model_path.c_str());
    cout << "build model interpeter\n";
    this->model_interpreter_ = coral::BuildEdgeTpuInterpreter(*model_, this->edgetpu_context_.get());

其结果是:

代码语言:javascript
复制
Hello
check num available tpus
3689348814741910324
get edge session
check num available tpus again:
3689348814741910324
get model buffer
build model interpeter
Segmentation fault
EN

回答 1

Stack Overflow用户

发布于 2019-10-31 17:35:08

不知怎么没检测到tpu,你能试试这个吗:

代码语言:javascript
复制
const auto& available_tpus = edgetpu::EdgeTpuManager::GetSingleton()->EnumerateEdgeTpu();
cout << available_tpus.size() << "\n"; // hopefully we'll see 1 here

然后创建上下文:

代码语言:javascript
复制
std::shared_ptr<edgetpu::EdgeTpuContext> edgetpu_context =
          edgetpu::EdgeTpuManager::GetSingleton()->OpenDevice(
            available_tpus[0].type, available_tpus[0].path);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58641551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档