Compass Unified Parser 是为将多种不同框架的模型转化成一种浮点中间表示(IR)而设计的, 这种IR是由安谋中国设计的一种标准的IR,用于周易系列的神经网络编译器。
Parser 的主要目标是将一个训练好的模型转换成浮点IR喂给OPT(优化器)。如下是Parser的主要处理流程:
detectionoutput
节点转换为 detectbox
和 nms
节点。conv
和 add
到一个节点。conv/fc
节点和 batchnorm
节点 到一个节点。transpose
节点。Graph
和 Node
的设计在Parser里面,和其他框架类似,我们使用 Graph
和 Node
来表征一个模型,使用一个链表来表征一个图。 Graph
只保存所有节点,节点间的拓扑关系是保存在一个 Node
和另一个 Node
连接上。 Node
表征 IR里的层概念(layer), Node
可以通过调用 serialize
方法来序列化成一个字串。
Parser 是 Compass AIPUBuilder(NN-Compiler) 编译器的一部分。 你可以参考如下Compass AIPUBuilder的指引来安装AIPUBuilder。 完成AIPUBuilder的安装后, Parser 也会被安装并且可以直接使用。
你也可以通过Compass_Integration中的指引来编译一个包含Parser的AIPUBuilder。关于AIPUBuilder的使用说明,请参考MiniPkg里面的说明书:Zhouyi_Compass_Software_Programming_Guide_61010011_0205_01_en.pdf。
初除此之外,Parser可以单独运行。只要满足如下的依赖,就可以直接运行 main.py
文件来运行Parser。
Parser是以配置文件为输入驱动的,你可以使用如下实例来运行Parser
python3 main.py -c my_config.ini
所有的选项必须在 Common
段里面:
input_shape
[required]
输入张量的形状。常间的模型只有一个输入张量,如:input_shape=[1,224,224,3]
如果你有多个输入张量,使用英文逗号分隔,如: input_shape=[1,224,224,3],[1,112,112,3]
model_name
[required]
输入模型的名称
model_type
[optional]
输入模型的框架,默认是tensorflow,目前支持:
tensorflow
tflite
onnx
caffe
model_domain
[required]
模型的分类,例如:
image_classification
object_detection
keyword_spotting
speech_recognition
detection_postprocess
[required 当 model_domain
是 object_detection
]
如果你的模型是object_detection
,并且你使用的是官方的模型,你可以选择如下两种后处理方式,我们将在结束出添加相应的后处理节点:
caffe_fasterrcnn
ssd
ssd_resnet
yolo2
yolo3_tiny
yolo3_full
input_model
[required]
输入模型的文件路径,当前支持tensorflow frozen pb, tflite, caffe and onnx 格式。
input
[required]
输入节点(或张量)的名称,如果有多个输入,使用英文逗号,
分隔。
output
[required]
输出节点(或张量)名称,如果有多个输出,使用英文逗号,
分隔。
[Common] input_shape = [1,224,224,3] model_name = resnet50 model_domain = image_classification detection_postprocess = input_model = resnet50/frozen.pb input = Placeholder output = resnet_v1_50/predictions/Reshape
更多示例请参考 examples。
首先,你需要下载相应的原始模型。你可以通过examples下面的download_model.sh脚本来下载。
sh examples/tensorflow/download_model.sh
然后配置example.cfg文件里的相应的输入输出
[Common] model_type = tensorflow model_name = gru_l model_domain = image_classification input_model = ./GRU_L.pb input = Mfcc:0 input_shape = [1, 49, 10] output = labels_softmax:0 output_dir = ./
运行 run_example.py
--framework
[optional]
指定相应的示例,默认是tensorflow。
--input_data
[optional]
指定相应的输入数据,如果没有指定将使用随机数据。
python3 run_example.py --framework [specify example] --input_data [specify feed data]
错误是: 方法引发了'java.lang.NullPointerException'异常。无法计算pl.netizens.eonbeacon.storage.eonbeaconmodel.ToString() Eeid,Eeid模型:
我使用maven管理依赖关系。我需要使用斯坦福NLP解析器来获得英语句子的通用依赖关系。我使用的是edu/stanford/nlp/models/lexparser/englishpcfg.ser.gz模型。我的pom.xml包含以下内容 通过添加模型依赖项,jar大小增加了大约300MB。我需要确保罐子越小越好。在maven中有什么方法可以处理这个吗?
基本概念 MOSN 中的概念比较多,以sofarpc-sample下面的config.json为例,结合上图依次看下: Downstream:调用端的数据流向统称。 Upstream:服务端的数据流向统称。 clientListener:用于接收调用端(业务进程)请求数据的监听端口。 serverListener:作为服务端流量代理,用于接收调用端的请求 clientCluster:服务提供者的地
本文向大家介绍JavaScript设计模型Iterator实例解析,包括了JavaScript设计模型Iterator实例解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JavaScript设计模型Iterator实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator Pattern是一个很重要也很简单的Patt
我试图寻找此错误的解决方案,但仍然无法使用类,因此我尝试手动进行导入,但只能看到三个类、和。 在中查看时,我可以看到文件,在打开JAR时,我还可以看到类pattern.class。 有人能帮助Eclipse为什么看不到这个类吗?
本节课通过一个案例来展示Threejs如何加载并播放外部模型中的帧动画数据。 关键帧数据 如果有兴趣,你可以打开模型文件model.json查看里面与帧动画有关的关键帧数据。 "object": { // 绑定动画的模型名称Box "name": "Box", ... }, // 动画数据 "animations": [{ "name": "default", "fps": 24,
解释器模式 解释器模式虽然听上去有些费解,但是如果用示例说明一下就不难理解了。我们知道在C语言中,关于变量的定义是这样的:一个不以数字开始的由字母、数字和下划线构成的字符串。这种形式的表达式可以用状态自动机解决,当然也可以用解释器的方式解决。 typedef struct _Interpret { int type; void* (*process)(void* pDa
在程序集的schemaLanguage后面是“http://www.w3.org/xml/xmlschema/v1.1”,newSchema()返回类型为{org.apache.xerces.jaxp.validation.simplexmlschema}的模式。我无法导入该类,错误是-org.apache.xerces.jaxp.validation.SimpleXMLSchema类型不可见 任