图导入
通过一个tensorflow的reception网络来熟悉编译过程,其它深度学习框架也具有类似过程。从TVM官网可以下载tensorflow的编译程序
https://tvm.apache.org/docs/tutorials/frontend/from_tensorflow.html#sphx.。.。主要代码如下:
模型的输入是一个后缀为pb的文件,它是神经网络模型图的protobuf格式存储文件。Pb是二进制形式,pbtxt是文本形式。Import_graph_def函数是导入pb,graph是tensorflow的图结构。
From_tensorflow是将tensorflow的图结构转化成TVM的IR。这个函数在文件relay/frontend/tensorflow.py中。函数的调用关系为:
From_tensorflow -》 GraphProto.from_tensorflow -》 self._get_relay_func。
在get_relay_func中会遍历每个tensorflow的节点,转换成tvm的IR表示。重点关注_backtrack_construct函数。
继续深入和算子转化有关的函数调用为:_convert_operator -》 convert_map。Convert_map中对应了可支持tensorflow算子到tvm算子的转换关系。
完成了tensorflow到TVM算子转化后,我们就得到了一个IRModule。我们可以利用tvm的可视化来打印出转化后的图:
Main是主函数入口,在TVM中以函数形式反应了tensorflow的图结构。函数的调用关系反应了图的依赖关系。
图导入
通过一个tensorflow的reception网络来熟悉编译过程,其它深度学习框架也具有类似过程。从TVM官网可以下载tensorflow的编译程序
https://tvm.apache.org/docs/tutorials/frontend/from_tensorflow.html#sphx.。.。主要代码如下:
模型的输入是一个后缀为pb的文件,它是神经网络模型图的protobuf格式存储文件。Pb是二进制形式,pbtxt是文本形式。Import_graph_def函数是导入pb,graph是tensorflow的图结构。
From_tensorflow是将tensorflow的图结构转化成TVM的IR。这个函数在文件relay/frontend/tensorflow.py中。函数的调用关系为:
From_tensorflow -》 GraphProto.from_tensorflow -》 self._get_relay_func。
在get_relay_func中会遍历每个tensorflow的节点,转换成tvm的IR表示。重点关注_backtrack_construct函数。
继续深入和算子转化有关的函数调用为:_convert_operator -》 convert_map。Convert_map中对应了可支持tensorflow算子到tvm算子的转换关系。
完成了tensorflow到TVM算子转化后,我们就得到了一个IRModule。我们可以利用tvm的可视化来打印出转化后的图:
Main是主函数入口,在TVM中以函数形式反应了tensorflow的图结构。函数的调用关系反应了图的依赖关系。
举报