Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
b07c563a
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看板
提交
b07c563a
编写于
9月 21, 2018
作者:
G
gongweibao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
clean
上级
dda9c355
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
8 addition
and
266 deletion
+8
-266
paddle/fluid/API.spec
paddle/fluid/API.spec
+8
-8
python/paddle/fluid/tests/unittests/op_test.py
python/paddle/fluid/tests/unittests/op_test.py
+0
-3
tools/test_generator.py
tools/test_generator.py
+0
-255
未找到文件。
paddle/fluid/API.spec
浏览文件 @
b07c563a
...
...
@@ -170,6 +170,13 @@ paddle.fluid.layers.unstack ArgSpec(args=['x', 'axis', 'num'], varargs=None, key
paddle.fluid.layers.sequence_enumerate ArgSpec(args=['input', 'win_size', 'pad_value', 'name'], varargs=None, keywords=None, defaults=(0, None))
paddle.fluid.layers.expand ArgSpec(args=['x', 'expand_times', 'name'], varargs=None, keywords=None, defaults=(None,))
paddle.fluid.layers.sequence_concat ArgSpec(args=['input', 'name'], varargs=None, keywords=None, defaults=(None,))
paddle.fluid.layers.uniform_random_batch_size_like ArgSpec(args=['input', 'shape', 'dtype', 'input_dim_idx', 'output_dim_idx', 'min', 'max', 'seed'], varargs=None, keywords=None, defaults=('float32', 0, 0, -1.0, 1.0, 0))
paddle.fluid.layers.gaussian_random ArgSpec(args=['shape', 'mean', 'std', 'seed', 'dtype', 'use_mkldnn'], varargs=None, keywords=None, defaults=(0.0, 1.0, 0, 'float32', False))
paddle.fluid.layers.sampling_id ArgSpec(args=['x', 'min', 'max', 'seed', 'dtype'], varargs=None, keywords=None, defaults=(0.0, 1.0, 0, 'float32'))
paddle.fluid.layers.gaussian_random_batch_size_like ArgSpec(args=['input', 'shape', 'input_dim_idx', 'output_dim_idx', 'mean', 'std', 'seed', 'dtype'], varargs=None, keywords=None, defaults=(0, 0, 0.0, 1.0, 0, 'float32'))
paddle.fluid.layers.sum ArgSpec(args=['x', 'use_mkldnn'], varargs=None, keywords=None, defaults=(False,))
paddle.fluid.layers.slice ArgSpec(args=['input', 'axes', 'starts', 'ends'], varargs=None, keywords=None, defaults=None)
paddle.fluid.layers.shape ArgSpec(args=['input'], varargs=None, keywords=None, defaults=None)
paddle.fluid.layers.data ArgSpec(args=['name', 'shape', 'append_batch_size', 'dtype', 'lod_level', 'type', 'stop_gradient'], varargs=None, keywords=None, defaults=(True, 'float32', 0, VarType.LOD_TENSOR, True))
paddle.fluid.layers.open_files ArgSpec(args=['filenames', 'shapes', 'lod_levels', 'dtypes', 'thread_num', 'buffer_size', 'pass_num', 'is_test'], varargs=None, keywords=None, defaults=(None, None, 1, None))
paddle.fluid.layers.read_file ArgSpec(args=['reader'], varargs=None, keywords=None, defaults=None)
...
...
@@ -249,13 +256,6 @@ paddle.fluid.layers.logical_and ArgSpec(args=[], varargs='args', keywords='kwarg
paddle.fluid.layers.logical_or ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.logical_xor ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.logical_not ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.uniform_random_batch_size_like ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.gaussian_random ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.sampling_id ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.gaussian_random_batch_size_like ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.sum ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.slice ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.shape ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.maxout ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.sigmoid ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
paddle.fluid.layers.logsigmoid ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)
...
...
@@ -379,7 +379,7 @@ paddle.fluid.LoDTensor.__init__ 1. __init__(self: paddle.fluid.core.LoDTensor, a
paddle.fluid.LoDTensor.has_valid_recursive_sequence_lengths has_valid_recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor) -> bool
paddle.fluid.LoDTensor.lod lod(self: paddle.fluid.core.LoDTensor) -> List[List[int]]
paddle.fluid.LoDTensor.recursive_sequence_lengths recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor) -> List[List[int]]
paddle.fluid.LoDTensor.set 1. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float32], arg1: paddle::platform::CPUPlace) -> None 2. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int32], arg1: paddle::platform::CPUPlace) -> None 3. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float64], arg1: paddle::platform::CPUPlace) -> None 4. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int64], arg1: paddle::platform::CPUPlace) -> None 5. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[bool], arg1: paddle::platform::CPUPlace) -> None 6. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint16], arg1: paddle::platform::CPUPlace) -> None 7. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint8], arg1: paddle::platform::CPUPlace) -> None 8. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int8], arg1: paddle::platform::CPUPlace) -> None
9. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float32], arg1: paddle::platform::CUDAPlace) -> None 10. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int32], arg1: paddle::platform::CUDAPlace) -> None 11. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float64], arg1: paddle::platform::CUDAPlace) -> None 12. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int64], arg1: paddle::platform::CUDAPlace) -> None 13. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[bool], arg1: paddle::platform::CUDAPlace) -> None 14. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint16], arg1: paddle::platform::CUDAPlace) -> None 15. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint8], arg1: paddle::platform::CUDAPlace) -> None 16. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int8], arg1: paddle::platform::CUDAPlace) -> None 17. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float32], arg1: paddle::platform::CUDAPinnedPlace) -> None 18. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int32], arg1: paddle::platform::CUDAPinnedPlace) -> None 19. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float64], arg1: paddle::platform::CUDAPinnedPlace) -> None 20. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int64], arg1: paddle::platform::CUDAPinnedPlace) -> None 21. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[bool], arg1: paddle::platform::CUDAPinnedPlace) -> None 22. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint16], arg1: paddle::platform::CUDAPinnedPlace) -> None 23. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint8], arg1: paddle::platform::CUDAPinnedPlace) -> None 24. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int8], arg1: paddle::platform::CUDAPinnedPlace) -> None
paddle.fluid.LoDTensor.set 1. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float32], arg1: paddle::platform::CPUPlace) -> None 2. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int32], arg1: paddle::platform::CPUPlace) -> None 3. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[float64], arg1: paddle::platform::CPUPlace) -> None 4. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int64], arg1: paddle::platform::CPUPlace) -> None 5. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[bool], arg1: paddle::platform::CPUPlace) -> None 6. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint16], arg1: paddle::platform::CPUPlace) -> None 7. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[uint8], arg1: paddle::platform::CPUPlace) -> None 8. set(self: paddle.fluid.core.Tensor, arg0: numpy.ndarray[int8], arg1: paddle::platform::CPUPlace) -> None
paddle.fluid.LoDTensor.set_lod set_lod(self: paddle.fluid.core.LoDTensor, arg0: List[List[int]]) -> None
paddle.fluid.LoDTensor.set_recursive_sequence_lengths set_recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor, arg0: List[List[int]]) -> None
paddle.fluid.LoDTensor.shape shape(self: paddle.fluid.core.Tensor) -> List[int]
...
...
python/paddle/fluid/tests/unittests/op_test.py
浏览文件 @
b07c563a
...
...
@@ -252,9 +252,6 @@ class OpTest(unittest.TestCase):
block
=
program
.
global_block
()
self
.
_append_ops
(
block
)
from
paddle.fluid.transpiler.details
import
program_to_code
program_to_code
(
program
)
inputs
=
self
.
_get_inputs
(
block
)
outputs
=
self
.
_get_outputs
(
block
)
feed_map
=
self
.
feed_var
(
inputs
,
place
)
...
...
tools/test_generator.py
已删除
100644 → 0
浏览文件 @
dda9c355
# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
re
import
functools
import
warnings
import
string
from
six.moves
import
cStringIO
from
paddle.fluid.proto
import
framework_pb2
from
paddle.fluid.framework
import
OpProtoHolder
,
Variable
from
paddle.fluid.layer_helper
import
LayerHelper
g_filer_attrs
=
[
'op_role'
,
'op_role_var'
,
'op_namescope'
]
def
_convert_
(
name
):
"""
Formatting.
Args:
name: The name/alias
This function takes in a name and converts it to a standard format of
group1_group2. Where as per the regular expression, group1 can have
alphabets and numbers and group2 has capital alphabets.
"""
s1
=
re
.
sub
(
'(.)([A-Z][a-z]+)'
,
r
'\1_\2'
,
name
)
return
re
.
sub
(
'([a-z0-9])([A-Z])'
,
r
'\1_\2'
,
s1
).
lower
()
def
_get_inputs
(
op_type
):
op_proto
=
OpProtoHolder
.
instance
().
get_op_proto
(
op_type
)
inputs
=
dict
()
for
ipt
in
op_proto
.
inputs
:
inputs
[
ipt
.
name
]
=
ipt
.
comment
return
inputs
def
_get_outputs
(
op_type
):
op_proto
=
OpProtoHolder
.
instance
().
get_op_proto
(
op_type
)
outputs
=
{}
for
ipt
in
op_proto
.
outputs
:
outputs
[
ipt
.
name
]
=
""
return
outputs
_two_dollar_pattern_
=
re
.
compile
(
r
"\$\$([^\$]+)\$\$"
)
_single_dollar_pattern_
=
re
.
compile
(
r
"\$([^\$]+)\$"
)
_two_bang_pattern_
=
re
.
compile
(
r
"!!([^!]+)!!"
)
def
escape_math
(
text
):
return
_two_bang_pattern_
.
sub
(
r
'$$\1$$'
,
_single_dollar_pattern_
.
sub
(
r
':math:`\1`'
,
_two_dollar_pattern_
.
sub
(
r
"!!\1!!"
,
text
)))
def
get_comment
(
op_type
):
op_proto
=
OpProtoHolder
.
instance
().
get_op_proto
(
op_type
)
comment_lines
=
op_proto
.
comment
.
split
(
"
\n
"
)
comment
=
""
for
line
in
comment_lines
:
line
=
line
.
strip
()
if
len
(
line
)
!=
0
:
comment
+=
escape_math
(
line
)
comment
+=
" "
elif
len
(
comment
)
!=
0
:
comment
+=
"
\n
"
return
comment
def
_get_attrs
(
op_type
):
op_proto
=
OpProtoHolder
.
instance
().
get_op_proto
(
op_type
)
return
op_proto
.
attrs
def
get_indent_space
(
indent
,
space_num
=
4
):
ret
=
""
for
i
in
range
(
0
,
indent
*
space_num
):
ret
+=
" "
return
ret
def
get_input_comments
(
op_type
,
indent
=
2
):
ret
=
""
inputs
=
_get_inputs
(
op_type
)
for
t
in
inputs
:
ret
+=
get_indent_space
(
2
)
+
"%s (Type): %s
\n
"
%
(
_convert_
(
t
),
inputs
[
t
])
for
t
in
_get_attrs
(
op_type
):
if
t
.
name
in
g_filer_attrs
:
continue
ret
+=
get_indent_space
(
2
)
+
"%s (%s): %s
\n
"
%
(
_convert_
(
t
.
name
),
t
.
type
,
_convert_
(
t
.
comment
))
return
ret
def
get_output_comments
(
op_type
,
indent
=
2
):
ret
=
""
for
t
in
_get_outputs
(
op_type
):
ret
+=
get_indent_space
(
2
)
+
"output(${%s_type}): ${%s_comment}
\n
"
%
(
_convert_
(
t
),
_convert_
(
t
))
return
ret
def
get_func_args
(
op_type
):
ret
=
""
inputs
=
_get_inputs
(
op_type
)
for
t
in
inputs
:
ret
+=
"%s,"
%
_convert_
(
t
)
for
t
in
_get_attrs
(
op_type
):
if
t
.
name
in
g_filer_attrs
:
continue
default
=
re
.
findall
(
"\(.+\, default (.+)\(?\)"
,
t
.
comment
)
if
len
(
default
)
>
0
:
#print(default[0])
ret
+=
"{}={},"
.
format
(
_convert_
(
t
.
name
),
default
[
0
])
continue
ret
+=
"%s=,"
%
_convert_
(
t
.
name
)
return
ret
.
strip
(
','
)
def
get_inputs
(
op_type
):
ret
=
"inputs={"
inputs
=
_get_inputs
(
op_type
)
for
t
in
inputs
:
ret
+=
"'{}': {},"
.
format
(
t
,
_convert_
(
t
))
ret
=
ret
.
strip
(
","
)
ret
+=
"}"
if
ret
==
"inputs={}"
:
return
""
return
ret
def
get_outputs
(
op_type
):
ret
=
"outputs={"
inputs
=
_get_outputs
(
op_type
)
for
t
in
inputs
:
ret
+=
"'{}': {},"
.
format
(
t
,
_convert_
(
t
))
ret
=
ret
.
strip
(
","
)
ret
+=
"}"
if
ret
==
"inputs={}"
:
return
""
return
ret
def
get_attrs
(
op_type
):
ret
=
"attrs={"
for
t
in
_get_attrs
(
op_type
):
if
t
.
name
in
g_filer_attrs
:
continue
ret
+=
"'%s': %s,"
%
(
t
.
name
,
_convert_
(
t
.
name
))
ret
=
ret
.
strip
(
","
)
ret
+=
"}"
return
ret
def
get_outvars
(
op_type
,
indent
=
1
):
inputs
=
_get_inputs
(
op_type
)
if
len
(
inputs
)
==
0
:
return
""
ret
=
""
for
t
in
_get_outputs
(
op_type
):
ret
+=
get_indent_space
(
indent
)
+
"%s = helper.create_tmp_variable(dtype=helper.input_dtype('%s'))
\n
"
%
(
(
_convert_
(
t
),
list
(
inputs
)[
0
]))
ret
=
ret
.
strip
(
'
\n
'
)
return
ret
def
get_op_py
(
op_type
):
input_comments
=
get_input_comments
(
op_type
)
output_comments
=
get_output_comments
(
op_type
)
args
=
get_func_args
(
op_type
)
inputs
=
get_inputs
(
op_type
)
outputs
=
get_outputs
(
op_type
)
attrs
=
get_attrs
(
op_type
)
out_vars
=
get_outvars
(
op_type
)
comment
=
get_comment
(
op_type
)
code
=
"""
def {op_type}({args}):
\"\"\"
{comment}
Args:
{input_comments}
Returns:
{output_comments}
\"\"\"
helper = LayerHelper('{op_type}', **locals())
{generated_outvar}
helper.append_op(
type='{op_type}',
{inputs},
{outputs},
{attrs})
return out
"""
.
format
(
comment
=
comment
,
input_comments
=
input_comments
.
strip
(
'
\n
'
),
output_comments
=
output_comments
,
args
=
args
,
generated_outvar
=
out_vars
,
op_type
=
op_type
,
inputs
=
inputs
,
outputs
=
outputs
,
attrs
=
attrs
)
return
code
#print(get_op_py("uniform_random_batch_size_like"))
#print(get_op_py("gaussian_random"))
print
(
get_op_py
(
"sampling_id"
))
print
(
get_op_py
(
"gaussian_random_batch_size_like"
))
print
(
get_op_py
(
"sum"
))
print
(
get_op_py
(
"slice"
))
print
(
get_op_py
(
"shape"
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录