linux cpu占用率如何看
241
2022-11-07
Python的PyCoral迎来多项更新,为边缘AI注入更多精彩
libcoral (C++)
使用新的 libcoral 库在 C++ 中执行推理时,开发者通常应该遵循以下模式:
1. 使用 Edge TPU 上下文创建 tflite::Interpreter 实例并分配内存
为简化这一步骤,libcoral 提供了 MakeEdgeTpuInterpreter() 函数:
2. 配置 interpreter 的输入
3. 调用 interpreter:
interpreter->Invoke();
4. 处理 interpreter 的输出
为简化这一步骤,libcoral 提供了一些适配器,所需的代码更少:
auto result = coral::GetClassificationResults( *interpreter, /* threshold= */0.0f, /*top_k=*/3);
上方是分类适配器的示例,开发者可以在其中指定最小置信度阈值,以及返回结果的数量上限。该 API 还具有一个检测适配器,该适配器拥有自己的结果过滤参数。
如需查看完整的示例应用源代码,请参阅 GitHub 上的 classify_image.cc,如需获取有关如何将 libcoral 集成到应用中的说明,请参考 GitHub 上的 README.md。
我们还在此次的新版本中带来了对设备端再训练的更新,能够在更新的 ImprintingEngine 上将 imprinting 函数与推理解耦。新的设计让 imprinting 引擎能够直接与 tflite::Interpreter 一起使用。
PyCoral (Python)
新的 PyCoral 库(在新的 pycoral Python 模块中提供)遵循了 libcoral 引入的一些设计模式,并为我们的 C++ 和 Python API 带来了平衡。PyCoral 为分类和检测以及基于相同标签的 TPU 语义寻址设计了相同的 imprinting 解耦设计和模型适配器。
要使用 PyCoral 执行推理,我们可以遵循与 libcoral 类似的模式:
1. 创建 interpreter:
interpreter = edgetpu.make_interpreter(model_file) interpreter.allocate_tensors()
2. 配置 interpreter 的输入:
common.set_input(interpreter, image)
3. 调用 interpreter:
interpreter.invoke()
4. 处理 interpreter 的输出:
classes = classify.get_classes(interpreter, top_k=3)
Coral Model Garden 更新
在这一版本中,我们通过 MobileDet 进一步扩展了 Coral Model Garden。MobileDet 指的是使用 TensorFlow 对象检测 API 的轻量级单发检测器系列,该系列在 Edge TPU 上实现了最先进的精度和延迟权衡。与 MobileNet 系列模型相比,MobileDet 是一种低延迟的检测模型,具有更高的准确性。
将我们的整个工作流和模型集合迁移到 TensorFlow 2 是一项长期工作。从这个版本的 Coral 机器学习 API 开始,我们将引入对基于 TensorFlow 2 的工作流的支持。目前,MobileNet v1 (ImageNet)、MobileNet v2 (ImageNet)、MobileNet v3 (ImageNet)、ResNet50 v1 (ImageNet) 和 UNet MobileNet v2 (Oxford pets) 均支持使用 TensorFlow 2 进行训练和转换。
Model Pipelining
libcoral 和 PyCoral 都已将 Model Pipelining 功能从测试状态升级到正式使用状态。借助 Model Pipelining 功能,我们能够分割大型模型,然后将其分配到多个 Edge TPU 上,从而大大加快模型的运行速度。
请参考对应文档以查看该 API 的 C++ 和 Python 版本示例。
我们会通过 Edge TPU 编译器完成模型分割,该编译器采用参数计数算法,可将模型分割成参数大小相近的片段。对于此算法无法提供所需吞吐量的情况,我们在这一版本中引入了一个新工具,该工具支持基于分析的算法,通过实际多次运行模型,然后根据观察到的延迟来划分片段,因此可能会得到更平衡的输出。
新的 profiling_partition 工具可以这样使用:
./profiling_partition --edgetpu_compiler_binary $PATH_TO_COMPILER --model_path $PATH_TO_MODEL --output_dir $OUT_DIR --num_segments $NUM_SEGMENTS
了解详情
如需了解有关上述 Coral API 的详细信息,请参阅以下文档:
原文标题:Coral 迎来多项更新,为边缘 AI 注入更多精彩!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~