Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
5933d629
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
5933d629
编写于
3月 26, 2019
作者:
C
Cheerego
提交者:
GitHub
3月 26, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Deadlink fix 0325 (#721) (#722)
* deadlink0325 * update
上级
69384653
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
3 addition
and
41 deletion
+3
-41
doc/fluid/advanced_usage/development/new_op/new_op.md
doc/fluid/advanced_usage/development/new_op/new_op.md
+1
-16
doc/fluid/advanced_usage/development/new_op/new_op_en.md
doc/fluid/advanced_usage/development/new_op/new_op_en.md
+0
-23
doc/fluid/advanced_usage/development/new_op/op_notes.md
doc/fluid/advanced_usage/development/new_op/op_notes.md
+1
-1
doc/fluid/user_guides/howto/prepare_data/index.rst
doc/fluid/user_guides/howto/prepare_data/index.rst
+1
-1
未找到文件。
doc/fluid/advanced_usage/development/new_op/new_op.md
浏览文件 @
5933d629
# 如何写新的op
-
[
概念简介
](
#概念简介
)
-
[
实现C++类
](
#实现c类
)
-
[
定义ProtoMaker类
](
#定义protomaker类
)
-
[
定义Operator类
](
#定义operator类
)
-
[
定义OpKernel类
](
#定义opkernel类
)
-
[
注册Operator
](
#注册operator
)
-
[
编译
](
#编译
)
-
[
绑定Python
](
#绑定python
)
-
[
实现单元测试
](
#实现单元测试
)
-
[
前向Operator单测
](
#前向operator单测
)
-
[
反向Operator单测
](
#反向operator单测
)
-
[
编译和执行
](
#编译和执行
)
-
[
注意事项
](
#注意事项
)
## 概念简介
简单介绍需要用到基类,详细介绍请参考设计文档。
...
...
@@ -92,7 +77,7 @@ The equation is: Out = X * Y
构造函数里通过
`AddInput`
添加输入参数,通过
`AddOutput`
添加输出参数,通过
`AddComment`
添加Op的注释。这些函数会将对应内容添加到
`OpProto`
中。
上面的代码在
`MulOp`
中添加两个输入
`X`
和
`Y`
,添加了一个输出
`Out`
,并解释了各自含义,命名请遵守
[
命名规范
](
https://github.com/PaddlePaddle/
Paddle/blob/develop
/doc/fluid/dev/name_convention.md
)
。
上面的代码在
`MulOp`
中添加两个输入
`X`
和
`Y`
,添加了一个输出
`Out`
,并解释了各自含义,命名请遵守
[
命名规范
](
https://github.com/PaddlePaddle/
FluidDoc/blob/release/1.2
/doc/fluid/dev/name_convention.md
)
。
再以
[
`ScaleOp`
](
https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/fluid/operators/scale_op.cc#L38-L55
)
为例:
...
...
doc/fluid/advanced_usage/development/new_op/new_op_en.md
浏览文件 @
5933d629
# How to write a new operator
<!--## Table of Contents
-
[
How to write a new operator
](
#How
to write a new operator)
-
[
Background
](
#Background
)
-
[
Implementing C++ Types
](
#Implementing
C++ Types)
-
[
Defining ProtoMaker
](
#Defining
ProtoMaker)
-
[
Defining the GradProtoMaker class
](
#Defining
the GradProtoMaker class)
-
[
Defining Operator
](
#Defining
Operator)
-
[
Defining OpKernel
](
#Defining
OpKernel)
-
[
Registering Operator and OpKernel
](
#Registering
Operator and OpKernel)
-
[
Compilation
](
#Compilation
)
-
[
Python Binding
](
#Python
Binding)
-
[
Unit Tests
](
#Unit
Tests)
-
[
Unit Test for Forward Operators
](
#Unit
Test for Forward Operators)
-
[
Unit test for backward operators
](
#Unit
test for backward operators)
-
[
Compiling and Running
](
#Compiling
and Running)
-
[
Remarks
](
#Remarks
)
-
[
PADDLE_ENFORCE Usage Note
](
#PADDLE_ENFORCE
Usage Note)
-
[
General Principles
](
#General
Principles)
-
[
Error Message Standard
](
#Error
Message Standard)
-
[
Typical Problems
](
#Typical
Problems)
-
[
OP InferShape check message special instructions
](
#OP
InferShape check message special instructions)
-->
<a
name=
"Background"
></a>
## Background
...
...
doc/fluid/advanced_usage/development/new_op/op_notes.md
浏览文件 @
5933d629
...
...
@@ -92,7 +92,7 @@ Operator继承关系图:
5.
框架没有提供默认的op_infer_var_type方法,用户需要根据实际情况添加op_infer_var_shape。严格来说每个Op都应该注册一个InferVarType,op_infer_var_type根据输入的Var的type和dtype推断输出Var的type和dtype。
**注意:**
在Python端的LayerHelper中create_variable_for_type_inference操作返回的Variable里面是LoDTensor,C++端的InferVarType可以修改
`Variable`
的type和dtype。
更多内容请参考:
[
如何写新的Op
](
../
new_op.html
)
更多内容请参考:
[
如何写新的Op
](
new_op.html
)
## 写Op注意事项
### 1.Op可以支持输入输出类型
...
...
doc/fluid/user_guides/howto/prepare_data/index.rst
浏览文件 @
5933d629
...
...
@@ -13,7 +13,7 @@ Step1: 自定义Reader生成训练/预测数据
Batch级的Reader每次返回一个Batch的数据,Sample级的Reader每次返回单个样本的数据
如果您的数据是Sample级的数据,我们提供了一个可以
组建batch及数据预处理
的工具::code:`Python Reader` 。
如果您的数据是Sample级的数据,我们提供了一个可以
数据预处理和组建batch
的工具::code:`Python Reader` 。
Step2: 将数据送入网络进行训练/预测
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录