Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSlim
提交
cfc69f3e
P
PaddleSlim
项目概览
PaddlePaddle
/
PaddleSlim
大约 1 年 前同步成功
通知
51
Star
1434
Fork
344
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
16
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSlim
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
cfc69f3e
编写于
2月 28, 2020
作者:
B
Bai Yifan
提交者:
GitHub
2月 28, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix distillation doc (#161)
上级
0ae32c6e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
13 deletion
+22
-13
docs/zh_cn/api_cn/single_distiller_api.rst
docs/zh_cn/api_cn/single_distiller_api.rst
+22
-13
未找到文件。
docs/zh_cn/api_cn/single_distiller_api.rst
浏览文件 @
cfc69f3e
...
...
@@ -4,7 +4,7 @@
merge
---------
.. py:function:: paddleslim.dist.merge(teacher_program, student_program, data_name_map, place, scope=
fluid.global_scope()
, name_prefix='teacher_')
.. py:function:: paddleslim.dist.merge(teacher_program, student_program, data_name_map, place, scope=
None
, name_prefix='teacher_')
`源代码 <https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L19>`_
...
...
@@ -16,8 +16,8 @@ merge将teacher_program融合到student_program中。在融合的program中,
- **student_program** (Program)-定义了student模型的 `paddle program <https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/fluid_cn/Program_cn.html#program>`_
- **data_name_map** (dict)-teacher输入接口名与student输入接口名的映射,其中dict的 *key* 为teacher的输入名,*value* 为student的输入名
- **place** (fluid.CPUPlace()|fluid.CUDAPlace(N))-该参数表示程序运行在何种设备上,这里的N为GPU对应的ID
- **scope** (Scope)-该参数表示程序使用的变量作用域,如果不指定将使用默认的全局作用域。默认值:
`fluid.global_scope() <https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/fluid_cn/global_scope_cn.html#global-scope>`_
- **name_prefix** (str)-merge操作将统一为teacher的 `Variables <https://www.paddlepaddle.org.cn/documentation/docs/zh/
1.3/api_guides/low_level/program
.html#variable>`_ 添加的名称前缀name_prefix。默认值:'teacher_'
- **scope** (Scope)-该参数表示程序使用的变量作用域,如果不指定将使用默认的全局作用域。默认值:
None
- **name_prefix** (str)-merge操作将统一为teacher的 `Variables <https://www.paddlepaddle.org.cn/documentation/docs/zh/
develop/beginners_guide/basic_concept/variable
.html#variable>`_ 添加的名称前缀name_prefix。默认值:'teacher_'
**返回:** 无
...
...
@@ -53,7 +53,7 @@ merge将teacher_program融合到student_program中。在融合的program中,
fsp_loss
---------
.. py:function:: paddleslim.dist.fsp_loss(teacher_var1_name, teacher_var2_name, student_var1_name, student_var2_name, program=
fluid.default_main_program()
)
.. py:function:: paddleslim.dist.fsp_loss(teacher_var1_name, teacher_var2_name, student_var1_name, student_var2_name, program=
None
)
`源代码 <https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L90>`_
...
...
@@ -65,13 +65,14 @@ fsp_loss为program内的teacher var和student var添加fsp loss,出自论文 `
- **teacher_var2_name** (str): teacher_var2的名称. 对应的variable是一个形为`[batch_size, y_channel, height, width]`的4-D特征图Tensor,数据类型为float32或float64。只有y_channel可以与teacher_var1的x_channel不同,其他维度必须与teacher_var1相同
- **student_var1_name** (str): student_var1的名称. 对应的variable需与teacher_var1尺寸保持一致,是一个形为`[batch_size, x_channel, height, width]`的4-D特征图Tensor,数据类型为float32或float64
- **student_var2_name** (str): student_var2的名称. 对应的variable需与teacher_var2尺寸保持一致,是一个形为`[batch_size, y_channel, height, width]`的4-D特征图Tensor,数据类型为float32或float64。只有y_channel可以与student_var1的x_channel不同,其他维度必须与student_var1相同
- **program** (Program): 用于蒸馏训练的fluid program
。默认值: `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/1.3/api_cn/fluid_cn.html#default-main-program>`_
- **program** (Program): 用于蒸馏训练的fluid program
, 如果未指定则使用 `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/fluid_cn/default_main_program_cn.html#default-main-program>`_ 。默认值:None
**返回:** 由teacher_var1, teacher_var2, student_var1, student_var2组合得到的fsp_loss
**使用示例:**
.. code-block:: python
import paddle.fluid as fluid
import paddleslim.dist as dist
student_program = fluid.Program()
...
...
@@ -98,21 +99,24 @@ fsp_loss为program内的teacher var和student var添加fsp loss,出自论文 `
l2_loss
------------
.. py:function:: paddleslim.dist.l2_loss(teacher_var_name, student_var_name, program=fluid.default_main_program())[[源代码]](https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L118)
.. py:function:: paddleslim.dist.l2_loss(teacher_var_name, student_var_name, program=None)
`源代码 <https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L118>`_
:
l2_loss为program内的teacher var和student var添加l2 loss
l2_loss为program内的teacher var和student var添加l2 loss
**参数:**
- **teacher_var_name** (str): teacher_var的名称.
- **student_var_name** (str): student_var的名称.
- **program** (Program): 用于蒸馏训练的fluid program。
默认值: `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/1.3/api_cn/fluid_cn.html#default-main-program>`_
- **program** (Program): 用于蒸馏训练的fluid program。
如果未指定则使用 `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/fluid_cn/default_main_program_cn.html#default-main-program>`_ 。默认值:None
**返回:** 由teacher_var, student_var组合得到的l2_loss
**使用示例:**
.. code-block:: python
import paddle.fluid as fluid
import paddleslim.dist as dist
student_program = fluid.Program()
...
...
@@ -139,7 +143,9 @@ l2_loss
soft_label_loss
-------------------
.. py:function:: paddleslim.dist.soft_label_loss(teacher_var_name, student_var_name, program=fluid.default_main_program(), teacher_temperature=1., student_temperature=1.)[[源代码]](https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L136)
.. py:function:: paddleslim.dist.soft_label_loss(teacher_var_name, student_var_name, program=None, teacher_temperature=1., student_temperature=1.)
`源代码 <https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L136>`_
soft_label_loss为program内的teacher var和student var添加soft label loss,出自论文 `Distilling the Knowledge in a Neural Network <https://arxiv.org/pdf/1503.02531.pdf>`_
...
...
@@ -147,7 +153,7 @@ soft_label_loss为program内的teacher var和student var添加soft label loss,
- **teacher_var_name** (str): teacher_var的名称.
- **student_var_name** (str): student_var的名称.
- **program** (Program): 用于蒸馏训练的fluid program。
默认值: `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/1.3/api_cn/fluid_cn.html#default-main-program>`_
- **program** (Program): 用于蒸馏训练的fluid program。
如果未指定则使用 `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/fluid_cn/default_main_program_cn.html#default-main-program>`_ 。默认值:None
- **teacher_temperature** (float): 对teacher_var进行soft操作的温度值,温度值越大得到的特征图越平滑
- **student_temperature** (float): 对student_var进行soft操作的温度值,温度值越大得到的特征图越平滑
...
...
@@ -182,14 +188,16 @@ soft_label_loss为program内的teacher var和student var添加soft label loss,
loss
--------
.. py:function:: paddleslim.dist.loss(loss_func, program=fluid.default_main_program(), **kwargs) [[源代码]](https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L165)
.. py:function:: paddleslim.dist.loss(loss_func, program=None, **kwargs)
`源代码 <https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/dist/single_distiller.py#L165>`_
:
loss函数支持对任意多对teacher_var和student_var使用自定义损失函数
loss函数支持对任意多对teacher_var和student_var使用自定义损失函数
**参数:**
- **loss_func**( python function): 自定义的损失函数,输入为teacher var和student var,输出为自定义的loss
- **program** (Program): 用于蒸馏训练的fluid program。
默认值: `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/1.3/api_cn/fluid_cn.html#default-main-program>`_
- **program** (Program): 用于蒸馏训练的fluid program。
如果未指定则使用 `fluid.default_main_program() <https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/fluid_cn/default_main_program_cn.html#default-main-program>`_ 。默认值:None
- **\**kwargs** : loss_func输入名与对应variable名称
**返回** :自定义的损失函数loss
...
...
@@ -197,6 +205,7 @@ loss
**使用示例:**
.. code-block:: python
import paddle.fluid as fluid
import paddleslim.dist as dist
student_program = fluid.Program()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录