在 EDge TPU USB 上运行分类推理,无需每次都重新加载模型

Posted

技术标签:

【中文标题】在 EDge TPU USB 上运行分类推理,无需每次都重新加载模型【英文标题】:Running classification inference on EDge TPU USB without reloading model every time 【发布时间】:2020-06-14 19:37:34 【问题描述】:

我对 Tensor Flow / Edge TPU 的使用非常陌生。 虽然我设法使用分类图像.py 脚本运行图像分类 它在 Edge TPU USB 模块上的性能非常差,因为它总是加载模型并重新启动设备(您会看到 Win10 设备管理器在每次运行脚本时重新安装它)。 有什么方法可以运行 python 脚本,用 USB 加密狗中最后加载的模型对图像进行分类,避免 3-5 秒的设备配置时间?

【问题讨论】:

能否请您更新问题,详细说明任务是什么、您的设置/流程是什么、预期的结果是什么、您的结果是什么。这将使人们能够理解问题并为您提供有用的建议,而不是可能对您的用例完全没有帮助的随机信息。什么是分类图像.py?我认为需要对该主题有一些了解,但指出您正在使用的资源(例如源代码、文档等)仍然不会有什么坏处。 我遵循了来自 Coral 的示例:[链接]coral.ai/docs/accelerator/get-started,但使用了我自己的张量流编译模型。正如我所说,这可以按预期工作,但我需要使用不同的图片重新运行脚本,而不是每次都重新加载模型,从而导致 5 秒的设备配置延迟。 我想做的是:pythonclassify_image.py --model Mymodel.tflite --labels Mylabels.txt --input 1stpicture.bmp (需要5秒,没问题) python reclassify --输入 2ndpicture.bmp(不应该超过几毫秒)所以我在这里寻找“重新分类”脚本。 【参考方案1】:

通常,您应该先加载模型并存储它。然后当你使用它来调用时,你只需要分配张量,然后将输入传递给它。您可以将脚本保持在 while 循环中等待您的输入(即通过 websocket 发送,...或加载目录)。但是根据我所看到的,您必须将图像自行加载到模型中,因此很难将 TPU 的固定部分自行分配给您的模型。

【讨论】:

以上是关于在 EDge TPU USB 上运行分类推理,无需每次都重新加载模型的主要内容,如果未能解决你的问题,请参考以下文章

Edge TPU 编译器:错误:quantized_dimension 必须在 [0, 1) 范围内。是 3

全新 AIY Edge TPU 开发板惊艳亮相

使用 TPU 运行时在 Google Colab 上训练 Keras 模型时出错

模型推理一文看懂 Google TPU 脉动阵列加速卷积计算原理

彻底理解算法训练和部署流程

在移动设备上运行循环神经网络(推理)的最快方法