以Tensorflow Lite为例的说明¶
这里我们以TensorFlow Lite为例来说明如何用BMLang支持TFLite的框架算子和模型推理。
源码在SophonSDK的bmnet/bmtflite中。
TFLite算子的BMLang实现¶
这部分源码在bmnet/bmtflite/src/kernels中。
这里每个算子代码中的prepare是构建TFLite网络时的算子参数设置。
Eval则是推理实现,包括了FLOAT32的和INT8的。
TFLite模型转BModel¶
examples中的executor.h/executor.cc是构建TFLite网络,初始化BMLang,遍历TFLite网络所有算子,启动BMLang编译的代码。
BMLang的初始化在bmlang_util.cc的BmlangUtil::BmlangUtil中。这里设置BMLang的执行模式、量化计算模式等。
模式设置后,executor.cc启动ivoke从而遍历kernels内的算子Eval。
最后启动bmlang_util.cc中的Compile。