Arm-ethosunpu的神经网络模型编译器

ethos-u-vela的Python项目详细描述


贝拉

此工具用于编译 TensorFlow Lite for Microcontrollers 神经网络模型变成一个优化版本,可以运行在一个嵌入式 包含 Arm Ethos-U NPU。在

为了加速Ethos-U NPU,网络运营商必须 量化为8位(无符号或有符号)或16位(有符号)。在

优化后的模型将包含TensorFlow Lite自定义运算符 模型中可以被etos-U NPU加速的部分。部分 无法加速的模型将保持不变,而将在 Cortex-M系列CPU使用适当的内核(如 Arm优化 CMSIS-NN 果仁)。在

编译后,优化模型只能在etos-U NPU上运行 嵌入式系统。在

该工具还将为 编译模型。在

张力流支架

Vela支持TensorFlow 2.3.0

环境

Vela运行在Linux操作系统上。在

先决条件

在安装Vela之前,应安装以下部件:

  • Python>;=3.6
  • Pip3
  • GNU工具链(GCC、Binutils和库)

也可以选择:

  • Pipenv虚拟环境工具

安装

Vela可作为软件包从 PyPi,或as 源代码来自 ML Platform。 这两种方法都将自动安装所有必需的依赖项。在

PyPi

使用以下命令从PyPi安装Vela:

pip3 install ethos-u-vela

ML平台

从第一个文件下载:
https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela

或者通过克隆git存储库:

^{pr2}$

一旦有了源代码,就可以使用以下命令安装Vela 命令:

pip3 install -U setuptools>=40.1.0
pip3 install .

或者,如果使用pipenv

pipenv install .

面向开发人员的高级安装

如果您计划修改Vela代码库,那么建议安装Vela 作为一个可编辑的软件包,以避免每次修改后都需要重新安装。 通过将-e选项添加到上面的install命令中,如下所示:

pip3 install -e .

或者,如果使用pipenv

pipenv install -e .

如果你打算为Vela项目捐款(强烈鼓励!)那就是了 建议与预提交工具一起安装Vela(请参见 Vela Testing获取更多详细信息)。在

mlw_codec

作为安装过程的一部分,Vela将编译一个基于C的模块。在

用于此模块的生成标志如下:

-Wall -Werror -Wno-unused-function -Wno-unused-variable

跑步

Vela是通过命令行传递的输入.tflite文件运行的。这个文件 包含要编译的神经网络。然后,工具将输出一个经过优化的 带有_vela.tflite文件前缀的版本,以及性能评估 (实验)CSV文件,全部到输出目录。在

如果使用pipenv虚拟环境工具,则首先从生成 虚拟环境中的shell:

pipenv shell

之后,无论你是否在虚拟环境中,运行Vela都是一样的 环境与否。在

用法示例:

  1. 编译网络my_model.tflite。将输出经过优化的版本 到./output/my_network_vela.tflite。在
vela my_model.tflite
  1. 编译网络/path/to/my_model.tflite并指定要执行的输出 在目录./results_dir/中。在
vela --output-dir ./results_dir /path/to/my_model.tflite
  1. 使用特定的etos-U NPU编译一个网络。以下命令 选择一个配置了512个MAC单元的etos-U65 NPU加速器。在
vela --accelerator-config ethos-u65-512 my_model.tflite
  1. 使用中定义的特定嵌入式系统配置编译网络 Vela的配置文件。下面的命令选择My_Sys_Config {{cd14>与配置文件一起使用。在
vela --config vela_cfg.ini --system-config My_Sys_Config --memory-mode My_Mem_Mode my_model.tflite
  1. 要获取所有可用选项的列表:
vela --help

有关Vela的所有CLI选项以及系统配置的信息 文件格式可以是d在Vela Options中。在

外部API

Vela提供了一个低级的外部API来支持etos-U代码的生成 其他工具。请看Vela External APIs。在

示例网络

一些包含量化运算符的示例网络,可以通过 在Ethos-U NPU上运行的Vela可在以下网址找到: https://tfhub.dev/s?deployment-format=lite&q=quantized

支持的运算符

{a12支持的列表请参见} 此版本中的运算符。在

测试

请看Vela Testing。在

捐款

请看Vela Contributions。在

安全

请看Vela Security。在

释放

请看Vela Releases。在

资源

其他有用信息:

许可证

Vela是根据Apache License 2.0授权的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么这个循环打印1020之间的所有值?我想让它打印出可以被5整除的值   java如何在JTable中集中单元格   java无法通过一个键从hashmap获取对象,该键具有相同的hashcode,并且两个键等于()   不兼容的类型?JAVA   将字符串开头与空格匹配时java replaceAll的正则表达式混淆结果   java为非java应用程序创建jar文件。类文件   java无法从另一个普通Http Servlet访问筛选器Servlet的会话属性   java Ejb,第二个方法中的错误回滚第一个方法   swing java操作侦听器在菜单上,而不是在菜单项上   分析文件时出错:分析文件时出错:无法在Java的XSSF中分析excel文件   java将实体注入到ViewScope Bean中   java如何关闭终端而不终止正在运行的jar文件进程   爪哇力下传   java不能隐式地将[T]强制转换为AT,其中[T]扩展为AT   java Spring项目在jsp页面中显示mysql表数据   java在创建新实例SQLITE时出错