Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
b156c6a3
P
Paddle
项目概览
Crayon鑫
/
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看板
提交
b156c6a3
编写于
11月 28, 2017
作者:
P
peterzhang2029
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/PaddlePaddle/Paddle
into hsigmoid_gpu
上级
ab1af66b
985e4ab6
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
176 addition
and
72 deletion
+176
-72
paddle/operators/conv_transpose_op.cc
paddle/operators/conv_transpose_op.cc
+9
-9
paddle/operators/detail/send_recv.proto
paddle/operators/detail/send_recv.proto
+2
-4
python/paddle/v2/fluid/evaluator.py
python/paddle/v2/fluid/evaluator.py
+2
-2
python/paddle/v2/fluid/executor.py
python/paddle/v2/fluid/executor.py
+2
-2
python/paddle/v2/fluid/framework.py
python/paddle/v2/fluid/framework.py
+5
-5
python/paddle/v2/fluid/io.py
python/paddle/v2/fluid/io.py
+9
-10
python/paddle/v2/fluid/layer_helper.py
python/paddle/v2/fluid/layer_helper.py
+3
-4
python/paddle/v2/fluid/layers.py
python/paddle/v2/fluid/layers.py
+93
-2
python/paddle/v2/fluid/tests/test_array_read_write_op.py
python/paddle/v2/fluid/tests/test_array_read_write_op.py
+2
-2
python/paddle/v2/fluid/tests/test_conditional_block.py
python/paddle/v2/fluid/tests/test_conditional_block.py
+5
-3
python/paddle/v2/fluid/tests/test_executor_and_mul.py
python/paddle/v2/fluid/tests/test_executor_and_mul.py
+5
-7
python/paddle/v2/fluid/tests/test_layers.py
python/paddle/v2/fluid/tests/test_layers.py
+9
-0
python/paddle/v2/fluid/tests/test_lod_rank_table.py
python/paddle/v2/fluid/tests/test_lod_rank_table.py
+1
-2
python/paddle/v2/fluid/tests/test_operator_desc.py
python/paddle/v2/fluid/tests/test_operator_desc.py
+6
-2
python/paddle/v2/fluid/tests/test_parameter.py
python/paddle/v2/fluid/tests/test_parameter.py
+6
-4
python/paddle/v2/fluid/tests/test_program.py
python/paddle/v2/fluid/tests/test_program.py
+11
-10
python/paddle/v2/fluid/tests/test_shrink_rnn_memory.py
python/paddle/v2/fluid/tests/test_shrink_rnn_memory.py
+4
-2
python/paddle/v2/fluid/tests/test_variable.py
python/paddle/v2/fluid/tests/test_variable.py
+2
-2
未找到文件。
paddle/operators/conv_transpose_op.cc
浏览文件 @
b156c6a3
...
@@ -74,12 +74,12 @@ Conv2DTransposeOpMaker::Conv2DTransposeOpMaker(
...
@@ -74,12 +74,12 @@ Conv2DTransposeOpMaker::Conv2DTransposeOpMaker(
"The format of output tensor is also NCHW."
);
"The format of output tensor is also NCHW."
);
AddAttr
<
std
::
vector
<
int
>>
(
AddAttr
<
std
::
vector
<
int
>>
(
"strides"
,
"strides"
,
"(vector<int> defa
lu
t:{1, 1}), the strides(h_stride, w_stride) of "
"(vector<int> defa
ul
t:{1, 1}), the strides(h_stride, w_stride) of "
"convolution transpose operator."
)
"convolution transpose operator."
)
.
SetDefault
({
1
,
1
});
.
SetDefault
({
1
,
1
});
AddAttr
<
std
::
vector
<
int
>>
(
AddAttr
<
std
::
vector
<
int
>>
(
"paddings"
,
"paddings"
,
"(vector<int> defa
lu
t:{0, 0}), the paddings(h_pad, w_pad) of convolution "
"(vector<int> defa
ul
t:{0, 0}), the paddings(h_pad, w_pad) of convolution "
"transpose operator."
)
"transpose operator."
)
.
SetDefault
({
0
,
0
});
.
SetDefault
({
0
,
0
});
AddComment
(
R"DOC(
AddComment
(
R"DOC(
...
@@ -101,8 +101,8 @@ Example:
...
@@ -101,8 +101,8 @@ Example:
Output:
Output:
Output shape: (N, C_out, H_out, W_out)
Output shape: (N, C_out, H_out, W_out)
where
where
H_out = (H_in - 1) * strides[0] - 2 * paddings[0] +
filter_size[0]
;
H_out = (H_in - 1) * strides[0] - 2 * paddings[0] +
H_f
;
W_out = (W_in - 1) * strides[1] - 2 * paddings[1] +
filter_size[1]
;
W_out = (W_in - 1) * strides[1] - 2 * paddings[1] +
W_f
;
)DOC"
);
)DOC"
);
}
}
...
@@ -130,12 +130,12 @@ Conv3DTransposeOpMaker::Conv3DTransposeOpMaker(
...
@@ -130,12 +130,12 @@ Conv3DTransposeOpMaker::Conv3DTransposeOpMaker(
"the number of channels, D is the depth of the feature, H is the "
"the number of channels, D is the depth of the feature, H is the "
"height of the feature, and W is the width of the feature."
);
"height of the feature, and W is the width of the feature."
);
AddAttr
<
std
::
vector
<
int
>>
(
"strides"
,
AddAttr
<
std
::
vector
<
int
>>
(
"strides"
,
"(vector<int> defa
lu
t:{1, 1, 1}), the "
"(vector<int> defa
ul
t:{1, 1, 1}), the "
"strides{d_stride, h_stride, w_stride} of "
"strides{d_stride, h_stride, w_stride} of "
"convolution transpose operator."
)
"convolution transpose operator."
)
.
SetDefault
({
1
,
1
,
1
});
.
SetDefault
({
1
,
1
,
1
});
AddAttr
<
std
::
vector
<
int
>>
(
"paddings"
,
AddAttr
<
std
::
vector
<
int
>>
(
"paddings"
,
"(vector<int> defa
lu
t:{0, 0, 0}), paddings(d_pad, "
"(vector<int> defa
ul
t:{0, 0, 0}), paddings(d_pad, "
"h_pad, w_pad) of convolution transpose operator."
)
"h_pad, w_pad) of convolution transpose operator."
)
.
SetDefault
({
0
,
0
,
0
});
.
SetDefault
({
0
,
0
,
0
});
AddComment
(
R"DOC(
AddComment
(
R"DOC(
...
@@ -158,9 +158,9 @@ Example:
...
@@ -158,9 +158,9 @@ Example:
Output:
Output:
Output shape: (N, C_out, D_out, H_out, W_out)
Output shape: (N, C_out, D_out, H_out, W_out)
where
where
D_out = (D_in - 1) * strides[0] - 2 * paddings[0] +
filter_size[0]
;
D_out = (D_in - 1) * strides[0] - 2 * paddings[0] +
D_f
;
H_out = (H_in - 1) * strides[1] - 2 * paddings[1] +
filter_size[1]
;
H_out = (H_in - 1) * strides[1] - 2 * paddings[1] +
H_f
;
W_out = (W_in - 1) * strides[2] - 2 * paddings[2] +
filter_size[2]
;
W_out = (W_in - 1) * strides[2] - 2 * paddings[2] +
W_f
;
)DOC"
);
)DOC"
);
}
}
...
...
paddle/operators/detail/send_recv.proto
浏览文件 @
b156c6a3
...
@@ -17,7 +17,7 @@ syntax = "proto3";
...
@@ -17,7 +17,7 @@ syntax = "proto3";
package
sendrecv
;
package
sendrecv
;
service
SendRecvService
{
service
SendRecvService
{
// For parameter server round-robin like hashing, do not split tensors.
// For parameter server round-robin like hashing, do not split tensors.
// Send and recv only one tensor
// Send and recv only one tensor
rpc
SendVariable
(
VariableMessage
)
returns
(
VariableMessage
)
{}
rpc
SendVariable
(
VariableMessage
)
returns
(
VariableMessage
)
{}
}
}
...
@@ -32,6 +32,4 @@ message VariableMessage {
...
@@ -32,6 +32,4 @@ message VariableMessage {
bytes
serialized
=
2
;
bytes
serialized
=
2
;
}
}
message
VoidMessage
{
message
VoidMessage
{}
\ No newline at end of file
}
\ No newline at end of file
python/paddle/v2/fluid/evaluator.py
浏览文件 @
b156c6a3
...
@@ -26,9 +26,9 @@ class Evaluator(object):
...
@@ -26,9 +26,9 @@ class Evaluator(object):
name(str): The name of evaluator. such as, "accuracy". Used for generate
name(str): The name of evaluator. such as, "accuracy". Used for generate
temporary variable name.
temporary variable name.
main_program(Program, optional): The evaluator should be added to this
main_program(Program, optional): The evaluator should be added to this
main_program. Default
g_main_program
main_program. Default
default_main_program()
startup_program(Program, optional):The parameter should be added to this
startup_program(Program, optional):The parameter should be added to this
startup_program. Default
g_startup_program
startup_program. Default
default_startup_program()
Attributes:
Attributes:
states(list): The list of state variables. states will be reset to zero
states(list): The list of state variables. states will be reset to zero
...
...
python/paddle/v2/fluid/executor.py
浏览文件 @
b156c6a3
import
numpy
as
np
import
numpy
as
np
from
.
import
core
from
.
import
core
from
framework
import
Program
,
g
_main_program
from
framework
import
Program
,
default
_main_program
__all__
=
[
'Executor'
,
'g_scope'
]
__all__
=
[
'Executor'
,
'g_scope'
]
...
@@ -103,7 +103,7 @@ class Executor(object):
...
@@ -103,7 +103,7 @@ class Executor(object):
fetch_list
=
[]
fetch_list
=
[]
if
program
is
None
:
if
program
is
None
:
program
=
g_main_program
program
=
default_main_program
()
if
not
isinstance
(
program
,
Program
):
if
not
isinstance
(
program
,
Program
):
raise
TypeError
()
raise
TypeError
()
...
...
python/paddle/v2/fluid/framework.py
浏览文件 @
b156c6a3
...
@@ -6,7 +6,7 @@ import proto.framework_pb2 as framework_pb2
...
@@ -6,7 +6,7 @@ import proto.framework_pb2 as framework_pb2
__all__
=
[
__all__
=
[
'Block'
,
'Variable'
,
'Program'
,
'Operator'
,
'default_startup_program'
,
'Block'
,
'Variable'
,
'Program'
,
'Operator'
,
'default_startup_program'
,
'default_main_program'
,
'g_startup_program'
,
'g_main_program'
'default_main_program'
]
]
...
@@ -654,13 +654,13 @@ class Parameter(Variable):
...
@@ -654,13 +654,13 @@ class Parameter(Variable):
# program is a global instance.
# program is a global instance.
g_main_program
=
Program
()
_main_program_
=
Program
()
g_startup_program
=
Program
()
_startup_program_
=
Program
()
def
default_startup_program
():
def
default_startup_program
():
return
g_startup_program
return
_startup_program_
def
default_main_program
():
def
default_main_program
():
return
g_main_program
return
_main_program_
python/paddle/v2/fluid/io.py
浏览文件 @
b156c6a3
import
os
import
os
import
cPickle
as
pickle
import
cPickle
as
pickle
from
paddle.v2.fluid.framework
import
Program
,
Parameter
,
g_main_program
,
\
from
paddle.v2.fluid.framework
import
Program
,
Parameter
,
default_main_program
,
Variable
Variable
__all__
=
[
__all__
=
[
'save_vars'
,
'save_params'
,
'save_persistables'
,
'load_vars'
,
'load_params'
,
'save_vars'
,
'save_params'
,
'save_persistables'
,
'load_vars'
,
'load_params'
,
...
@@ -46,7 +45,7 @@ def save_vars(executor, dirname, main_program=None, vars=None, predicate=None):
...
@@ -46,7 +45,7 @@ def save_vars(executor, dirname, main_program=None, vars=None, predicate=None):
"""
"""
if
vars
is
None
:
if
vars
is
None
:
if
main_program
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
main_program
,
Program
):
if
not
isinstance
(
main_program
,
Program
):
raise
TypeError
(
"program should be as Program type or None"
)
raise
TypeError
(
"program should be as Program type or None"
)
...
@@ -98,7 +97,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
...
@@ -98,7 +97,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
:param executor: executor that save variable
:param executor: executor that save variable
:param dirname: directory path
:param dirname: directory path
:param main_program: program. If vars is None, then filter all variables in this
:param main_program: program. If vars is None, then filter all variables in this
program which fit `predicate`. Default
g_program
.
program which fit `predicate`. Default
default_main_program()
.
:param predicate: The Predicate describes a callable that returns a variable
:param predicate: The Predicate describes a callable that returns a variable
as a bool. If it returns true, the variables will be loaded.
as a bool. If it returns true, the variables will be loaded.
:param vars: variables need to be loaded. If specify vars, program &
:param vars: variables need to be loaded. If specify vars, program &
...
@@ -107,7 +106,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
...
@@ -107,7 +106,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
"""
"""
if
vars
is
None
:
if
vars
is
None
:
if
main_program
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
main_program
,
Program
):
if
not
isinstance
(
main_program
,
Program
):
raise
TypeError
(
"program's type should be Program"
)
raise
TypeError
(
"program's type should be Program"
)
...
@@ -154,7 +153,7 @@ def load_persistables(executor, dirname, main_program=None):
...
@@ -154,7 +153,7 @@ def load_persistables(executor, dirname, main_program=None):
def
get_inference_program
(
target_vars
,
main_program
=
None
):
def
get_inference_program
(
target_vars
,
main_program
=
None
):
if
main_program
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
target_vars
,
list
):
if
not
isinstance
(
target_vars
,
list
):
target_vars
=
[
target_vars
]
target_vars
=
[
target_vars
]
...
@@ -177,12 +176,12 @@ def save_inference_model(dirname,
...
@@ -177,12 +176,12 @@ def save_inference_model(dirname,
:param target_vars: Variables from which we can get inference results.
:param target_vars: Variables from which we can get inference results.
:param executor: executor that save inference model
:param executor: executor that save inference model
:param main_program: original program, which will be pruned to build the inference model.
:param main_program: original program, which will be pruned to build the inference model.
Default g_main_program
.
Default default_main_program()
.
:return: None
:return: None
"""
"""
if
main_program
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
target_vars
,
list
):
if
not
isinstance
(
target_vars
,
list
):
target_vars
=
[
target_vars
]
target_vars
=
[
target_vars
]
...
@@ -272,10 +271,10 @@ def get_parameter_value_by_name(name, executor, program=None):
...
@@ -272,10 +271,10 @@ def get_parameter_value_by_name(name, executor, program=None):
:param executor: executor for retrieving the value
:param executor: executor for retrieving the value
:param name: the name of the parameter
:param name: the name of the parameter
:param program: the program where the variable is found
:param program: the program where the variable is found
Default g_main_program
.
Default default_main_program()
.
:return: the LoDTensor for the variable
:return: the LoDTensor for the variable
"""
"""
if
program
is
None
:
if
program
is
None
:
program
=
g_main_program
program
=
default_main_program
()
var
=
program
.
global_block
().
var
(
name
)
var
=
program
.
global_block
().
var
(
name
)
return
get_parameter_value
(
var
,
executor
)
return
get_parameter_value
(
var
,
executor
)
python/paddle/v2/fluid/layer_helper.py
浏览文件 @
b156c6a3
import
copy
import
copy
import
itertools
import
itertools
from
framework
import
Variable
,
g_main_program
,
\
from
framework
import
Variable
,
default_main_program
,
default_startup_program
,
unique_name
,
dtype_is_floating
g_startup_program
,
unique_name
,
dtype_is_floating
from
paddle.v2.fluid.initializer
import
Constant
,
Xavier
from
paddle.v2.fluid.initializer
import
Constant
,
Xavier
...
@@ -22,7 +21,7 @@ class LayerHelper(object):
...
@@ -22,7 +21,7 @@ class LayerHelper(object):
def
main_program
(
self
):
def
main_program
(
self
):
prog
=
self
.
kwargs
.
get
(
'main_program'
,
None
)
prog
=
self
.
kwargs
.
get
(
'main_program'
,
None
)
if
prog
is
None
:
if
prog
is
None
:
return
g_main_program
return
default_main_program
()
else
:
else
:
return
prog
return
prog
...
@@ -30,7 +29,7 @@ class LayerHelper(object):
...
@@ -30,7 +29,7 @@ class LayerHelper(object):
def
startup_program
(
self
):
def
startup_program
(
self
):
prog
=
self
.
kwargs
.
get
(
'startup_program'
,
None
)
prog
=
self
.
kwargs
.
get
(
'startup_program'
,
None
)
if
prog
is
None
:
if
prog
is
None
:
return
g_startup_program
return
default_startup_program
()
else
:
else
:
return
prog
return
prog
...
...
python/paddle/v2/fluid/layers.py
浏览文件 @
b156c6a3
from
.
import
core
import
core
import
proto.framework_pb2
as
framework_pb2
import
proto.framework_pb2
as
framework_pb2
from
framework
import
OpProtoHolder
,
Variable
,
Program
,
Operator
from
framework
import
OpProtoHolder
,
Variable
,
Program
,
Operator
from
initializer
import
Constant
,
Normal
,
Xavier
from
initializer
import
Constant
,
Normal
,
Xavier
,
Initializer
from
paddle.v2.fluid.layer_helper
import
LayerHelper
,
unique_name
from
paddle.v2.fluid.layer_helper
import
LayerHelper
,
unique_name
import
re
import
re
import
cStringIO
import
cStringIO
...
@@ -1587,6 +1587,97 @@ def array_length(array, main_program=None):
...
@@ -1587,6 +1587,97 @@ def array_length(array, main_program=None):
return
tmp
return
tmp
def
conv2d_transpose
(
input
,
num_filters
,
output_size
=
None
,
filter_size
=
None
,
padding
=
None
,
stride
=
None
,
param_attr
=
None
,
param_initializer
=
None
,
main_program
=
None
,
startup_program
=
None
):
"""
The transpose of conv2d layer.
This layer is also known as deconvolution layer.
Args:
input(Variable): The input image with [N, C, H, W] format.
num_filters(int): The number of filter. It is as same as the output
image channel.
output_size(int|tuple|None): The output image size. If output size is a
tuple, it must contain two integers, (image_H, image_W). This
parameter only works when filter_size is None.
filter_size(int|tuple|None): The filter size. If filter_size is a tuple,
it must contain two integers, (filter_size_H, filter_size_W).
Otherwise, the filter will be a square. None if use output size to
calculate filter_size
padding(int|tuple): The padding size. If padding is a tuple, it must
contain two integers, (padding_H, padding_W). Otherwise, the
padding_H = padding_W = padding.
stride(int|tuple): The stride size. If stride is a tuple, it must
contain two integers, (stride_H, stride_W). Otherwise, the
stride_H = stride_W = stride.
param_attr: Parameter Attribute.
param_initializer(Initializer): Parameter Initializer. Default is Xavier
main_program(Program): the main program
startup_program(Program): the startup program
Returns:
Variable: Output image.
"""
helper
=
LayerHelper
(
"conv2d_transpose"
,
**
locals
())
if
not
isinstance
(
input
,
Variable
):
raise
TypeError
(
"Input of conv2d_transpose must be Variable"
)
input_channel
=
input
.
shape
[
1
]
op_attr
=
dict
()
if
isinstance
(
padding
,
int
):
op_attr
[
'paddings'
]
=
[
padding
,
padding
]
elif
padding
is
not
None
:
op_attr
[
'paddings'
]
=
padding
if
isinstance
(
stride
,
int
):
op_attr
[
'strides'
]
=
stride
elif
stride
is
not
None
:
op_attr
[
'strides'
]
=
stride
if
filter_size
is
None
:
if
output_size
is
None
:
raise
ValueError
(
"output_size must be set when filter_size is None"
)
if
isinstance
(
output_size
,
int
):
output_size
=
[
output_size
,
output_size
]
padding
=
op_attr
.
get
(
'paddings'
,
[
0
,
0
])
stride
=
op_attr
.
get
(
'strides'
,
[
1
,
1
])
h_in
=
input
.
shape
[
2
]
w_in
=
input
.
shape
[
3
]
filter_size_h
=
output_size
[
0
]
-
(
h_in
-
1
)
*
stride
[
0
]
+
2
*
padding
[
0
]
filter_size_w
=
output_size
[
1
]
-
(
w_in
-
1
)
*
stride
[
1
]
+
2
*
padding
[
1
]
filter_size
=
[
filter_size_h
,
filter_size_w
]
elif
isinstance
(
filter_size
,
int
):
filter_size
=
[
filter_size
,
filter_size
]
filter_shape
=
[
input_channel
,
num_filters
]
+
filter_size
img_filter
=
helper
.
create_parameter
(
dtype
=
input
.
dtype
,
shape
=
filter_shape
,
attr
=
helper
.
param_attr
,
initializer
=
param_initializer
)
out
=
helper
.
create_tmp_variable
(
dtype
=
input
.
dtype
)
helper
.
append_op
(
type
=
'conv2d_transpose'
,
inputs
=
{
'Input'
:
[
input
],
'Filter'
:
[
img_filter
]},
outputs
=
{
'Output'
:
out
},
attrs
=
op_attr
)
return
out
class
ConditionalBlockGuard
(
BlockGuard
):
class
ConditionalBlockGuard
(
BlockGuard
):
def
__init__
(
self
,
block
):
def
__init__
(
self
,
block
):
if
not
isinstance
(
block
,
ConditionalBlock
):
if
not
isinstance
(
block
,
ConditionalBlock
):
...
...
python/paddle/v2/fluid/tests/test_array_read_write_op.py
浏览文件 @
b156c6a3
...
@@ -3,7 +3,7 @@ import paddle.v2.fluid.core as core
...
@@ -3,7 +3,7 @@ import paddle.v2.fluid.core as core
import
paddle.v2.fluid.layers
as
layers
import
paddle.v2.fluid.layers
as
layers
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.backward
import
append_backward_ops
from
paddle.v2.fluid.backward
import
append_backward_ops
from
paddle.v2.fluid.framework
import
g
_main_program
from
paddle.v2.fluid.framework
import
default
_main_program
import
numpy
import
numpy
...
@@ -66,7 +66,7 @@ class TestArrayReadWrite(unittest.TestCase):
...
@@ -66,7 +66,7 @@ class TestArrayReadWrite(unittest.TestCase):
append_backward_ops
(
total_sum_scaled
)
append_backward_ops
(
total_sum_scaled
)
g_vars
=
map
(
g_main_program
.
global_block
().
var
,
g_vars
=
map
(
default_main_program
()
.
global_block
().
var
,
[
each_x
.
name
+
"@GRAD"
for
each_x
in
x
])
[
each_x
.
name
+
"@GRAD"
for
each_x
in
x
])
g_out
=
[
g_out
=
[
item
.
sum
()
item
.
sum
()
...
...
python/paddle/v2/fluid/tests/test_conditional_block.py
浏览文件 @
b156c6a3
import
unittest
import
unittest
import
paddle.v2.fluid.layers
as
layers
import
paddle.v2.fluid.layers
as
layers
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
from
paddle.v2.fluid.framework
import
g_startup_program
,
g
_main_program
from
paddle.v2.fluid.framework
import
default_startup_program
,
default
_main_program
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.backward
import
append_backward_ops
from
paddle.v2.fluid.backward
import
append_backward_ops
import
numpy
import
numpy
...
@@ -19,7 +19,7 @@ class ConditionalBlock(unittest.TestCase):
...
@@ -19,7 +19,7 @@ class ConditionalBlock(unittest.TestCase):
cpu
=
core
.
CPUPlace
()
cpu
=
core
.
CPUPlace
()
exe
=
Executor
(
cpu
)
exe
=
Executor
(
cpu
)
exe
.
run
(
g_startup_program
)
exe
.
run
(
default_startup_program
()
)
x
=
numpy
.
random
.
random
(
size
=
(
10
,
1
)).
astype
(
'float32'
)
x
=
numpy
.
random
.
random
(
size
=
(
10
,
1
)).
astype
(
'float32'
)
...
@@ -29,7 +29,9 @@ class ConditionalBlock(unittest.TestCase):
...
@@ -29,7 +29,9 @@ class ConditionalBlock(unittest.TestCase):
append_backward_ops
(
loss
=
loss
)
append_backward_ops
(
loss
=
loss
)
outs
=
exe
.
run
(
outs
=
exe
.
run
(
feed
=
{
'X'
:
x
},
feed
=
{
'X'
:
x
},
fetch_list
=
[
g_main_program
.
block
(
0
).
var
(
data
.
name
+
"@GRAD"
)])[
0
]
fetch_list
=
[
default_main_program
().
block
(
0
).
var
(
data
.
name
+
"@GRAD"
)
])[
0
]
print
outs
print
outs
...
...
python/paddle/v2/fluid/tests/test_executor_and_mul.py
浏览文件 @
b156c6a3
import
unittest
import
unittest
from
paddle.v2.fluid.layers
import
mul
,
data
,
sequence_pool
import
numpy
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.framework
import
g_main_program
from
paddle.v2.fluid.layers
import
mul
,
data
import
numpy
class
TestExecutor
(
unittest
.
TestCase
):
class
TestExecutor
(
unittest
.
TestCase
):
...
@@ -19,10 +20,7 @@ class TestExecutor(unittest.TestCase):
...
@@ -19,10 +20,7 @@ class TestExecutor(unittest.TestCase):
a_np
=
numpy
.
random
.
random
((
100
,
784
)).
astype
(
'float32'
)
a_np
=
numpy
.
random
.
random
((
100
,
784
)).
astype
(
'float32'
)
b_np
=
numpy
.
random
.
random
((
784
,
100
)).
astype
(
'float32'
)
b_np
=
numpy
.
random
.
random
((
784
,
100
)).
astype
(
'float32'
)
exe
=
Executor
(
place
)
exe
=
Executor
(
place
)
outs
=
exe
.
run
(
g_main_program
,
outs
=
exe
.
run
(
feed
=
{
'a'
:
a_np
,
'b'
:
b_np
},
fetch_list
=
[
out
])
feed
=
{
'a'
:
a_np
,
'b'
:
b_np
},
fetch_list
=
[
out
])
out
=
outs
[
0
]
out
=
outs
[
0
]
self
.
assertEqual
((
100
,
100
),
out
.
shape
)
self
.
assertEqual
((
100
,
100
),
out
.
shape
)
self
.
assertTrue
(
numpy
.
allclose
(
out
,
numpy
.
dot
(
a_np
,
b_np
)))
self
.
assertTrue
(
numpy
.
allclose
(
out
,
numpy
.
dot
(
a_np
,
b_np
)))
...
...
python/paddle/v2/fluid/tests/test_layers.py
浏览文件 @
b156c6a3
...
@@ -65,6 +65,15 @@ class TestBook(unittest.TestCase):
...
@@ -65,6 +65,15 @@ class TestBook(unittest.TestCase):
print
str
(
program
)
print
str
(
program
)
def
test_conv2d_transpose
(
self
):
program
=
Program
()
kwargs
=
{
'main_program'
:
program
}
img
=
layers
.
data
(
name
=
'pixel'
,
shape
=
[
3
,
2
,
2
],
dtype
=
'float32'
,
**
kwargs
)
layers
.
conv2d_transpose
(
input
=
img
,
num_filters
=
10
,
output_size
=
28
,
**
kwargs
)
print
str
(
program
)
def
test_recognize_digits_conv
(
self
):
def
test_recognize_digits_conv
(
self
):
program
=
Program
()
program
=
Program
()
...
...
python/paddle/v2/fluid/tests/test_lod_rank_table.py
浏览文件 @
b156c6a3
from
paddle.v2.fluid.layers
import
lod_rank_table
,
data
from
paddle.v2.fluid.layers
import
lod_rank_table
,
data
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.framework
import
g_main_program
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
import
numpy
import
numpy
import
unittest
import
unittest
...
@@ -18,7 +17,7 @@ class TestLoDRankTable(unittest.TestCase):
...
@@ -18,7 +17,7 @@ class TestLoDRankTable(unittest.TestCase):
tensor
=
core
.
LoDTensor
()
tensor
=
core
.
LoDTensor
()
tensor
.
set
(
numpy
.
random
.
random
(
size
=
(
17
,
100
)),
cpu
)
tensor
.
set
(
numpy
.
random
.
random
(
size
=
(
17
,
100
)),
cpu
)
tensor
.
set_lod
([[
0
,
1
,
3
],
[
0
,
5
,
6
,
7
],
[
0
,
3
,
4
,
9
,
10
,
13
,
16
,
17
]])
tensor
.
set_lod
([[
0
,
1
,
3
],
[
0
,
5
,
6
,
7
],
[
0
,
3
,
4
,
9
,
10
,
13
,
16
,
17
]])
exe
.
run
(
g_main_program
,
scope
=
scope
,
feed
=
{
'x'
:
tensor
})
exe
.
run
(
scope
=
scope
,
feed
=
{
'x'
:
tensor
})
var
=
scope
.
find_var
(
rank_table
.
name
)
var
=
scope
.
find_var
(
rank_table
.
name
)
table
=
var
.
get_lod_rank_table
()
table
=
var
.
get_lod_rank_table
()
self
.
assertEqual
([(
0
,
5
),
(
1
,
1
),
(
2
,
1
)],
table
.
items
())
self
.
assertEqual
([(
0
,
5
),
(
1
,
1
),
(
2
,
1
)],
table
.
items
())
...
...
python/paddle/v2/fluid/tests/test_operator_desc.py
浏览文件 @
b156c6a3
import
unittest
import
unittest
from
paddle.v2.fluid.framework
import
Variable
,
Program
,
g_main_program
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
from
paddle.v2.fluid.framework
import
Program
,
default_startup_program
main_program
=
default_startup_program
()
class
TestOperator
(
unittest
.
TestCase
):
class
TestOperator
(
unittest
.
TestCase
):
def
test_error_type
(
self
):
def
test_error_type
(
self
):
block
=
g_
main_program
.
create_block
()
block
=
main_program
.
create_block
()
try
:
try
:
block
.
append_op
()
block
.
append_op
()
self
.
assertFail
()
self
.
assertFail
()
...
...
python/paddle/v2/fluid/tests/test_parameter.py
浏览文件 @
b156c6a3
import
unittest
import
unittest
from
paddle.v2.fluid.framework
import
g
_main_program
from
paddle.v2.fluid.framework
import
default
_main_program
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
import
paddle.v2.fluid.io
as
io
import
paddle.v2.fluid.io
as
io
from
paddle.v2.fluid.initializer
import
ConstantInitializer
from
paddle.v2.fluid.initializer
import
ConstantInitializer
import
numpy
as
np
import
numpy
as
np
main_program
=
default_main_program
()
class
TestParameter
(
unittest
.
TestCase
):
class
TestParameter
(
unittest
.
TestCase
):
def
test_param
(
self
):
def
test_param
(
self
):
shape
=
[
784
,
100
]
shape
=
[
784
,
100
]
val
=
1.0625
val
=
1.0625
b
=
g_
main_program
.
global_block
()
b
=
main_program
.
global_block
()
param
=
b
.
create_parameter
(
param
=
b
.
create_parameter
(
name
=
'fc.w'
,
name
=
'fc.w'
,
shape
=
shape
,
shape
=
shape
,
...
@@ -23,9 +25,9 @@ class TestParameter(unittest.TestCase):
...
@@ -23,9 +25,9 @@ class TestParameter(unittest.TestCase):
self
.
assertEqual
(
core
.
DataType
.
FP32
,
param
.
dtype
)
self
.
assertEqual
(
core
.
DataType
.
FP32
,
param
.
dtype
)
self
.
assertEqual
(
0
,
param
.
block
.
idx
)
self
.
assertEqual
(
0
,
param
.
block
.
idx
)
exe
=
Executor
(
core
.
CPUPlace
())
exe
=
Executor
(
core
.
CPUPlace
())
p
=
exe
.
run
(
g_
main_program
,
fetch_list
=
[
param
])[
0
]
p
=
exe
.
run
(
main_program
,
fetch_list
=
[
param
])[
0
]
self
.
assertTrue
(
np
.
allclose
(
p
,
np
.
ones
(
shape
)
*
val
))
self
.
assertTrue
(
np
.
allclose
(
p
,
np
.
ones
(
shape
)
*
val
))
p
=
io
.
get_parameter_value_by_name
(
'fc.w'
,
exe
,
g_
main_program
)
p
=
io
.
get_parameter_value_by_name
(
'fc.w'
,
exe
,
main_program
)
self
.
assertTrue
(
np
.
allclose
(
np
.
array
(
p
),
np
.
ones
(
shape
)
*
val
))
self
.
assertTrue
(
np
.
allclose
(
np
.
array
(
p
),
np
.
ones
(
shape
)
*
val
))
...
...
python/paddle/v2/fluid/tests/test_program.py
浏览文件 @
b156c6a3
from
__future__
import
print_function
from
__future__
import
print_function
import
unittest
import
unittest
from
paddle.v2.fluid.framework
import
Program
from
paddle.v2.fluid.framework
import
Program
,
default_main_program
from
paddle.v2.fluid.framework
import
g_main_program
import
paddle.v2.fluid.layers
as
layers
import
paddle.v2.fluid.layers
as
layers
main_program
=
default_main_program
()
class
TestProgram
(
unittest
.
TestCase
):
class
TestProgram
(
unittest
.
TestCase
):
def
test_program
(
self
):
def
test_program
(
self
):
b
=
g_
main_program
.
current_block
()
b
=
main_program
.
current_block
()
self
.
assertEqual
(
-
1
,
b
.
parent_idx
)
self
.
assertEqual
(
-
1
,
b
.
parent_idx
)
self
.
assertEqual
(
0
,
b
.
idx
)
self
.
assertEqual
(
0
,
b
.
idx
)
b
=
g_
main_program
.
create_block
()
b
=
main_program
.
create_block
()
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
b
=
g_
main_program
.
create_block
()
b
=
main_program
.
create_block
()
self
.
assertEqual
(
2
,
b
.
idx
)
self
.
assertEqual
(
2
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
parent_idx
)
self
.
assertEqual
(
1
,
b
.
parent_idx
)
g_
main_program
.
rollback
()
main_program
.
rollback
()
b
=
g_
main_program
.
current_block
()
b
=
main_program
.
current_block
()
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
b
=
g_
main_program
.
create_block
()
b
=
main_program
.
create_block
()
self
.
assertEqual
(
3
,
b
.
idx
)
self
.
assertEqual
(
3
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
parent_idx
)
self
.
assertEqual
(
1
,
b
.
parent_idx
)
g_
main_program
.
rollback
()
main_program
.
rollback
()
b
=
g_
main_program
.
current_block
()
b
=
main_program
.
current_block
()
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
self
.
assertEqual
(
0
,
b
.
parent_idx
)
...
...
python/paddle/v2/fluid/tests/test_shrink_rnn_memory.py
浏览文件 @
b156c6a3
...
@@ -3,9 +3,11 @@ import paddle.v2.fluid.core as core
...
@@ -3,9 +3,11 @@ import paddle.v2.fluid.core as core
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.executor
import
Executor
import
paddle.v2.fluid.layers
as
layers
import
paddle.v2.fluid.layers
as
layers
from
paddle.v2.fluid.backward
import
append_backward_ops
from
paddle.v2.fluid.backward
import
append_backward_ops
from
paddle.v2.fluid.framework
import
g
_main_program
from
paddle.v2.fluid.framework
import
default
_main_program
import
numpy
import
numpy
main_program
=
default_main_program
()
class
TestShrinkRNNMemory
(
unittest
.
TestCase
):
class
TestShrinkRNNMemory
(
unittest
.
TestCase
):
def
test_shrink_rnn_memory
(
self
):
def
test_shrink_rnn_memory
(
self
):
...
@@ -36,7 +38,7 @@ class TestShrinkRNNMemory(unittest.TestCase):
...
@@ -36,7 +38,7 @@ class TestShrinkRNNMemory(unittest.TestCase):
append_backward_ops
(
loss
=
mem3_mean
)
append_backward_ops
(
loss
=
mem3_mean
)
x_grad
=
exe
.
run
(
x_grad
=
exe
.
run
(
feed
=
{
'x'
:
tensor
},
feed
=
{
'x'
:
tensor
},
fetch_list
=
[
g_
main_program
.
global_block
().
var
(
'x@GRAD'
)])[
0
]
fetch_list
=
[
main_program
.
global_block
().
var
(
'x@GRAD'
)])[
0
]
self
.
assertAlmostEqual
(
1.0
,
x_grad
.
sum
(),
delta
=
0.1
)
self
.
assertAlmostEqual
(
1.0
,
x_grad
.
sum
(),
delta
=
0.1
)
...
...
python/paddle/v2/fluid/tests/test_variable.py
浏览文件 @
b156c6a3
import
unittest
import
unittest
from
paddle.v2.fluid.framework
import
g
_main_program
,
Program
,
convert_np_dtype_to_dtype_
from
paddle.v2.fluid.framework
import
default
_main_program
,
Program
,
convert_np_dtype_to_dtype_
import
paddle.v2.fluid.core
as
core
import
paddle.v2.fluid.core
as
core
import
numpy
as
np
import
numpy
as
np
...
@@ -18,7 +18,7 @@ class TestVariable(unittest.TestCase):
...
@@ -18,7 +18,7 @@ class TestVariable(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
lambda
:
convert
(
"int8"
))
self
.
assertRaises
(
ValueError
,
lambda
:
convert
(
"int8"
))
def
test_var
(
self
):
def
test_var
(
self
):
b
=
g_main_program
.
current_block
()
b
=
default_main_program
()
.
current_block
()
w
=
b
.
create_var
(
w
=
b
.
create_var
(
dtype
=
"float64"
,
shape
=
[
784
,
100
],
lod_level
=
0
,
name
=
"fc.w"
)
dtype
=
"float64"
,
shape
=
[
784
,
100
],
lod_level
=
0
,
name
=
"fc.w"
)
self
.
assertNotEqual
(
str
(
w
),
""
)
self
.
assertNotEqual
(
str
(
w
),
""
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录