Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
b000e0de
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b000e0de
编写于
6月 08, 2018
作者:
Y
yuyang18
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplize API Reference Documentation
上级
259e63d4
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
84 addition
and
80 deletion
+84
-80
paddle/fluid/operators/batch_size_like.h
paddle/fluid/operators/batch_size_like.h
+7
-7
paddle/fluid/operators/fill_constant_batch_size_like_op.cc
paddle/fluid/operators/fill_constant_batch_size_like_op.cc
+7
-7
paddle/fluid/operators/load_op.cc
paddle/fluid/operators/load_op.cc
+4
-11
paddle/fluid/operators/max_sequence_len_op.cc
paddle/fluid/operators/max_sequence_len_op.cc
+9
-4
python/paddle/fluid/layers/control_flow.py
python/paddle/fluid/layers/control_flow.py
+12
-16
python/paddle/fluid/layers/io.py
python/paddle/fluid/layers/io.py
+28
-1
python/paddle/fluid/layers/layer_function_generator.py
python/paddle/fluid/layers/layer_function_generator.py
+0
-1
python/paddle/fluid/layers/tensor.py
python/paddle/fluid/layers/tensor.py
+17
-33
未找到文件。
paddle/fluid/operators/batch_size_like.h
浏览文件 @
b000e0de
...
...
@@ -54,18 +54,18 @@ class BatchSizeLikeOp : public framework::OperatorWithKernel {
class
BatchSizeLikeOpMaker
:
public
framework
::
OpProtoAndCheckerMaker
{
public:
void
Make
()
final
{
AddInput
(
"Input"
,
"(Tensor) Tensor "
"
whose input_dim_idx'th dimension specifies the batch_size"
);
AddInput
(
"Input"
,
"Tensor
whose input_dim_idx'th dimension specifies the batch_size"
);
AddOutput
(
"Out"
,
"
(Tensor)
Tensor of specified shape will be filled "
"Tensor of specified shape will be filled "
"with the specified value"
);
AddAttr
<
std
::
vector
<
int
>>
(
"shape"
,
"
(vector<int>)
The shape of the output"
);
AddAttr
<
std
::
vector
<
int
>>
(
"shape"
,
"The shape of the output"
);
AddAttr
<
int
>
(
"input_dim_idx"
,
"
(int, default 0)
The index of input's batch size dimension"
)
"
default 0.
The index of input's batch size dimension"
)
.
SetDefault
(
0
);
AddAttr
<
int
>
(
"output_dim_idx"
,
"
(int, default 0)
The index of output's batch size dimension"
)
"
default 0.
The index of output's batch size dimension"
)
.
SetDefault
(
0
);
Apply
();
}
...
...
paddle/fluid/operators/fill_constant_batch_size_like_op.cc
浏览文件 @
b000e0de
...
...
@@ -32,16 +32,16 @@ class FillConstantBatchSizeLikeOp : public BatchSizeLikeOp {
class
FillConstantBatchSizeLikeOpMaker
:
public
BatchSizeLikeOpMaker
{
protected:
void
Apply
()
override
{
AddAttr
<
int
>
(
"dtype"
,
"(int, default 5 (FP32)) "
"Output data type
"
)
AddAttr
<
int
>
(
"dtype"
,
"It could be numpy.dtype. Output data type. Default is float32
"
)
.
SetDefault
(
framework
::
proto
::
VarType
::
FP32
);
AddAttr
<
float
>
(
"value"
,
"
(float, default 0)
The value to be filled"
)
AddAttr
<
float
>
(
"value"
,
"
default 0.
The value to be filled"
)
.
SetDefault
(
0.0
f
);
AddComment
(
R"DOC(
FillConstantBatchSizeLike Operator.
Fill up a variable with specified constant value
.
This function creates a tensor of specified *shape*, *dtype* and batch size,
and initializes this with a constant supplied in *value*. The batch size is
obtained from the `input` tensor
.
)DOC"
);
}
...
...
paddle/fluid/operators/load_op.cc
浏览文件 @
b000e0de
...
...
@@ -74,25 +74,18 @@ class LoadOp : public framework::OperatorBase {
class
LoadOpProtoMaker
:
public
framework
::
OpProtoAndCheckerMaker
{
public:
void
Make
()
override
{
AddOutput
(
"Out"
,
"
(Tensor)
The tensor need to be loaded"
);
AddOutput
(
"Out"
,
"The tensor need to be loaded"
);
AddAttr
<
bool
>
(
"load_as_fp16"
,
"(boolean, default false)"
"If true, the tensor will be first loaded and then "
"converted to float16 data type. Otherwise, the tensor will be "
"directly loaded without data type conversion."
)
"directly loaded without data type conversion.
Default is false.
"
)
.
SetDefault
(
false
);
AddAttr
<
std
::
string
>
(
"file_path"
,
"(string) "
"Variable will be loaded from
\"
file_path
\"
."
)
R"(Variable will be loaded from "file_path")"
)
.
AddCustomChecker
(
[](
const
std
::
string
&
path
)
{
return
!
path
.
empty
();
});
AddComment
(
R"DOC(
Load Operator.
Load operator will load a tensor variable from disk file.
)DOC"
);
AddComment
(
"Load operator will load a tensor variable from disk file."
);
}
};
}
// namespace operators
...
...
paddle/fluid/operators/max_sequence_len_op.cc
浏览文件 @
b000e0de
...
...
@@ -42,10 +42,15 @@ class MaxSeqenceLenOp : public framework::OperatorBase {
class
MaxSeqenceLenOpProtoMaker
:
public
framework
::
OpProtoAndCheckerMaker
{
public:
void
Make
()
override
{
AddInput
(
"RankTable"
,
"The lod_rank_table."
);
AddOutput
(
"Out"
,
"The max sequence length."
);
AddComment
(
R"DOC(Calculate the max sequence length through lod_rank_table.)DOC"
);
AddInput
(
"RankTable"
,
"Input variable which is a LoDRankTable object"
);
AddOutput
(
"Out"
,
"The max sequence length"
);
AddComment
(
R"DOC(
Given a LoDRankTable object, this layer returns the max length of
a batch of sequences. In fact, a LoDRankTable object contains a list of
tuples(<sequence index, sequence length>) and the list is already sorted by
sequence length in descending order, so the operator just returns the
sequence length of the first tuple element
)DOC"
);
}
};
...
...
python/paddle/fluid/layers/control_flow.py
浏览文件 @
b000e0de
...
...
@@ -13,7 +13,7 @@
# limitations under the License.
import
contextlib
from
layer_function_generator
import
autodoc
from
layer_function_generator
import
autodoc
,
templatedoc
from
tensor
import
assign
,
fill_constant
from
..
import
core
from
..framework
import
Program
,
Variable
,
Operator
...
...
@@ -721,26 +721,22 @@ def lod_rank_table(x, level=0):
return
table
@
templatedoc
()
def
max_sequence_len
(
rank_table
):
"""Max Sequence Len Operator. Given a LoDRankTable object, this layer
returns the max length of a batch of sequences. In fact, a LoDRankTable
object contains a list of tuples(<sequence index, sequence length>) and
the list is already sorted by sequence length in descending order, so the
operator just returns the sequence length of the first tuple element.
"""
${comment}
>>> import paddle.fluid as fluid
>>> x = fluid.layers.data(name='x', shape=[10], dtype='float32',
>>> lod_level=1)
>>> rank_table = layers.lod_rank_table(x=x, level=0)
>>> max_seq_len = layers.max_sequence_len(rank_table)
Args:
rank_table
(Variable): Input variable which is a LoDRankTable object
.
rank_table
(${rank_table_type}): ${rank_table_comment}
.
Returns:
Variable: The max length of sequence.
Examples:
.. code-block:: python
x = fluid.layers.data(name='x', shape=[10],
dtype='float32', lod_level=1)
rank_table = layers.lod_rank_table(x=x, level=0)
max_seq_len = layers.max_sequence_len(rank_table)
(${out_type}): ${out_comment}
"""
helper
=
LayerHelper
(
"max_seqence_len"
,
**
locals
())
res
=
helper
.
create_tmp_variable
(
dtype
=
"int64"
)
...
...
python/paddle/fluid/layers/io.py
浏览文件 @
b000e0de
...
...
@@ -19,11 +19,12 @@ from ..unique_name import generate as unique_name
from
control_flow
import
BlockGuard
from
..layer_helper
import
LayerHelper
from
..executor
import
global_scope
from
layer_function_generator
import
generate_layer_fn
,
templatedoc
__all__
=
[
'data'
,
'BlockGuardServ'
,
'ListenAndServ'
,
'Send'
,
'open_recordio_file'
,
'open_files'
,
'read_file'
,
'shuffle'
,
'batch'
,
'double_buffer'
,
'random_data_generator'
,
'Preprocessor'
'random_data_generator'
,
'Preprocessor'
,
'load'
]
...
...
@@ -662,3 +663,29 @@ class Preprocessor(object):
"sink_var_names"
:
self
.
sink_var_names
})
return
monkey_patch_reader_methods
(
self
.
reader
)
@
templatedoc
()
def
load
(
out
,
file_path
,
load_as_fp16
=
None
):
"""
${comment}
>>> import paddle.fluid as fluid
>>> tmp_tensor = fluid.layers.create_tensor(dtype='float32')
>>> fluid.layers.load(tmp_tensor, "./tmp_tensor.bin")
Args:
out(${out_type}): ${out_comment}.
file_path(${file_path_type}): ${file_path_comment}.
load_as_fp16(${load_as_fp16_type}): ${load_as_fp16_comment}.
Returns:
None
"""
helper
=
LayerHelper
(
"load"
,
**
locals
())
attrs
=
{
"file_path"
:
file_path
}
if
load_as_fp16
is
not
None
:
attrs
[
'load_as_fp16'
]
=
load_as_fp16
helper
.
append_op
(
type
=
"load"
,
inputs
=
{},
output
=
{
"Out"
:
out
},
args
=
attrs
)
python/paddle/fluid/layers/layer_function_generator.py
浏览文件 @
b000e0de
...
...
@@ -263,7 +263,6 @@ def templatedoc():
output_name
=
_convert_
(
each_opt
.
name
)
args
[
"{0}_comment"
.
format
(
output_name
)]
=
each_opt
.
comment
args
[
"{0}_type"
.
format
(
output_name
)]
=
"Variable"
func
.
__doc__
=
tmpl
.
substitute
(
args
)
return
func
...
...
python/paddle/fluid/layers/tensor.py
浏览文件 @
b000e0de
...
...
@@ -18,6 +18,7 @@ from ..framework import convert_np_dtype_to_dtype_
from
..framework
import
Variable
from
..initializer
import
Constant
,
force_init_on_cpu
from
..core
import
VarDesc
from
layer_function_generator
import
templatedoc
import
numpy
__all__
=
[
...
...
@@ -266,6 +267,7 @@ def fill_constant(shape, dtype, value, force_cpu=False, out=None):
return
out
@
templatedoc
()
def
fill_constant_batch_size_like
(
input
,
shape
,
dtype
,
...
...
@@ -273,30 +275,28 @@ def fill_constant_batch_size_like(input,
input_dim_idx
=
0
,
output_dim_idx
=
0
):
"""
**fill_constant_batch_size_like**
This function creates a tensor of specified *shape*, *dtype* and batch size,
and initializes this with a constant supplied in *value*. The batch size is
obtained from the `input` tensor.
${comment}
It also sets *stop_gradient* to True.
>>> data = fluid.layers.fill_constant_batch_size_like(
>>> input=like, shape=[1], value=0, dtype='int64')
Args:
input(Variable): Tensor whose dimensions will be used to get batch size
shape(tuple|list|None): Shape of output tensor
dtype(np.dtype|core.VarDesc.VarType|str): Data type of output tensor
value(float): Constant value to initialize the output tensor
input_dim_idx(int): Index of input's batch size dimension
output_dim_idx(int): Index of output's batch size dimension
input(${input_type}): ${input_comment}.
Returns:
Variable: The tensor variable storing the output
shape(${shape_type}): ${shape_comment}.
Examples:
.. code-block:: python
dtype(${dtype_type}): ${dtype_comment}.
value(${value_type}): ${value_comment}.
data = fluid.layers.fill_constant_batch_size_like(
input=like, shape=[1], value=0, dtype='int64')
input_dim_idx(${input_dim_idx_type}): ${input_dim_idx_comment}.
output_dim_idx(${output_dim_idx_type}): ${output_dim_idx_comment}.
Returns:
${out_comment}
"""
helper
=
LayerHelper
(
"fill_constant_batch_size_like"
,
**
locals
())
out
=
helper
.
create_tmp_variable
(
dtype
=
dtype
)
...
...
@@ -437,22 +437,6 @@ def save_combine(x, file_path, overwrite=True):
"overwrite"
:
overwrite
})
def
load
(
out
,
file_path
):
"""
Loads a variable from a given file.
Args:
out(variable): The variable to be read from the disk file.
file_path(str): The path of the disk file.
"""
helper
=
LayerHelper
(
"load"
,
**
locals
())
helper
.
append_op
(
type
=
"load"
,
inputs
=
{},
output
=
{
"Out"
:
out
},
args
=
{
"file_path"
:
file_path
})
def
load_combine
(
out
,
file_path
):
"""
Loads a list of vairables from a single file.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录