From 8868239e1fcb696bc9b6047d2532d41064abc4c8 Mon Sep 17 00:00:00 2001 From: SunAhong1993 Date: Thu, 22 Apr 2021 11:45:22 +0800 Subject: [PATCH] add pytorch mapper --- README.md | 129 ++++---- docs/images/frame.png | Bin 0 -> 192184 bytes docs/user_guides/pd_folder_introduction.md | 10 + .../op_mapper/dygraph/pytorch2paddle/aten.py | 278 +++++++++--------- 4 files changed, 224 insertions(+), 193 deletions(-) create mode 100644 docs/images/frame.png create mode 100644 docs/user_guides/pd_folder_introduction.md diff --git a/README.md b/README.md index 8259d28..8e37546 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,37 @@ # X2Paddle [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE) -[![Version](https://img.shields.io/github/release/PaddlePaddle/X2Paddle.svg)](https://github.com/PaddlePaddle/X2Paddle/releases) -X2Paddle支持将其余深度学习框架训练得到的模型,转换至PaddlePaddle模型。 -X2Paddle is a toolkit for converting trained model to PaddlePaddle from other deep learning frameworks. +[![Version](https://img.shields.io/github/release/PaddlePaddle/X2Paddle.svg)](https://github.com/PaddlePaddle/X2Paddle/releases) +![python version](https://img.shields.io/badge/python-3.5+-orange.svg) +## 简介 +X2Paddle用于不同框架模型或项目到PaddlePaddle框架模型或项目的迁移,旨在为飞桨开发者提升框架间迁移的效率。 +X2Paddle支持Caffe/TensorFlow/ONNX/PyTorch的预测模型,一步转换至PaddlePaddle预测模型;同时,支持PyTorch训练项目,转换至PaddlePaddle项目,助力用户在PaddlePaddlePaddle上进行模型训练。 + +### 架构设计 +X2Paddle的架构设计着重考虑了对多深度学习框架的的支持以及代码的易读性、易扩展性,并且在多个层面的对转换后OP进行优化处理。 +![](./docs/images/frame.png) + +### 特性 +- ***支持框架丰富***:目前已经支持Caffe/TensorFlow/ONNX/PyTorch四大框架的迁移,涵盖目前市面主流深度学习框架。 + +- ***转换模型丰富***:在主流的CV和NLP模型上均支持转换,涵盖了19+个Caffe模型转换、27+个TensorFlow模型转换、32+个ONNX模型转换、27+个PyTorch模型转换、2+个PyTorch项目转换。 + +- ***简洁易用***:一条命令行或者一个API即可完成迁移。 + -## 转换模型库 -X2Paddle在多个主流的CV模型上,测试过TensorFlow/Caffe/ONNX/PyTorch模型的转换,可以在[X2Paddle-Model-Zoo](./docs/introduction/x2paddle_model_zoo.md)查看我们的模型测试列表,可以在[OP-LIST](./docs/introduction/op_list.md)中查看目前X2Paddle支持的OP列表。如果你在新的模型上进行了测试转换,也欢迎继续补充该列表;如若无法转换,可通过ISSUE反馈给我们,我们会尽快跟进。 ## 环境依赖 -- python >= 3.5 -- paddlepaddle >= 2.0.0 +python >= 3.5 +paddlepaddle 2.0.0-rc1 或者 develop **按需安装以下依赖** - -- tensorflow : tensorflow == 1.14.0 -- caffe : 无 -- onnx : onnx >= 1.6.0 -- pytorch:torch >=1.5.0 (script方式暂不支持1.7.0) +tensorflow : tensorflow == 1.14.0 +caffe : 无 +onnx : onnx >= 1.6.0 +pytorch:torch >=1.5.0 (script方式暂不支持1.7.0) ## 安装 -### 安装方式一(推荐) +### 方式一:源码安装(推荐) ``` git clone https://github.com/PaddlePaddle/X2Paddle.git cd X2Paddle @@ -28,83 +39,77 @@ git checkout develop python setup.py install ``` -### 安装方式二 +### 方式二:pip安装 我们会定期更新pip源上的x2paddle版本 ``` -pip install x2paddle==1.0.0rc0 --index https://pypi.Python.org/simple/ +pip install x2paddle --index https://pypi.Python.org/simple/ ``` -## 使用方法 -### TensorFlow +## 快速开始 +### 预测模型转换 +| 参数 | 作用 | +| -------------------- | ------------------------------------------------------------ | +| --framework | 源模型类型 (tensorflow、caffe、onnx) | +| --prototxt | 当framework为caffe时,该参数指定caffe模型的proto文件路径 | +| --weight | 当framework为caffe时,该参数指定caffe模型的参数文件路径 | +| --save_dir | 指定转换后的模型保存目录路径 | +| --model | 当framework为tensorflow/onnx时,该参数指定tensorflow的pb模型文件或onnx模型路径 | +| --caffe_proto | **[可选]** 由caffe.proto编译成caffe_pb2.py文件的存放路径,当存在自定义Layer时使用,默认为None | +| --define_input_shape | **[可选]** For TensorFlow, 当指定该参数时,强制用户输入每个Placeholder的shape,见[文档Q2](./docs/user_guides/FAQ.md) | +| --paddle_type | **[可选]** 该参数指定转换为动态图代码(dygraph)或者静态图代码(static),默认为dygraph | +#### TensorFlow ``` x2paddle --framework=tensorflow --model=tf_model.pb --save_dir=pd_model --paddle_type dygraph ``` -### Caffe +#### Caffe ``` x2paddle --framework=caffe --prototxt=deploy.prototxt --weight=deploy.caffemodel --save_dir=pd_model --paddle_type dygraph ``` -### ONNX +#### ONNX ``` x2paddle --framework=onnx --model=onnx_model.onnx --save_dir=pd_model --paddle_type dygraph ``` -### PyTorch -> PyTorch不支持命令行使用方式,详见[PyTorch2Paddle](./docs/user_guides/pytorch2paddle.md) - -### Paddle2ONNX -> Paddle2ONNX功能已迁移至新的github: https://github.com/PaddlePaddle/paddle2onnx, 欢迎大家去新的代码仓库查看详细介绍以及新功能。 +#### PyTorch +PyTorch仅支持API使用方式,详见[PyTorch预测模型转换文档](./docs/user_guides/pytorch2paddle.md)。 +### 训练项目转换 +#### PyTorch +【待更新】可安装[分支](https://github.com/PaddlePaddle/X2Paddle/tree/pytorch_project_convertor)源码进行使用。 +详见[PyTorch训练项目转换文档](https://github.com/SunAhong1993/X2Paddle/blob/code_convert_last/docs/pytorch_project_convertor/README.md)。 -### 参数选项 -| 参数 | | -|----------|--------------| -|--framework | 源模型类型 (tensorflow、caffe、onnx) | -|--prototxt | 当framework为caffe时,该参数指定caffe模型的proto文件路径 | -|--weight | 当framework为caffe时,该参数指定caffe模型的参数文件路径 | -|--save_dir | 指定转换后的模型保存目录路径 | -|--model | 当framework为tensorflow/onnx时,该参数指定tensorflow的pb模型文件或onnx模型路径 | -|--caffe_proto | **[可选]** 由caffe.proto编译成caffe_pb2.py文件的存放路径,当存在自定义Layer时使用,默认为None | -|--define_input_shape | **[可选]** For TensorFlow, 当指定该参数时,强制用户输入每个Placeholder的shape,见[文档Q2](./docs/user_guides/FAQ.md) | -|--paddle_type | **[可选]** 该参数指定转换为动态图代码(dygraph)或者静态图代码(static),默认为dygraph| - - - -## 使用转换后的模型 -- 静态图: -转换后的模型包括`model_with_code`和`inference_model`两个目录。 -`model_with_code`中保存了模型参数,和转换后的python模型静态图代码。 -`inference_model`中保存了序列化的模型结构和参数,可直接使用paddle的接口进行加载,见[paddle.static.load_inference_model](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc/api/paddle/static/load_inference_model_cn.html#load-inference-model)。 -- 动态图: -转换后的模型包括`model.pdparams`和`x2paddle_code.py`两个文件,以及`inference_model`一个目录。 -`model.pdparams`中保存了模型参数。 -`x2paddle_code.py`是转换后的python模型动态图代码。 -`inference_model`中保存了序列化的模型结构和参数,可直接使用paddle的接口进行加载,见[paddle.static.load_inference_model](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc/api/paddle/static/load_inference_model_cn.html#load-inference-model)。 ## 小工具 -X2Paddle提供了工具解决如下问题,详见[tools/README.md](tools/README.md) +X2Paddle提供了工具解决如下问题,详见[tools/README.md](tools/README.md) 1. 检测模型是否在PaddleLite中支持 2. 合并模型参数文件 -## 相关文档 + +## 使用相关文档 1. [X2Paddle使用过程中常见问题](./docs/user_guides/FAQ.md) -2. [如何导出TensorFlow的pb模型](./docs/user_guides/export_tf_model.md) -3. [X2Paddle测试模型库](./docs/introduction/x2paddle_model_zoo.md) -4. [X2Paddle支持的op列表](./docs/introduction/op_list.md) -5. [PyTorch模型导出为ONNX模型](./docs/user_guides/pytorch2onnx.md) -6. [X2Paddle添加内置的Caffe自定义层](./docs/user_guides/add_caffe_custom_layer.md) -7. [TensorFlow转换教程](./docs/demo/tensorflow2paddle.ipynb) -8. [PyTorch转换教程](./docs/demo/pytorch2paddle.ipynb) +2. [如何导出TensorFlow的Frozen Model](./docs/user_guides/export_tf_model.md) +3. [PyTorch模型导出为ONNX模型](./docs/user_guides/pytorch2onnx.md) +4. [X2Paddle添加内置的Caffe自定义层](./docs/user_guides/add_caffe_custom_layer.md) +5. [转换后PaddlePaddle预测模型简介](./docs/user_guides/pd_folder_introduction.py) + +## 支持列表文档 +1. [X2Paddle测试模型库](./docs/introduction/x2paddle_model_zoo.md) +2. [X2Paddle支持的op列表](./docs/introduction/op_list.md) + + +## 转换教程 +1. [TensorFlow预测模型转换教程](./docs/demo/tensorflow2paddle.ipynb) +2. [PyTorch预测模型转换教程](./docs/demo/pytorch2paddle.ipynb) ## 更新历史 2020.12.09 1. 新增PyTorch2Paddle转换方式,转换得到Paddle动态图代码,并动转静获得inference_model。 -方式一:trace方式,转换后的代码有模块划分,每个模块的功能与PyTorch相同。 -方式二:script方式,转换后的代码按执行顺序逐行出现。 + 方式一:trace方式,转换后的代码有模块划分,每个模块的功能与PyTorch相同。 + 方式二:script方式,转换后的代码按执行顺序逐行出现。 2. 新增Caffe/ONNX/Tensorflow到Paddle动态图的转换。 3. 新增TensorFlow op(14个):Neg、Greater、FloorMod、LogicalAdd、Prd、Equal、Conv3D、Ceil、AddN、DivNoNan、Where、MirrorPad、Size、TopKv2 4. 新增Optimizer模块,主要包括op融合、op消除功能,转换后的代码可读性更强,进行预测时耗时更短。 -## Acknowledgements +## 贡献代码 -X2Paddle refers to the following projects: -- [MMdnn](https://github.com/microsoft/MMdnn) +我们非常欢迎您为X2Paddle贡献代码或者提供使用建议。如果您可以修复某个issue或者增加一个新功能,欢迎给我们提交Pull Requests。 diff --git a/docs/images/frame.png b/docs/images/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..4602481cc524938609e30c71002f91ec08a5b55e GIT binary patch literal 192184 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 lOCg|mMLtK*_d$H?cp~SdSxNB5UA7Mp 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%0A3jbU84y6`lp%^epd0Z=ZS{R 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ℑ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

Jc1lDZW(P9o!TetL%8Xrt<6L>ez0L=heQToA( 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 Li03`hfBk;|5gbjt literal 0 HcmV?d00001 diff --git a/docs/user_guides/pd_folder_introduction.md b/docs/user_guides/pd_folder_introduction.md new file mode 100644 index 0000000..fc0967e --- /dev/null +++ b/docs/user_guides/pd_folder_introduction.md @@ -0,0 +1,10 @@ +# 转换后PaddlePaddle预测模型简介 +- 静态图: +转换后的模型包括`model_with_code`和`inference_model`两个目录。 +`model_with_code`中保存了模型参数,和转换后的python模型静态图代码。 +`inference_model`中保存了序列化的模型结构和参数,可直接使用paddle的接口进行加载,见[paddle.static.load_inference_model](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc/api/paddle/static/load_inference_model_cn.html#load-inference-model)。 +- 动态图: +转换后的模型包括`model.pdparams`和`x2paddle_code.py`两个文件,以及`inference_model`一个目录。 +`model.pdparams`中保存了模型参数。 +`x2paddle_code.py`是转换后的python模型动态图代码。 +`inference_model`中保存了序列化的模型结构和参数,可直接使用paddle的接口进行加载,见[paddle.static.load_inference_model](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc/api/paddle/static/load_inference_model_cn.html#load-inference-model)。 diff --git a/x2paddle/op_mapper/dygraph/pytorch2paddle/aten.py b/x2paddle/op_mapper/dygraph/pytorch2paddle/aten.py index c23258b..43c6b2b 100644 --- a/x2paddle/op_mapper/dygraph/pytorch2paddle/aten.py +++ b/x2paddle/op_mapper/dygraph/pytorch2paddle/aten.py @@ -33,7 +33,6 @@ dtype_dict = { def aten_abs(mapper, graph, node): """ 构造获取绝对值的PaddleLayer。 - TorchScript示例: %n0.3 : Tensor = aten::abs(%n.3) 参数含义: @@ -62,9 +61,61 @@ def aten_abs(mapper, graph, node): return current_inputs, current_outputs +def aten_adaptive_avg_pool1d(mapper, graph, node): + """ 构造average adaptive pool1d的PaddleLayer。 + TorchScript示例: + %x.5 : Tensor = aten::adaptive_avg_pool1d(%x.3, %_output_size.1) + 参数含义: + %x.5 (Tensor): 池化后结果Tensor。 + %x.3 (Tensor): 输入Tensor。 + %_output_size.1 (list): 自适应池化后的Tensor的长度大小。 + """ + scope_name = mapper.normalize_scope_name(node) + op_name = name_generator("pool1d", mapper.nn_name2id) + output_name = mapper._get_outputs_name(node)[0] + layer_outputs = [op_name, output_name] + layer_inputs = {} + layer_attrs = {} + inputs_name, inputs_node = mapper._get_inputs_name(node) + # 获取当前节点输出的list + current_outputs = [output_name] + # 处理输入0,即%x.3 + mapper._check_input(graph, inputs_node[0], inputs_name[0], current_outputs, + scope_name) + layer_inputs["x"] = inputs_name[0] + # 获取当前节点输入的list + current_inputs = list(layer_inputs.values()) + # 处理输入1,即%_output_size.1 + if inputs_name[1] in mapper.attrs: + layer_attrs["output_size"] = mapper.attrs[inputs_name[1]][0] + graph.add_layer( + "paddle.nn.AdaptiveAvgPool1D", + inputs=layer_inputs, + outputs=layer_outputs, + scope_name=scope_name, + **layer_attrs) + else: + mapper._check_input(graph, inputs_node[1], inputs_name[1], + current_outputs, scope_name) + layer_inputs["output_size"] = inputs_name[1] + current_inputs.append(inputs_name[1]) + graph.add_layer( + "prim.getitem", + inputs={"list": layer_inputs["output_size"]}, + outputs=[layer_inputs["output_size"]], + scope_name=scope_name, + index=0) + graph.add_layer( + "paddle.nn.functional.adaptive_avg_pool1d", + inputs=layer_inputs, + outputs=layer_outputs[1:], + scope_name=scope_name, + **layer_attrs) + return current_inputs, current_outputs + + def aten_adaptive_avg_pool2d(mapper, graph, node): """ 构造average adaptive pool2d的PaddleLayer。 - TorchScript示例: %x.5 : Tensor = aten::adaptive_avg_pool2d(%x.3, %_output_size.1) 参数含义: @@ -112,7 +163,6 @@ def aten_adaptive_avg_pool2d(mapper, graph, node): def aten_addmm(mapper, graph, node): """ 构造addmm的PaddleLayer,该节点实现out = alpha ∗ x ∗ y + beta ∗ input。 - TorchScript示例: %ret.2 : Tensor = aten::addmm(%150, %input.3, %156, %151, %152) 参数含义: @@ -178,7 +228,6 @@ def aten_addmm(mapper, graph, node): def aten_add(mapper, graph, node): """ 构造数值相加的PaddleLayer,该节点实现out = x + y。 - TorchScript示例: %296 : int = aten::add(%i.12, %288) 参数含义: @@ -219,7 +268,6 @@ def aten_add(mapper, graph, node): def aten_add_(mapper, graph, node): """ 构造数值相加的PaddleLayer,该节点实现out = x + alpha * y。 - TorchScript示例: %137 : Tensor = aten::add(%136, %130, %130) 参数含义: @@ -271,7 +319,6 @@ def aten_add_(mapper, graph, node): def aten___and__(mapper, graph, node): """ 构造与计算的PaddleLayer。 - TorchScript示例: %361 : bool = aten::__and__(%360, %358) 参数含义: @@ -307,7 +354,6 @@ def aten___and__(mapper, graph, node): def aten_append(mapper, graph, node): """ 构造对list进行append的PaddleLayer。 - TorchScript示例: %90 : int[] = aten::append(%_output_size.1, %v.1) 参数含义: @@ -342,7 +388,6 @@ def aten_append(mapper, graph, node): def aten_arange(mapper, graph, node): """ 构造以步长均匀分隔给定数值区间的PaddleLayer。 - TorchScript示例: 有三种情况,分别处理。 """ @@ -442,7 +487,6 @@ def aten_arange(mapper, graph, node): def aten_avg_pool2d(mapper, graph, node): """ 构造最大池化的PaddleLayer。 - TorchScript示例: %branch_pool.2 : Tensor = aten::avg_pool2d(%x.43, %538, %539, %540, %273, %272, %271) 参数含义: @@ -502,7 +546,6 @@ def aten_avg_pool2d(mapper, graph, node): def aten_avg_pool3d(mapper, graph, node): """ 构造最大池化的PaddleLayer。 - TorchScript示例: %branch_pool.2 : Tensor = aten::avg_pool2d(%x.43, %538, %539, %540, %273, %272, %271) 参数含义: @@ -561,7 +604,6 @@ def aten_avg_pool3d(mapper, graph, node): def aten_avg_pool1d(mapper, graph, node): """ 构造最大池化的PaddleLayer。 - TorchScript示例: %branch_pool.2 : Tensor = aten::avg_pool1d(%x.43, %538, %539, %540, %273, %272, %271) 参数含义: @@ -620,7 +662,6 @@ def aten_avg_pool1d(mapper, graph, node): def aten_batch_norm(mapper, graph, node): """ 构造BatchNorm的PaddleLayer。 - TorchScript示例: %input.81 : Tensor = aten::batch_norm(%input.80, %778, %779, %776, %777, %780, %exponential_average_factor.23, %766, %781) @@ -685,7 +726,6 @@ def aten_batch_norm(mapper, graph, node): def aten_bmm(mapper, graph, node): """ 构造矩阵相乘的PaddleLayer。 - TorchScript示例: %x.222 : Tensor = aten::bmm(%32, %7) 参数含义: @@ -726,7 +766,6 @@ def aten_bmm(mapper, graph, node): def aten_cat(mapper, graph, node): """ 构造连接Tensor的PaddleLayer。 - TorchScript示例: %x.222 : Tensor = aten::cat(%32, %7) 参数含义: @@ -767,7 +806,6 @@ def aten_cat(mapper, graph, node): def aten_chunk(mapper, graph, node): """构造分割Tensor的PaddleLayer。 - TorchScript示例: %724 : Tensor[] = aten::chunk(%input.170, %720, %719) 参数含义: @@ -817,7 +855,6 @@ def aten_chunk(mapper, graph, node): def aten_clamp(mapper, graph, node): """ 构造元素剪裁的PaddleLayer。 - TorchScript示例: %56 : Tensor = aten::clamp(%input.1, %46, %48, %49) 参数含义: @@ -868,7 +905,6 @@ def aten_clamp(mapper, graph, node): def aten_clamp_min(mapper, graph, node): """ 构造元素剪裁的PaddleLayer。 - TorchScript示例: %56 : Tensor = aten::clamp_min(%input.1, %46) 参数含义: @@ -910,7 +946,6 @@ def aten_clamp_min(mapper, graph, node): def aten___contains__(mapper, graph, node): """ 构造in的PaddleLayer。 - TorchScript示例: %51 : bool = aten::__contains__(%50, %name.1) 参数含义: @@ -946,7 +981,6 @@ def aten___contains__(mapper, graph, node): def aten_constant_pad_nd(mapper, graph, node): """ 构造填充固定值的PaddleLayer。 - TorchScript示例: %58 : Tensor = aten::constant_pad_nd(%input1.24, %4876, %42) 参数含义: @@ -1059,14 +1093,12 @@ def aten_constant_pad_nd(mapper, graph, node): def aten_contiguous(mapper, graph, node): """ 构造在内存中连续存储的PaddleLayer。 - TorchScript示例: %x.7 : Tensor = aten::contiguous(%4058, %4046) 参数含义: %x.7 (Tensor): 输出,在内存中连续存储的Tensor。 %4058 (Tensor): 原始Tensor。 %4046 (int): 存储的形式。 - 【注意】Paddle中无此用法,所以此处翻译成赋值。 """ scope_name = mapper.normalize_scope_name(node) @@ -1094,7 +1126,6 @@ def aten_contiguous(mapper, graph, node): def aten_conv2d(mapper, graph, node): """ 构造conv2d的PaddleLayer。 - TorchScript示例: %input.10 : Tensor = aten::conv2d(%input.8, %25, %27, %28, %29, %30, %26) 参数含义: @@ -1157,7 +1188,6 @@ def aten_conv2d(mapper, graph, node): def aten__convolution(mapper, graph, node): """ 构造conv2d的PaddleLayer。 - TorchScript示例: %input.10 : Tensor = aten::_convolution(%input.1, %18, %10, %19, %20, %21, %13, %22, %12, %13, %13, %15) 参数含义: @@ -1242,7 +1272,6 @@ def aten__convolution(mapper, graph, node): def aten_conv_transpose2d(mapper, graph, node): """ 构造conv_transpose2d的PaddleLayer。 - TorchScript示例: %input.10 : Tensor = aten::conv_transpose2d(%input.1, %18, %10, %19, %20, %21, %13, %22) 参数含义: @@ -1307,7 +1336,6 @@ def aten_conv_transpose2d(mapper, graph, node): def aten_cos(mapper, graph, node): """ 构造数学计算cos的PaddleLayer。 - TorchScript示例: %94 : Tensor = aten::cos(%sinusoid_inp.1) 参数含义: @@ -1338,7 +1366,6 @@ def aten_cos(mapper, graph, node): def aten_cumsum(mapper, graph, node): """ 构造与前一个元素累加的PaddleLayer。 - TorchScript示例: %56 : Tensor = aten::cumsum(%mask.1, %46, %48) 参数含义: @@ -1386,13 +1413,11 @@ def aten_cumsum(mapper, graph, node): def aten_detach(mapper, graph, node): """ 构造返回一个新的Tensor,从当前计算图中分离下来的,但是仍指向原变量的存放位置的PaddleLayer。 - TorchScript示例: %107 : Tensor = aten::detach(%new_mem.1) 参数含义: %107 (Tensor): 输出,得到的Scalar。 %new_mem.1 (Tensor): 输入。 - 【注意】由于Paddle无此操作,所以此处制转换为赋值。 """ scope_name = mapper.normalize_scope_name(node) @@ -1420,7 +1445,6 @@ def aten_detach(mapper, graph, node): def aten_dict(mapper, graph, node): """ 构造初始化dict的PaddleLayer。 - TorchScript示例: %features.1 : Dict(str, Tensor) = aten::dict() 参数含义: @@ -1444,7 +1468,6 @@ def aten_dict(mapper, graph, node): def aten_dim(mapper, graph, node): """ 构造获取维度的PaddleLayer。 - TorchScript示例: %106 : int = aten::dim(%101) 参数含义: @@ -1479,7 +1502,6 @@ def aten_dim(mapper, graph, node): def aten_div_(mapper, graph, node): """ 构造除法的PaddleLayer。 - TorchScript示例: %bx_bw0.3 : Tensor = aten::div_(%bx_bw.3, %2678) 参数含义: @@ -1514,7 +1536,6 @@ def aten_div_(mapper, graph, node): def aten_div(mapper, graph, node): """ 构造除法的PaddleLayer。 - TorchScript示例: %bx_bw0.3 : Tensor = aten::div_(%bx_bw.3, %2678) 参数含义: @@ -1550,7 +1571,6 @@ def aten_div(mapper, graph, node): def aten_dropout(mapper, graph, node): """ 构造Dropout的PaddleLayer。 - TorchScript示例: %119 : Tensor = aten::dropout(%result.3, %117, %118) 参数含义: @@ -1584,7 +1604,6 @@ def aten_dropout(mapper, graph, node): def aten_dropout_(mapper, graph, node): """ 构造Dropout的PaddleLayer。 - TorchScript示例: %119 : Tensor = aten::dropout_(%result.3, %117, %118) 参数含义: @@ -1618,7 +1637,6 @@ def aten_dropout_(mapper, graph, node): def aten_embedding(mapper, graph, node): """ 构造embedding的PaddleLayer。 - TorchScript示例: %inputs_embeds.1 : Tensor = aten::embedding(%57, %input_ids.1, %45, %46, %46) 参数含义: @@ -1668,7 +1686,6 @@ def aten_embedding(mapper, graph, node): def aten_eq(mapper, graph, node): """ 构造判断数值是否相等的PaddleLayer。 - TorchScript示例: %125 : bool = aten::eq(%124, %123) 参数含义: @@ -1707,7 +1724,6 @@ def aten_eq(mapper, graph, node): def aten_erf(mapper, graph, node): """ 构造逐元素计算 Erf 激活函数的PaddleLayer。 - TorchScript示例: %94 : Tensor = aten::erf(%sinusoid_inp.1) 参数含义: @@ -1738,7 +1754,6 @@ def aten_erf(mapper, graph, node): def aten_exp(mapper, graph, node): """ 构造以自然数e为底指数运算的PaddleLayer。 - TorchScript示例: %55 : Tensor = aten::tanh(%54) 参数含义: @@ -1769,7 +1784,6 @@ def aten_exp(mapper, graph, node): def aten_expand(mapper, graph, node): """ 构造对某维度进行广播的PaddleLayer。 - TorchScript示例: %1889 : Tensor = aten::expand(%1875, %1888, %1567) 参数含义: @@ -1810,7 +1824,6 @@ def aten_expand(mapper, graph, node): def aten_expand_as(mapper, graph, node): """ 构造广播的PaddleLayer。 - TorchScript示例: %1889 : Tensor = aten::expand_as(%1875, %1888) 参数含义: @@ -1915,7 +1928,6 @@ def aten_expand_as(mapper, graph, node): def aten_eye(mapper, graph, node): """ 构造批次二维矩阵的PaddleLayer。 - TorchScript示例: %68 : Tensor = aten::eye(%49, %_50, %_51, %15, %9, %67, %7) 参数含义: @@ -1960,7 +1972,6 @@ def aten_eye(mapper, graph, node): def aten_feature_dropout(mapper, graph, node): """ 构造Dropout的PaddleLayer。 - TorchScript示例: %119 : Tensor = aten::feature_dropout(%result.3, %117, %118) 参数含义: @@ -1994,7 +2005,6 @@ def aten_feature_dropout(mapper, graph, node): def aten_flatten(mapper, graph, node): """ 构造flatten的PaddleLayer。 - TorchScript示例: %x.8 : Tensor = aten::flatten(%x, %4, %2) 参数含义: @@ -2002,7 +2012,6 @@ def aten_flatten(mapper, graph, node): %x (Tensor): 输入Tensor。 %4 (int): flatten的开始维度。 %2 (int): flatten的结束维度。 - """ scope_name = mapper.normalize_scope_name(node) output_name = mapper._get_outputs_name(node)[0] @@ -2034,7 +2043,6 @@ def aten_flatten(mapper, graph, node): def aten_Float(mapper, graph, node): """ 构造取浮点型的PaddleLayer。 - TorchScript示例: %3992 : float = aten::Float(%3991) 参数含义: @@ -2065,7 +2073,6 @@ def aten_Float(mapper, graph, node): def aten_floor(mapper, graph, node): """ 构造向上取整的PaddleLayer。 - TorchScript示例: %3978 : int = aten::floor(%scale.18) 参数含义: @@ -2126,7 +2133,6 @@ def aten_floor(mapper, graph, node): def aten_floordiv(mapper, graph, node): """ 构造向上取整除法的PaddleLayer。 - TorchScript示例: %channels_per_group.2 : int = aten::floordiv(%num_channels.2, %3690) 参数含义: @@ -2162,7 +2168,6 @@ def aten_floordiv(mapper, graph, node): def aten_floor_divide(mapper, graph, node): """ 构造向上取整除法的PaddleLayer。 - TorchScript示例: %channels_per_group.2 : int = aten::floor_divide(%num_channels.2, %3690) 参数含义: @@ -2198,7 +2203,6 @@ def aten_floor_divide(mapper, graph, node): def aten_full_like(mapper, graph, node): """ 构造创建一个与输入具有相同的形状并且数据类型固定的Tensor的PaddleLayer。 - TorchScript示例: %159 : Tensor = aten::full_like(%val_if_large.3, %51, %50, %62, %53, %65, %66) 参数含义: @@ -2247,7 +2251,6 @@ def aten_full_like(mapper, graph, node): def aten_gather(mapper, graph, node): """ 构造gather激活的PaddleLayer。 - TorchScript示例: %result.3 : Tensor = aten::gather(%input.5, %18, %19, %20, %21) 参数含义: @@ -2289,13 +2292,11 @@ def aten_gather(mapper, graph, node): def aten_gelu(mapper, graph, node): """ 构造GeLU激活的PaddleLayer。 - TorchScript示例: %result.3 : Tensor = aten::gelu(%input.5) 参数含义: %result.3 (Tensor): 输出,GELU后的结果。 %result.5 (Tensor): 需要GELU的Tensor。 - 注意: inplace这个参数在paddle中未实现 """ scope_name = mapper.normalize_scope_name(node) @@ -2323,7 +2324,6 @@ def aten_gelu(mapper, graph, node): def aten___getitem__(mapper, graph, node): """ 构造获取list中元素的PaddleLayer。 - TorchScript示例: %v.1 : int = aten::__getitem__(%72, %88) 参数含义: @@ -2359,7 +2359,6 @@ def aten___getitem__(mapper, graph, node): def aten_gt(mapper, graph, node): """ 构造对比大小的PaddleLayer。 - TorchScript示例: %83 : bool = aten::gt(%82, %78) 参数含义: @@ -2395,7 +2394,6 @@ def aten_gt(mapper, graph, node): def aten_gru(mapper, graph, node): """ 构造门控循环单元网络(GRU)的PaddleLayer。 - TorchScript示例: %21, %22 = aten::gru(%input, %hx, %20, %11, %10, %9, %11, %8, %11) 参数含义: @@ -2486,7 +2484,6 @@ def aten_gru(mapper, graph, node): def aten_hardtanh_(mapper, graph, node): """ 构造hardtanh激活的PaddleLayer。 - TorchScript示例: %result.9 : Tensor = aten::hardtanh_(%input.20, %67, %66) 参数含义: @@ -2531,9 +2528,51 @@ def aten_hardtanh_(mapper, graph, node): return current_inputs, current_outputs -def aten_index_select(mapper, graph, node): - """ 构造对dict加入元素的PaddleLayer。 +def aten_index(mapper, graph, node): + """ 构造选择元素的PaddleLayer。 + TorchScript示例: + %1681 : Float = aten::index(%1653, %1680) + 参数含义: + %1681 (Tensor): 输出,选择后的Tensor。 + %1653 (Tensor): 需要选择的Tensor。 + %1680 (int): 选择的索引。 + """ + scope_name = mapper.normalize_scope_name(node) + output_name = mapper._get_outputs_name(node)[0] + layer_outputs = [output_name] + layer_inputs = {} + layer_attrs = {} + inputs_name, inputs_node = mapper._get_inputs_name(node) + # 获取当前节点输出的list + current_outputs = [output_name] + # 处理输入0,即%1653 + mapper._check_input(graph, inputs_node[0], inputs_name[0], current_outputs, + scope_name) + layer_inputs["x"] = inputs_name[0] + # 处理输入1,即%1680 + mapper._check_input(graph, inputs_node[1], inputs_name[1], current_outputs, + scope_name) + layer_inputs["index"] = inputs_name[1] + # 获取当前节点输入的list + current_inputs = list(layer_inputs.values()) + + graph.add_layer( + "prim.getitem", + inputs={"list": layer_inputs["index"]}, + outputs=[layer_inputs["index"]], + scope_name=scope_name, + index=0) + graph.add_layer( + "paddle.index_select", + inputs=layer_inputs, + outputs=layer_outputs, + scope_name=scope_name, + **layer_attrs) + return current_inputs, current_outputs + +def aten_index_select(mapper, graph, node): + """ 构造选择元素的PaddleLayer。 TorchScript示例: %bd.3 : Tensor = aten::index_select(%x2.3, %320, %371) 参数含义: @@ -2580,7 +2619,6 @@ def aten_index_select(mapper, graph, node): def aten_instance_norm(mapper, graph, node): """构造InstanceNorm的PaddleLayer - TorchScript示例: %res.7 : Tensor = aten::instance_norm(%res.5, %88, %85, %84, %83, %87, %91, %92, %87) 参数含义: @@ -2643,7 +2681,6 @@ def aten_instance_norm(mapper, graph, node): def aten_Int(mapper, graph, node): """ 构造强转为int的PaddleLayer。 - TorchScript示例: %1739 : int = aten::Int(%1738) 参数含义: @@ -2674,7 +2711,6 @@ def aten_Int(mapper, graph, node): def aten___is__(mapper, graph, node): """ 构造is not的PaddleLayer。 - TorchScript示例: %3949 : bool = aten::__isnot__(%size.122, %3931) 参数含义: @@ -2710,7 +2746,6 @@ def aten___is__(mapper, graph, node): def aten___isnot__(mapper, graph, node): """ 构造is not的PaddleLayer。 - TorchScript示例: %3949 : bool = aten::__isnot__(%size.122, %3931) 参数含义: @@ -2746,7 +2781,6 @@ def aten___isnot__(mapper, graph, node): def aten_layer_norm(mapper, graph, node): """ 构造层归一化的PaddleLayer。 - TorchScript示例: %input0.4 : Tensor = aten::layer_norm(%input.6, %1181, %174, %173, %70, %71) 参数含义: @@ -2799,7 +2833,6 @@ def aten_layer_norm(mapper, graph, node): def aten_le(mapper, graph, node): """ 构造对比大小的PaddleLayer。 - TorchScript示例: %80 : bool = aten::le(%78, %79) 参数含义: @@ -2835,7 +2868,6 @@ def aten_le(mapper, graph, node): def aten_leaky_relu_(mapper, graph, node): """ 构造leaky relu激活的PaddleLayer。 - TorchScript示例: %input.117 : Tensor = aten::leaky_relu_(%input.114, %1570) 参数含义: @@ -2872,7 +2904,6 @@ def aten_leaky_relu_(mapper, graph, node): def aten_len(mapper, graph, node): """ 构造获取list长度的PaddleLayer。 - TorchScript示例: %85 : int = aten::len(%83) 参数含义: @@ -2903,7 +2934,6 @@ def aten_len(mapper, graph, node): def aten_log(mapper, graph, node): """ 构构造log的PaddleLayer。 - TorchScript示例: %787 : Tensor = aten::log(%786) 参数含义: @@ -2934,7 +2964,6 @@ def aten_log(mapper, graph, node): def aten_lstm(mapper, graph, node): """ 构造长短期记忆网络(LSTM)的PaddleLayer。 - TorchScript示例: %input.96, %551, %552 = aten::lstm(%input.95, %734, %549, %526, %525, %524, %526, %526, %526) 参数含义: @@ -3026,7 +3055,6 @@ def aten_lstm(mapper, graph, node): def aten_lt(mapper, graph, node): """ 构造对比大小的PaddleLayer。 - TorchScript示例: %80 : bool = aten::lt(%78, %79) 参数含义: @@ -3062,7 +3090,6 @@ def aten_lt(mapper, graph, node): def aten_masked_fill_(mapper, graph, node): """ 构造填充mask的PaddleLayer。 - TorchScript示例: %input.4 : Tensor = aten::masked_fill_(%scores.2, %mask.2, %46) 参数含义: @@ -3175,7 +3202,6 @@ def aten_masked_fill_(mapper, graph, node): def aten_masked_fill(mapper, graph, node): """ 构造填充mask的PaddleLayer。 - TorchScript示例: %input.4 : Tensor = aten::masked_fill(%scores.2, %mask.2, %46) 参数含义: @@ -3288,7 +3314,6 @@ def aten_masked_fill(mapper, graph, node): def aten_max(mapper, graph, node): """ 构造获取最大值的PaddleLayer。 - TorchScript示例: %val_if_large0.3 : Tensor = aten::max(%val_if_large.3, %159) 参数含义: @@ -3327,7 +3352,6 @@ def aten_max(mapper, graph, node): def aten_max_pool2d(mapper, graph, node): """ 构造最大池化的PaddleLayer。 - TorchScript示例: %input.8 : Tensor = aten::max_pool2d(%result.11, %20, %23, %21, %22, %19) 参数含义: @@ -3388,7 +3412,6 @@ def aten_max_pool2d(mapper, graph, node): def aten_matmul(mapper, graph, node): """ 构造矩阵相乘的PaddleLayer。 - TorchScript示例: %output.2 : Tensor = aten::matmul(%101, %111) 参数含义: @@ -3424,7 +3447,6 @@ def aten_matmul(mapper, graph, node): def aten_min(mapper, graph, node): """ 构造获取最小值的PaddleLayer。 - TorchScript示例: %val_if_large0.3 : Tensor = aten::min(%val_if_large.3, %159) 参数含义: @@ -3463,7 +3485,6 @@ def aten_min(mapper, graph, node): def aten_mean(mapper, graph, node): """ 构造求均值的PaddleLayer。 - TorchScript示例: %x.28 : Tensor = aten::mean(%result.1, %4967, %3, %2) 参数含义: @@ -3514,7 +3535,6 @@ def aten_mean(mapper, graph, node): def aten_meshgrid(mapper, graph, node): """ 构造对每个张量做扩充操作的PaddleLayer。 - TorchScript示例: %out.39 : int = aten::mshgrid(%input.1) 参数含义: @@ -3546,7 +3566,6 @@ def aten_meshgrid(mapper, graph, node): def aten_mul(mapper, graph, node): """ 构造数值相乘的PaddleLayer。 - TorchScript示例: %size_prods.39 : int = aten::mul(%size_prods.38, %114) 参数含义: @@ -3583,7 +3602,6 @@ def aten_mul(mapper, graph, node): def aten_mul_(mapper, graph, node): """ 构造数值相乘的PaddleLayer。 - TorchScript示例: %size_prods.39 : int = aten::mul_(%size_prods.38, %114) 参数含义: @@ -3620,7 +3638,6 @@ def aten_mul_(mapper, graph, node): def aten_ne(mapper, graph, node): """ 构造判断数值是否不相等的PaddleLayer。 - TorchScript示例: %134 : bool = aten::ne(%133, %132) 参数含义: @@ -3656,7 +3673,6 @@ def aten_ne(mapper, graph, node): def aten_neg(mapper, graph, node): """ 构造对数值取负的PaddleLayer。 - TorchScript示例: %909 : int = aten::neg(%908) 参数含义: @@ -3687,7 +3703,6 @@ def aten_neg(mapper, graph, node): def aten_norm(mapper, graph, node): """ 构造计算范数的PaddleLayer。 - TorchScript示例: %25 = aten::norm(%input, %21, %58, %24) 参数含义: @@ -3746,7 +3761,6 @@ def aten_norm(mapper, graph, node): def aten___not__(mapper, graph, node): """ 构造对bool型取负的PaddleLayer。 - TorchScript示例: %4498 : bool = aten::__not__(%aux_defined.2) 参数含义: @@ -3777,7 +3791,6 @@ def aten___not__(mapper, graph, node): def aten_ones(mapper, graph, node): """ 构造创建固定形状、数据类型且值全为0的Tensor的PaddleLayer。 - TorchScript示例: %input.49 : Tensor = aten::ones(%23, %8, %6, %24, %5) 参数含义: @@ -3819,7 +3832,6 @@ def aten_ones(mapper, graph, node): def aten_permute(mapper, graph, node): """ 构造对bool型取负的PaddleLayer。 - TorchScript示例: %2385 : Tensor = aten::permute(%cls_confs0.2, %2384) 参数含义: @@ -3861,7 +3873,6 @@ def aten_permute(mapper, graph, node): def aten_pixel_shuffle(mapper, graph, node): """ 构造以像素的方式重排的PaddleLayer。 - TorchScript示例: %x.6 : aten::pixel_shuffle(%input.101, %726) 参数含义: @@ -3896,7 +3907,6 @@ def aten_pixel_shuffle(mapper, graph, node): def aten_pow(mapper, graph, node): """ 构造指数激活的PaddleLayer。 - TorchScript示例: %x.6 : Tensor = aten::pow(%4700, %4703) 参数含义: @@ -3937,7 +3947,6 @@ def aten_pow(mapper, graph, node): def aten_prelu(mapper, graph, node): """ 构造prelu激活的PaddleLayer。 - TorchScript示例: %result.3 : aten::prelu(%input.150, %999) 参数含义: @@ -3974,7 +3983,6 @@ def aten_prelu(mapper, graph, node): def aten_reflection_pad1d(mapper, graph, node): """ 构造1维映射填充的PaddleLayer。 - TorchScript示例: %6 = aten::reflection_pad1d(%input, %7) 参数含义: @@ -4021,7 +4029,6 @@ def aten_reflection_pad1d(mapper, graph, node): def aten_reflection_pad2d(mapper, graph, node): """ 构造2维映射填充的PaddleLayer。 - TorchScript示例: %6 = aten::reflection_pad2d(%input, %7) 参数含义: @@ -4068,13 +4075,11 @@ def aten_reflection_pad2d(mapper, graph, node): def aten_relu(mapper, graph, node): """ 构造ReLU激活的PaddleLayer。 - TorchScript示例: %result.3 : Tensor = aten::relu(%input.5) 参数含义: %result.3 (Tensor): 输出,ReLU后的结果。 %result.5 (Tensor): 需要ReLU的Tensor。 - 注意: inplace这个参数在paddle中未实现 """ scope_name = mapper.normalize_scope_name(node) @@ -4102,13 +4107,11 @@ def aten_relu(mapper, graph, node): def aten_relu_(mapper, graph, node): """ 构造ReLU激活的PaddleLayer。 - TorchScript示例: %result.3 : Tensor = aten::relu_(%input.5) 参数含义: %result.3 (Tensor): 输出,ReLU后的结果。 %result.5 (Tensor): 需要ReLU的Tensor。 - 注意: inplace这个参数在paddle中未实现 """ scope_name = mapper.normalize_scope_name(node) @@ -4136,13 +4139,11 @@ def aten_relu_(mapper, graph, node): def aten_relu6(mapper, graph, node): """ 构造ReLU6激活的PaddleLayer。 - TorchScript示例: %result.3 : Tensor = aten::relu6(%input.5) 参数含义: %result.3 (Tensor): 输出,ReLU6后的结果。 %result.5 (Tensor): 需要ReLU6的Tensor。 - 注意: inplace这个参数在paddle中未实现 """ scope_name = mapper.normalize_scope_name(node) @@ -4170,7 +4171,6 @@ def aten_relu6(mapper, graph, node): def aten_repeat(mapper, graph, node): """ 构造根据参数对输入各维度进行复制的PaddleLayer。 - TorchScript示例: 701 : Tensor = aten::repeat(%699, %700) 参数含义: @@ -4212,7 +4212,6 @@ def aten_repeat(mapper, graph, node): def aten_reshape(mapper, graph, node): """ 构造调整大小的PaddleLayer。 - TorchScript示例: %x.6 : Tensor = aten::reshape(%4700, %4703) 参数含义: @@ -4252,9 +4251,58 @@ def aten_reshape(mapper, graph, node): return current_inputs, current_outputs +def aten_roll(mapper, graph, node): + """ 构造循环滚动的PaddleLayer。 + TorchScript示例: + %x.87 : Float = aten::roll(%x.86, %1862, %1863) + 参数含义: + %x.87 (Tensor): 输出Tensor。 + %x.86 (Tensor): 输入Tensor。 + %1862 (int/list/tuple): 滚动位移。 + %1863 (int/list/tuple): 滚动轴。 + """ + scope_name = mapper.normalize_scope_name(node) + output_name = mapper._get_outputs_name(node)[0] + layer_outputs = [output_name] + layer_inputs = {} + layer_attrs = {} + inputs_name, inputs_node = mapper._get_inputs_name(node) + # 获取当前节点输出的list + current_outputs = [output_name] + # 处理输入0,即%x.86 + mapper._check_input(graph, inputs_node[0], inputs_name[0], current_outputs, + scope_name) + layer_inputs["x"] = inputs_name[0] + # 获取当前节点输入、输出的list + current_inputs = list(layer_inputs.values()) + # 处理输入1,即%1862 + if inputs_name[1] in mapper.attrs: + layer_attrs["shifts"] = mapper.attrs[inputs_name[1]] + else: + mapper._check_input(graph, inputs_node[1], inputs_name[1], + current_outputs, scope_name) + layer_inputs["shifts"] = inputs_name[1] + current_inputs.append(inputs_name[1]) + # 处理输入2,即%1863 + if inputs_name[1] in mapper.attrs: + layer_attrs["axis"] = mapper.attrs[inputs_name[2]] + else: + mapper._check_input(graph, inputs_node[2], inputs_name[2], + current_outputs, scope_name) + layer_inputs["axis"] = inputs_name[2] + current_inputs.append(inputs_name[2]) + + graph.add_layer( + "paddle.roll", + inputs=layer_inputs, + outputs=layer_outputs, + scope_name=scope_name, + **layer_attrs) + return current_inputs, current_outputs + + def aten_rsub(mapper, graph, node): """ 构造数值相减的PaddleLayer,计算公式为:out = y - alpha * x。 - TorchScript示例: %31 : Tensor = aten::rsub(%30, %13, %7) 参数含义: @@ -4296,13 +4344,11 @@ def aten_rsub(mapper, graph, node): def aten_ScalarImplicit(mapper, graph, node): """ 构造获取scalar的PaddleLayer。 - TorchScript示例: %89 : Scalar = aten::ScalarImplicit(%end.1) 参数含义: %89 (Scalar): 输出,得到的Scalar。 %end.1 (-): 组要转换的数据。 - 【注意】由于Paddle无Scalar,所以最后转换为Tensor。 """ scope_name = mapper.normalize_scope_name(node) @@ -4335,7 +4381,6 @@ def aten_ScalarImplicit(mapper, graph, node): def aten_select(mapper, graph, node): """ 构造选取特定维度Variable的PaddleLayer。 - TorchScript示例: %19 : Tensor = aten::select(%18, %8, %7) 参数含义: @@ -4376,7 +4421,6 @@ def aten_select(mapper, graph, node): def aten__set_item(mapper, graph, node): """ 构造对dict加入元素的PaddleLayer。 - TorchScript示例: = aten::_set_item(%features.1, %out_name.1, %x.3) 参数含义: @@ -4411,7 +4455,6 @@ def aten__set_item(mapper, graph, node): def aten_sigmoid(mapper, graph, node): """ 构造sigmoid激活的PaddleLayer。 - TorchScript示例: %55 : Tensor = aten::sigmoid(%54) 参数含义: @@ -4443,7 +4486,6 @@ def aten_sigmoid(mapper, graph, node): def aten_sin(mapper, graph, node): """ 构造数学计算sin的PaddleLayer。 - TorchScript示例: %94 : Tensor = aten::sin(%sinusoid_inp.1) 参数含义: @@ -4474,7 +4516,6 @@ def aten_sin(mapper, graph, node): def aten_size(mapper, graph, node): """ 构造获取shape的PaddleLayer。 - TorchScript示例: %73 : int[] = aten::size(%x.12, %10) 参数含义: @@ -4523,7 +4564,6 @@ def aten_size(mapper, graph, node): def aten_slice(mapper, graph, node): """ 构造切分list或Variable的PaddleLayer。 - TorchScript示例: %83 : int[] = aten::slice(%73, %_81, %82, %75, %77) 参数含义: @@ -4665,7 +4705,6 @@ def aten_slice(mapper, graph, node): def aten_softmax(mapper, graph, node): """ 构造softmax激活的PaddleLayer。 - TorchScript示例: %input2.1 : Tensor = aten::softmax(%input.5, %80, %72) 参数含义: @@ -4702,7 +4741,6 @@ def aten_softmax(mapper, graph, node): def aten_softplus(mapper, graph, node): """ 构造softplus激活的PaddleLayer。 - TorchScript示例: %54 : Tensor = aten::softplus(%x.31, %30, %29) 参数含义: @@ -4740,7 +4778,6 @@ def aten_softplus(mapper, graph, node): def aten_split_with_sizes(mapper, graph, node): """ 构构造split的PaddleLayer。 - TorchScript示例: %1450 : Tensor[] = aten::split_with_sizes(%1446, %1750, %41) 参数含义: @@ -4791,7 +4828,6 @@ def aten_split_with_sizes(mapper, graph, node): def aten_sqrt(mapper, graph, node): """ 构构造sqrt的PaddleLayer。 - TorchScript示例: %787 : Tensor = aten::sqrt(%786) 参数含义: @@ -4822,7 +4858,6 @@ def aten_sqrt(mapper, graph, node): def aten_squeeze(mapper, graph, node): """ 构造删除位数为1的维度的PaddleLayer。 - TorchScript示例: %12 : Tensor = aten::squeeze(%start_logits.1, %4) 参数含义: @@ -4863,7 +4898,6 @@ def aten_squeeze(mapper, graph, node): def aten_stack(mapper, graph, node): """ 构造堆叠Tensor的PaddleLayer。 - TorchScript示例: %x.222 : Tensor = aten::stack(%32, %7) 参数含义: @@ -4904,7 +4938,6 @@ def aten_stack(mapper, graph, node): def aten_sub(mapper, graph, node): """ 构造数值相减的PaddleLayer。 - TorchScript示例: %840 : int = aten::sub(%839, %836, %3) 参数含义: @@ -4959,7 +4992,6 @@ def aten_sub(mapper, graph, node): def aten_sub_(mapper, graph, node): """ 构造数值相减的PaddleLayer。 - TorchScript示例: %840 : int = aten::sub_(%839, %836, %3) 参数含义: @@ -4973,7 +5005,6 @@ def aten_sub_(mapper, graph, node): def aten_t(mapper, graph, node): """ 构造矩阵转置的PaddleLayer。 - TorchScript示例: %840 : int = aten::sub(%839, %836) 参数含义: @@ -5005,7 +5036,6 @@ def aten_t(mapper, graph, node): def aten_tanh(mapper, graph, node): """ 构造tanh激活的PaddleLayer。 - TorchScript示例: %55 : Tensor = aten::tanh(%54) 参数含义: @@ -5037,7 +5067,6 @@ def aten_tanh(mapper, graph, node): def aten_split(mapper, graph, node): """ 构造分割Tensor的PaddleLayer。 - TorchScript示例: %160 : Tensor[] = aten::split(%159, %135, %123) 参数含义: @@ -5084,7 +5113,6 @@ def aten_split(mapper, graph, node): def aten_transpose(mapper, graph, node): """ 构造矩阵转置的PaddleLayer。 - TorchScript示例: %715 : Tensor = aten::transpose(%x.21, %704, %705) 参数含义: @@ -5176,7 +5204,6 @@ def aten_transpose(mapper, graph, node): def aten_to(mapper, graph, node): """ 构造类型转换的PaddleLayer。 - TorchScript示例: %30 : Tensor = aten::to(%extended_attention_mask.1, %12, %5, %5, %4) 参数含义: @@ -5215,7 +5242,6 @@ def aten_to(mapper, graph, node): def aten_type_as(mapper, graph, node): """ 构造转换Tensor类型的PaddleLayer。 - TorchScript示例: %57 : Tensor = aten::type_as(%56, %mask.1) 参数含义: @@ -5257,7 +5283,6 @@ def aten_type_as(mapper, graph, node): def aten_unsqueeze(mapper, graph, node): """ 构造插入维度的PaddleLayer。 - TorchScript示例: %13 : Tensor = aten::unsqueeze(%12, %7) 参数含义: @@ -5298,7 +5323,6 @@ def aten_unsqueeze(mapper, graph, node): def aten_upsample_bilinear2d(mapper, graph, node): """ 构造使用bilinear上采样的PaddleLayer。 - TorchScript示例: %4997 : Tensor = aten::upsample_bilinear2d(%x.13, %4963, %5421, %4995, %4996) 参数含义: @@ -5380,7 +5404,6 @@ def aten_upsample_bilinear2d(mapper, graph, node): def aten_upsample_nearest2d(mapper, graph, node): """ 构造使用nearest上采样的PaddleLayer。 - TorchScript示例: %4997 : Tensor = aten::upsample_nearest2d(%x.13, %4963, %5421, %4995) 参数含义: @@ -5453,7 +5476,6 @@ def aten_upsample_nearest2d(mapper, graph, node): def aten_values(mapper, graph, node): """ 构造对比大小的PaddleLayer。 - TorchScript示例: %5 : Float(1, *, 1024, 2048)[] = aten::values(%1) 参数含义: @@ -5484,14 +5506,12 @@ def aten_values(mapper, graph, node): def aten_view(mapper, graph, node): """ 构造调整大小的PaddleLayer。 - TorchScript示例: %input.152 : Tensor = aten::view(%x.20, %430) 参数含义: %input.152 (Tensor): 输出,view后的Tensor。 %x.20 (Tensor): 需要view的Tensor。 %430 (list): 形状大小组成的list。 - 【注意】view 函数只能用于contiguous后的Tensor上, 也就是只能用于内存中连续存储的Tensor。 如果对Tensor调用过transpose,permute等操作的话会使该Tensor在内存中变得不再连续, @@ -5531,7 +5551,6 @@ def aten_view(mapper, graph, node): def aten_warn(mapper, graph, node): """ 构造warning的PaddleLayer。 - TorchScript示例: = aten::warn(%3, %2) 参数含义: @@ -5572,7 +5591,6 @@ def aten_warn(mapper, graph, node): def aten_where(mapper, graph, node): """ 构造返回一个根据输入condition, 选择x或y的元素组成的多维Tensor的PaddleLayer,该节点实现out = x + y。 - TorchScript示例: %input.4 : Tensor = aten::where(%209, %w0.2, %210) 参数含义: @@ -5613,7 +5631,6 @@ def aten_where(mapper, graph, node): def aten_zeros(mapper, graph, node): """ 构造创建固定形状、数据类型且值全为0的Tensor的PaddleLayer。 - TorchScript示例: %input.49 : Tensor = aten::zeros(%23, %8, %6, %24, %5) 参数含义: @@ -5655,7 +5672,6 @@ def aten_zeros(mapper, graph, node): def aten_zeros_like(mapper, graph, node): """ 构造创建与输入Tensor形状一致的、数据类型且值全为0的Tensor的PaddleLayer。 - TorchScript示例: %782 : Tensor = aten::zeros_like(%n.2, %655, %670, %662, %671, %672) 参数含义: -- GitLab