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(
"The format of output tensor is also NCHW."
);
AddAttr
<
std
::
vector
<
int
>>
(
"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."
)
.
SetDefault
({
1
,
1
});
AddAttr
<
std
::
vector
<
int
>>
(
"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."
)
.
SetDefault
({
0
,
0
});
AddComment
(
R"DOC(
...
...
@@ -101,8 +101,8 @@ Example:
Output:
Output shape: (N, C_out, H_out, W_out)
where
H_out = (H_in - 1) * strides[0] - 2 * paddings[0] +
filter_size[0]
;
W_out = (W_in - 1) * strides[1] - 2 * paddings[1] +
filter_size[1]
;
H_out = (H_in - 1) * strides[0] - 2 * paddings[0] +
H_f
;
W_out = (W_in - 1) * strides[1] - 2 * paddings[1] +
W_f
;
)DOC"
);
}
...
...
@@ -130,12 +130,12 @@ Conv3DTransposeOpMaker::Conv3DTransposeOpMaker(
"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."
);
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 "
"convolution transpose operator."
)
.
SetDefault
({
1
,
1
,
1
});
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."
)
.
SetDefault
({
0
,
0
,
0
});
AddComment
(
R"DOC(
...
...
@@ -158,9 +158,9 @@ Example:
Output:
Output shape: (N, C_out, D_out, H_out, W_out)
where
D_out = (D_in - 1) * strides[0] - 2 * paddings[0] +
filter_size[0]
;
H_out = (H_in - 1) * strides[1] - 2 * paddings[1] +
filter_size[1]
;
W_out = (W_in - 1) * strides[2] - 2 * paddings[2] +
filter_size[2]
;
D_out = (D_in - 1) * strides[0] - 2 * paddings[0] +
D_f
;
H_out = (H_in - 1) * strides[1] - 2 * paddings[1] +
H_f
;
W_out = (W_in - 1) * strides[2] - 2 * paddings[2] +
W_f
;
)DOC"
);
}
...
...
paddle/operators/detail/send_recv.proto
浏览文件 @
b156c6a3
...
...
@@ -17,7 +17,7 @@ syntax = "proto3";
package
sendrecv
;
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
rpc
SendVariable
(
VariableMessage
)
returns
(
VariableMessage
)
{}
}
...
...
@@ -32,6 +32,4 @@ message VariableMessage {
bytes
serialized
=
2
;
}
message
VoidMessage
{
}
\ No newline at end of file
message
VoidMessage
{}
\ No newline at end of file
python/paddle/v2/fluid/evaluator.py
浏览文件 @
b156c6a3
...
...
@@ -26,9 +26,9 @@ class Evaluator(object):
name(str): The name of evaluator. such as, "accuracy". Used for generate
temporary variable name.
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. Default
g_startup_program
startup_program. Default
default_startup_program()
Attributes:
states(list): The list of state variables. states will be reset to zero
...
...
python/paddle/v2/fluid/executor.py
浏览文件 @
b156c6a3
import
numpy
as
np
from
.
import
core
from
framework
import
Program
,
g
_main_program
from
framework
import
Program
,
default
_main_program
__all__
=
[
'Executor'
,
'g_scope'
]
...
...
@@ -103,7 +103,7 @@ class Executor(object):
fetch_list
=
[]
if
program
is
None
:
program
=
g_main_program
program
=
default_main_program
()
if
not
isinstance
(
program
,
Program
):
raise
TypeError
()
...
...
python/paddle/v2/fluid/framework.py
浏览文件 @
b156c6a3
...
...
@@ -6,7 +6,7 @@ import proto.framework_pb2 as framework_pb2
__all__
=
[
'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):
# program is a global instance.
g_main_program
=
Program
()
g_startup_program
=
Program
()
_main_program_
=
Program
()
_startup_program_
=
Program
()
def
default_startup_program
():
return
g_startup_program
return
_startup_program_
def
default_main_program
():
return
g_main_program
return
_main_program_
python/paddle/v2/fluid/io.py
浏览文件 @
b156c6a3
import
os
import
cPickle
as
pickle
from
paddle.v2.fluid.framework
import
Program
,
Parameter
,
g_main_program
,
\
Variable
from
paddle.v2.fluid.framework
import
Program
,
Parameter
,
default_main_program
,
Variable
__all__
=
[
'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):
"""
if
vars
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
main_program
,
Program
):
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):
:param executor: executor that save variable
:param dirname: directory path
: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
as a bool. If it returns true, the variables will be loaded.
: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):
"""
if
vars
is
None
:
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
main_program
,
Program
):
raise
TypeError
(
"program's type should be Program"
)
...
...
@@ -154,7 +153,7 @@ def load_persistables(executor, dirname, main_program=None):
def
get_inference_program
(
target_vars
,
main_program
=
None
):
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
target_vars
,
list
):
target_vars
=
[
target_vars
]
...
...
@@ -177,12 +176,12 @@ def save_inference_model(dirname,
:param target_vars: Variables from which we can get inference results.
:param executor: executor that save 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
"""
if
main_program
is
None
:
main_program
=
g_main_program
main_program
=
default_main_program
()
if
not
isinstance
(
target_vars
,
list
):
target_vars
=
[
target_vars
]
...
...
@@ -272,10 +271,10 @@ def get_parameter_value_by_name(name, executor, program=None):
:param executor: executor for retrieving the value
:param name: the name of the parameter
:param program: the program where the variable is found
Default g_main_program
.
Default default_main_program()
.
:return: the LoDTensor for the variable
"""
if
program
is
None
:
program
=
g_main_program
program
=
default_main_program
()
var
=
program
.
global_block
().
var
(
name
)
return
get_parameter_value
(
var
,
executor
)
python/paddle/v2/fluid/layer_helper.py
浏览文件 @
b156c6a3
import
copy
import
itertools
from
framework
import
Variable
,
g_main_program
,
\
g_startup_program
,
unique_name
,
dtype_is_floating
from
framework
import
Variable
,
default_main_program
,
default_startup_program
,
unique_name
,
dtype_is_floating
from
paddle.v2.fluid.initializer
import
Constant
,
Xavier
...
...
@@ -22,7 +21,7 @@ class LayerHelper(object):
def
main_program
(
self
):
prog
=
self
.
kwargs
.
get
(
'main_program'
,
None
)
if
prog
is
None
:
return
g_main_program
return
default_main_program
()
else
:
return
prog
...
...
@@ -30,7 +29,7 @@ class LayerHelper(object):
def
startup_program
(
self
):
prog
=
self
.
kwargs
.
get
(
'startup_program'
,
None
)
if
prog
is
None
:
return
g_startup_program
return
default_startup_program
()
else
:
return
prog
...
...
python/paddle/v2/fluid/layers.py
浏览文件 @
b156c6a3
from
.
import
core
import
core
import
proto.framework_pb2
as
framework_pb2
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
import
re
import
cStringIO
...
...
@@ -1587,6 +1587,97 @@ def array_length(array, main_program=None):
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
):
def
__init__
(
self
,
block
):
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
import
paddle.v2.fluid.layers
as
layers
from
paddle.v2.fluid.executor
import
Executor
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
...
...
@@ -66,7 +66,7 @@ class TestArrayReadWrite(unittest.TestCase):
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
])
g_out
=
[
item
.
sum
()
...
...
python/paddle/v2/fluid/tests/test_conditional_block.py
浏览文件 @
b156c6a3
import
unittest
import
paddle.v2.fluid.layers
as
layers
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.backward
import
append_backward_ops
import
numpy
...
...
@@ -19,7 +19,7 @@ class ConditionalBlock(unittest.TestCase):
cpu
=
core
.
CPUPlace
()
exe
=
Executor
(
cpu
)
exe
.
run
(
g_startup_program
)
exe
.
run
(
default_startup_program
()
)
x
=
numpy
.
random
.
random
(
size
=
(
10
,
1
)).
astype
(
'float32'
)
...
...
@@ -29,7 +29,9 @@ class ConditionalBlock(unittest.TestCase):
append_backward_ops
(
loss
=
loss
)
outs
=
exe
.
run
(
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
...
...
python/paddle/v2/fluid/tests/test_executor_and_mul.py
浏览文件 @
b156c6a3
import
unittest
from
paddle.v2.fluid.layers
import
mul
,
data
,
sequence_pool
import
numpy
import
paddle.v2.fluid.core
as
core
from
paddle.v2.fluid.executor
import
Executor
from
paddle.v2.fluid.framework
import
g_main_program
import
numpy
from
paddle.v2.fluid.layers
import
mul
,
data
class
TestExecutor
(
unittest
.
TestCase
):
...
...
@@ -19,10 +20,7 @@ class TestExecutor(unittest.TestCase):
a_np
=
numpy
.
random
.
random
((
100
,
784
)).
astype
(
'float32'
)
b_np
=
numpy
.
random
.
random
((
784
,
100
)).
astype
(
'float32'
)
exe
=
Executor
(
place
)
outs
=
exe
.
run
(
g_main_program
,
feed
=
{
'a'
:
a_np
,
'b'
:
b_np
},
fetch_list
=
[
out
])
outs
=
exe
.
run
(
feed
=
{
'a'
:
a_np
,
'b'
:
b_np
},
fetch_list
=
[
out
])
out
=
outs
[
0
]
self
.
assertEqual
((
100
,
100
),
out
.
shape
)
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):
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
):
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.executor
import
Executor
from
paddle.v2.fluid.framework
import
g_main_program
import
paddle.v2.fluid.core
as
core
import
numpy
import
unittest
...
...
@@ -18,7 +17,7 @@ class TestLoDRankTable(unittest.TestCase):
tensor
=
core
.
LoDTensor
()
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
]])
exe
.
run
(
g_main_program
,
scope
=
scope
,
feed
=
{
'x'
:
tensor
})
exe
.
run
(
scope
=
scope
,
feed
=
{
'x'
:
tensor
})
var
=
scope
.
find_var
(
rank_table
.
name
)
table
=
var
.
get_lod_rank_table
()
self
.
assertEqual
([(
0
,
5
),
(
1
,
1
),
(
2
,
1
)],
table
.
items
())
...
...
python/paddle/v2/fluid/tests/test_operator_desc.py
浏览文件 @
b156c6a3
import
unittest
from
paddle.v2.fluid.framework
import
Variable
,
Program
,
g_main_program
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
):
def
test_error_type
(
self
):
block
=
g_
main_program
.
create_block
()
block
=
main_program
.
create_block
()
try
:
block
.
append_op
()
self
.
assertFail
()
...
...
python/paddle/v2/fluid/tests/test_parameter.py
浏览文件 @
b156c6a3
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
from
paddle.v2.fluid.executor
import
Executor
import
paddle.v2.fluid.io
as
io
from
paddle.v2.fluid.initializer
import
ConstantInitializer
import
numpy
as
np
main_program
=
default_main_program
()
class
TestParameter
(
unittest
.
TestCase
):
def
test_param
(
self
):
shape
=
[
784
,
100
]
val
=
1.0625
b
=
g_
main_program
.
global_block
()
b
=
main_program
.
global_block
()
param
=
b
.
create_parameter
(
name
=
'fc.w'
,
shape
=
shape
,
...
...
@@ -23,9 +25,9 @@ class TestParameter(unittest.TestCase):
self
.
assertEqual
(
core
.
DataType
.
FP32
,
param
.
dtype
)
self
.
assertEqual
(
0
,
param
.
block
.
idx
)
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
))
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
))
...
...
python/paddle/v2/fluid/tests/test_program.py
浏览文件 @
b156c6a3
from
__future__
import
print_function
import
unittest
from
paddle.v2.fluid.framework
import
Program
from
paddle.v2.fluid.framework
import
g_main_program
from
paddle.v2.fluid.framework
import
Program
,
default_main_program
import
paddle.v2.fluid.layers
as
layers
main_program
=
default_main_program
()
class
TestProgram
(
unittest
.
TestCase
):
def
test_program
(
self
):
b
=
g_
main_program
.
current_block
()
b
=
main_program
.
current_block
()
self
.
assertEqual
(
-
1
,
b
.
parent_idx
)
self
.
assertEqual
(
0
,
b
.
idx
)
b
=
g_
main_program
.
create_block
()
b
=
main_program
.
create_block
()
self
.
assertEqual
(
1
,
b
.
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
(
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
(
0
,
b
.
parent_idx
)
b
=
g_
main_program
.
create_block
()
b
=
main_program
.
create_block
()
self
.
assertEqual
(
3
,
b
.
idx
)
self
.
assertEqual
(
1
,
b
.
parent_idx
)
g_
main_program
.
rollback
()
b
=
g_
main_program
.
current_block
()
main_program
.
rollback
()
b
=
main_program
.
current_block
()
self
.
assertEqual
(
1
,
b
.
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
from
paddle.v2.fluid.executor
import
Executor
import
paddle.v2.fluid.layers
as
layers
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
main_program
=
default_main_program
()
class
TestShrinkRNNMemory
(
unittest
.
TestCase
):
def
test_shrink_rnn_memory
(
self
):
...
...
@@ -36,7 +38,7 @@ class TestShrinkRNNMemory(unittest.TestCase):
append_backward_ops
(
loss
=
mem3_mean
)
x_grad
=
exe
.
run
(
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
)
...
...
python/paddle/v2/fluid/tests/test_variable.py
浏览文件 @
b156c6a3
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
numpy
as
np
...
...
@@ -18,7 +18,7 @@ class TestVariable(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
lambda
:
convert
(
"int8"
))
def
test_var
(
self
):
b
=
g_main_program
.
current_block
()
b
=
default_main_program
()
.
current_block
()
w
=
b
.
create_var
(
dtype
=
"float64"
,
shape
=
[
784
,
100
],
lod_level
=
0
,
name
=
"fc.w"
)
self
.
assertNotEqual
(
str
(
w
),
""
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录