Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle
提交
d26ae9ad
P
Paddle
项目概览
PaddlePaddle
/
Paddle
1 年多 前同步成功
通知
2302
Star
20931
Fork
5422
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1423
列表
看板
标记
里程碑
合并请求
543
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1,423
Issue
1,423
列表
看板
标记
里程碑
合并请求
543
合并请求
543
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
d26ae9ad
编写于
8月 22, 2020
作者:
L
LielinJiang
提交者:
GitHub
8月 22, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update conv_transpose api (#26427)
* update conv_transpose api
上级
c037d625
变更
11
展开全部
隐藏空白更改
内联
并排
Showing
11 changed file
with
471 addition
and
505 deletion
+471
-505
paddle/fluid/operators/conv_transpose_op.cc
paddle/fluid/operators/conv_transpose_op.cc
+39
-1
python/paddle/fluid/tests/unittests/test_conv2d_transpose_layer.py
...ddle/fluid/tests/unittests/test_conv2d_transpose_layer.py
+38
-26
python/paddle/fluid/tests/unittests/test_conv2d_transpose_op.py
.../paddle/fluid/tests/unittests/test_conv2d_transpose_op.py
+38
-3
python/paddle/fluid/tests/unittests/test_conv3d_transpose_layer.py
...ddle/fluid/tests/unittests/test_conv3d_transpose_layer.py
+5
-22
python/paddle/fluid/tests/unittests/test_functional_conv2d_transpose.py
...fluid/tests/unittests/test_functional_conv2d_transpose.py
+6
-69
python/paddle/fluid/tests/unittests/test_functional_conv3d_transpose.py
...fluid/tests/unittests/test_functional_conv3d_transpose.py
+12
-48
python/paddle/nn/__init__.py
python/paddle/nn/__init__.py
+2
-2
python/paddle/nn/functional/__init__.py
python/paddle/nn/functional/__init__.py
+2
-2
python/paddle/nn/functional/conv.py
python/paddle/nn/functional/conv.py
+143
-133
python/paddle/nn/layer/__init__.py
python/paddle/nn/layer/__init__.py
+2
-2
python/paddle/nn/layer/conv.py
python/paddle/nn/layer/conv.py
+184
-197
未找到文件。
paddle/fluid/operators/conv_transpose_op.cc
浏览文件 @
d26ae9ad
...
@@ -37,6 +37,8 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
...
@@ -37,6 +37,8 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
auto
filter_dims
=
ctx
->
GetInputDim
(
"Filter"
);
auto
filter_dims
=
ctx
->
GetInputDim
(
"Filter"
);
std
::
vector
<
int
>
output_size
=
std
::
vector
<
int
>
output_size
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"output_size"
);
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"output_size"
);
std
::
vector
<
int
>
output_padding
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"output_padding"
);
std
::
vector
<
int
>
strides
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"strides"
);
std
::
vector
<
int
>
strides
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"strides"
);
std
::
vector
<
int
>
paddings
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"paddings"
);
std
::
vector
<
int
>
paddings
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"paddings"
);
std
::
vector
<
int
>
dilations
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"dilations"
);
std
::
vector
<
int
>
dilations
=
ctx
->
Attrs
().
Get
<
std
::
vector
<
int
>>
(
"dilations"
);
...
@@ -78,6 +80,12 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
...
@@ -78,6 +80,12 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
platform
::
errors
::
InvalidArgument
(
platform
::
errors
::
InvalidArgument
(
"The Attr(output_size) and Attr(stride) of Op(conv_transpose) "
"The Attr(output_size) and Attr(stride) of Op(conv_transpose) "
"should be the same."
));
"should be the same."
));
if
(
output_padding
.
size
())
PADDLE_ENFORCE_EQ
(
output_padding
.
size
(),
strides
.
size
(),
platform
::
errors
::
InvalidArgument
(
"The Attr(output_padding) and Attr(stride) of Op(conv_transpose) "
"should be the same."
));
const
int64_t
C
=
const
int64_t
C
=
(
data_layout
!=
DataLayout
::
kNHWC
?
in_dims
[
1
]
(
data_layout
!=
DataLayout
::
kNHWC
?
in_dims
[
1
]
...
@@ -136,6 +144,27 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
...
@@ -136,6 +144,27 @@ void ConvTransposeOp::InferShape(framework::InferShapeContext* ctx) const {
infer_shape
+
strides
[
i
]));
infer_shape
+
strides
[
i
]));
}
}
output_shape
.
push_back
(
output_size
[
i
]);
output_shape
.
push_back
(
output_size
[
i
]);
}
else
if
(
output_padding
.
size
())
{
if
(
ctx
->
IsRuntime
())
{
PADDLE_ENFORCE_GE
(
output_padding
[
i
],
0
,
platform
::
errors
::
InvalidArgument
(
"output_padding of Op(ConvTransposeOp) should not be "
"less than the 0. But received output_padding = "
"[%s], whose dim %d is less than 0"
,
framework
::
make_ddim
(
output_padding
),
i
));
PADDLE_ENFORCE_LT
(
output_padding
[
i
],
std
::
max
(
strides
[
i
],
dilations
[
i
]),
platform
::
errors
::
InvalidArgument
(
"output_padding of Op(ConvTransposeOp) should be less "
"than either stride or dilation. But received output_size = "
"[%s], "
"whose dim %d is not less than either stride (%d) or "
"dilation (%d)"
,
framework
::
make_ddim
(
output_size
),
i
,
strides
[
i
],
dilations
[
i
]));
}
output_shape
.
push_back
((
infer_shape
+
output_padding
[
i
]));
}
else
{
}
else
{
output_shape
.
push_back
(
infer_shape
);
output_shape
.
push_back
(
infer_shape
);
}
}
...
@@ -223,10 +252,14 @@ void Conv2DTransposeOpMaker::Make() {
...
@@ -223,10 +252,14 @@ void Conv2DTransposeOpMaker::Make() {
"The format of output tensor is X (one-dimensional) of size equal"
"The format of output tensor is X (one-dimensional) of size equal"
"to the number of output channels. Only used with MKL-DNN."
)
"to the number of output channels. Only used with MKL-DNN."
)
.
AsDispensable
();
.
AsDispensable
();
AddOutput
(
"Output"
,
AddOutput
(
"Output"
,
"(Tensor) The output tensor of convolution transpose operator. "
"(Tensor) The output tensor of convolution transpose operator. "
"The format of output tensor is the same as input tensor."
);
"The format of output tensor is the same as input tensor."
);
AddAttr
<
std
::
vector
<
int
>>
(
"output_padding"
,
"(vector<int> default: []), Additional size added "
"to one side of each dimension in the output "
"shape"
)
.
SetDefault
({});
AddAttr
<
std
::
vector
<
int
>>
(
"output_size"
,
AddAttr
<
std
::
vector
<
int
>>
(
"output_size"
,
"(vector<int> default: []), the "
"(vector<int> default: []), the "
"size of the output tensor"
)
"size of the output tensor"
)
...
@@ -338,6 +371,11 @@ void Conv3DTransposeOpMaker::Make() {
...
@@ -338,6 +371,11 @@ void Conv3DTransposeOpMaker::Make() {
"Where N is batch size, C is "
"Where N is batch size, C is "
"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
>>
(
"output_padding"
,
"(vector<int> default: []), Additional size added "
"to one side of each dimension in the output "
"shape"
)
.
SetDefault
({});
AddAttr
<
std
::
vector
<
int
>>
(
"output_size"
,
AddAttr
<
std
::
vector
<
int
>>
(
"output_size"
,
"(vector<int> default: []), the "
"(vector<int> default: []), the "
"size of the output tensor"
)
"size of the output tensor"
)
...
...
python/paddle/fluid/tests/unittests/test_conv2d_transpose_layer.py
浏览文件 @
d26ae9ad
...
@@ -29,13 +29,12 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -29,13 +29,12 @@ class Conv2DTransposeTestCase(unittest.TestCase):
num_filters
=
8
,
num_filters
=
8
,
filter_size
=
3
,
filter_size
=
3
,
output_size
=
None
,
output_size
=
None
,
output_padding
=
0
,
padding
=
0
,
padding
=
0
,
stride
=
1
,
stride
=
1
,
dilation
=
1
,
dilation
=
1
,
groups
=
1
,
groups
=
1
,
act
=
None
,
no_bias
=
False
,
no_bias
=
False
,
use_cudnn
=
True
,
data_format
=
"NCHW"
,
data_format
=
"NCHW"
,
dtype
=
"float32"
):
dtype
=
"float32"
):
super
(
Conv2DTransposeTestCase
,
self
).
__init__
(
methodName
)
super
(
Conv2DTransposeTestCase
,
self
).
__init__
(
methodName
)
...
@@ -45,14 +44,13 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -45,14 +44,13 @@ class Conv2DTransposeTestCase(unittest.TestCase):
self
.
spartial_shape
=
spartial_shape
self
.
spartial_shape
=
spartial_shape
self
.
filter_size
=
filter_size
self
.
filter_size
=
filter_size
self
.
output_size
=
output_size
self
.
output_size
=
output_size
self
.
output_padding
=
output_padding
self
.
padding
=
padding
self
.
padding
=
padding
self
.
stride
=
stride
self
.
stride
=
stride
self
.
dilation
=
dilation
self
.
dilation
=
dilation
self
.
groups
=
groups
self
.
groups
=
groups
self
.
act
=
act
self
.
no_bias
=
no_bias
self
.
no_bias
=
no_bias
self
.
use_cudnn
=
use_cudnn
self
.
data_format
=
data_format
self
.
data_format
=
data_format
self
.
dtype
=
dtype
self
.
dtype
=
dtype
...
@@ -93,6 +91,7 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -93,6 +91,7 @@ class Conv2DTransposeTestCase(unittest.TestCase):
bias_attr
=
False
bias_attr
=
False
else
:
else
:
bias_attr
=
I
.
NumpyArrayInitializer
(
self
.
bias
)
bias_attr
=
I
.
NumpyArrayInitializer
(
self
.
bias
)
y_var
=
fluid
.
layers
.
conv2d_transpose
(
y_var
=
fluid
.
layers
.
conv2d_transpose
(
x_var
,
x_var
,
self
.
num_filters
,
self
.
num_filters
,
...
@@ -104,8 +103,6 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -104,8 +103,6 @@ class Conv2DTransposeTestCase(unittest.TestCase):
groups
=
self
.
groups
,
groups
=
self
.
groups
,
param_attr
=
weight_attr
,
param_attr
=
weight_attr
,
bias_attr
=
bias_attr
,
bias_attr
=
bias_attr
,
use_cudnn
=
self
.
use_cudnn
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
feed_dict
=
{
"input"
:
self
.
input
}
feed_dict
=
{
"input"
:
self
.
input
}
exe
=
fluid
.
Executor
(
place
)
exe
=
fluid
.
Executor
(
place
)
...
@@ -125,17 +122,22 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -125,17 +122,22 @@ class Conv2DTransposeTestCase(unittest.TestCase):
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
b_var
=
fluid
.
data
(
b_var
=
fluid
.
data
(
"bias"
,
(
self
.
num_filters
,
),
dtype
=
self
.
dtype
)
"bias"
,
(
self
.
num_filters
,
),
dtype
=
self
.
dtype
)
y_var
=
F
.
conv2d_transpose
(
if
self
.
output_padding
!=
0
:
output_size
=
None
else
:
output_size
=
self
.
output_size
y_var
=
F
.
conv_transpose2d
(
x_var
,
x_var
,
w_var
,
w_var
,
None
if
self
.
no_bias
else
b_var
,
None
if
self
.
no_bias
else
b_var
,
output_size
=
self
.
output_size
,
output_size
=
output_size
,
padding
=
self
.
padding
,
padding
=
self
.
padding
,
output_padding
=
self
.
output_padding
,
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
use_cudnn
=
self
.
use_cudnn
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
if
self
.
bias
is
not
None
:
if
self
.
bias
is
not
None
:
...
@@ -147,32 +149,38 @@ class Conv2DTransposeTestCase(unittest.TestCase):
...
@@ -147,32 +149,38 @@ class Conv2DTransposeTestCase(unittest.TestCase):
def
paddle_nn_layer
(
self
):
def
paddle_nn_layer
(
self
):
x_var
=
dg
.
to_variable
(
self
.
input
)
x_var
=
dg
.
to_variable
(
self
.
input
)
conv
=
nn
.
Conv2DTranspose
(
if
self
.
output_padding
!=
0
:
output_size
=
None
else
:
output_size
=
self
.
output_size
conv
=
nn
.
ConvTranspose2d
(
self
.
num_channels
,
self
.
num_channels
,
self
.
num_filters
,
self
.
num_filters
,
self
.
filter_size
,
self
.
filter_size
,
output_size
=
self
.
output_size
,
padding
=
self
.
padding
,
padding
=
self
.
padding
,
output_padding
=
self
.
output_padding
,
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
use_cudnn
=
self
.
use_cudnn
,
data_format
=
self
.
data_format
,
dtype
=
self
.
dtype
)
conv
.
weight
.
set_value
(
self
.
weight
)
conv
.
weight
.
set_value
(
self
.
weight
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
conv
.
bias
.
set_value
(
self
.
bias
)
conv
.
bias
.
set_value
(
self
.
bias
)
y_var
=
conv
(
x_var
)
y_var
=
conv
(
x_var
,
output_size
)
y_np
=
y_var
.
numpy
()
y_np
=
y_var
.
numpy
()
return
y_np
return
y_np
def
_test_equivalence
(
self
,
place
):
def
_test_equivalence
(
self
,
place
):
place
=
fluid
.
CPUPlace
()
place
=
fluid
.
CPUPlace
()
result1
=
self
.
fluid_layer
(
place
)
result1
=
self
.
fluid_layer
(
place
)
result2
=
self
.
functional
(
place
)
result2
=
self
.
functional
(
place
)
with
dg
.
guard
(
place
):
with
dg
.
guard
(
place
):
result3
=
self
.
paddle_nn_layer
()
result3
=
self
.
paddle_nn_layer
()
np
.
testing
.
assert_array_almost_equal
(
result1
,
result2
)
np
.
testing
.
assert_array_almost_equal
(
result1
,
result2
)
np
.
testing
.
assert_array_almost_equal
(
result2
,
result3
)
np
.
testing
.
assert_array_almost_equal
(
result2
,
result3
)
...
@@ -194,7 +202,7 @@ class Conv2DTransposeErrorTestCase(Conv2DTransposeTestCase):
...
@@ -194,7 +202,7 @@ class Conv2DTransposeErrorTestCase(Conv2DTransposeTestCase):
def
add_cases
(
suite
):
def
add_cases
(
suite
):
suite
.
addTest
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
act
=
"relu"
))
suite
.
addTest
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
))
suite
.
addTest
(
suite
.
addTest
(
Conv2DTransposeTestCase
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
stride
=
[
1
,
2
],
no_bias
=
True
,
dilation
=
2
))
methodName
=
'runTest'
,
stride
=
[
1
,
2
],
no_bias
=
True
,
dilation
=
2
))
...
@@ -211,9 +219,6 @@ def add_cases(suite):
...
@@ -211,9 +219,6 @@ def add_cases(suite):
suite
.
addTest
(
suite
.
addTest
(
Conv2DTransposeTestCase
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
padding
=
"valid"
))
methodName
=
'runTest'
,
padding
=
"valid"
))
suite
.
addTest
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
padding
=
'valid'
))
suite
.
addTest
(
suite
.
addTest
(
Conv2DTransposeTestCase
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
filter_size
=
1
,
padding
=
(
2
,
3
)))
methodName
=
'runTest'
,
filter_size
=
1
,
padding
=
(
2
,
3
)))
...
@@ -240,15 +245,22 @@ def add_cases(suite):
...
@@ -240,15 +245,22 @@ def add_cases(suite):
num_filters
=
6
,
num_filters
=
6
,
num_channels
=
3
,
num_channels
=
3
,
groups
=
3
,
groups
=
3
,
use_cudnn
=
False
,
act
=
"sigmoid"
,
padding
=
"valid"
))
padding
=
"valid"
))
suite
.
addTest
(
Conv2DTransposeTestCase
(
methodName
=
'runTest'
,
num_filters
=
6
,
num_channels
=
3
,
spartial_shape
=
(
7
,
7
),
filter_size
=
[
5
,
5
],
groups
=
1
,
padding
=
2
,
stride
=
2
,
output_size
=
[
14
,
14
],
output_padding
=
[
1
,
1
],
))
def
add_error_cases
(
suite
):
def
add_error_cases
(
suite
):
suite
.
addTest
(
Conv2DTransposeErrorTestCase
(
methodName
=
'runTest'
,
use_cudnn
=
"not_valid"
))
suite
.
addTest
(
suite
.
addTest
(
Conv2DTransposeErrorTestCase
(
Conv2DTransposeErrorTestCase
(
methodName
=
'runTest'
,
num_channels
=
5
,
groups
=
2
))
methodName
=
'runTest'
,
num_channels
=
5
,
groups
=
2
))
...
...
python/paddle/fluid/tests/unittests/test_conv2d_transpose_op.py
浏览文件 @
d26ae9ad
...
@@ -77,8 +77,13 @@ def conv2dtranspose_forward_naive(input_, filter_, attrs):
...
@@ -77,8 +77,13 @@ def conv2dtranspose_forward_naive(input_, filter_, attrs):
output_size
=
attrs
[
'output_size'
]
output_size
=
attrs
[
'output_size'
]
out_h
=
output_size
[
0
]
+
pad_h_0
+
pad_h_1
out_h
=
output_size
[
0
]
+
pad_h_0
+
pad_h_1
out_w
=
output_size
[
1
]
+
pad_w_0
+
pad_w_1
out_w
=
output_size
[
1
]
+
pad_w_0
+
pad_w_1
out_pad_h
=
0
out
=
np
.
zeros
((
in_n
,
out_c
,
out_h
,
out_w
),
dtype
=
input_
.
dtype
)
out_pad_w
=
0
if
'output_padding'
in
attrs
:
out_pad_h
=
attrs
[
'output_padding'
][
0
]
out_pad_w
=
attrs
[
'output_padding'
][
1
]
out
=
np
.
zeros
(
(
in_n
,
out_c
,
out_h
+
out_pad_h
,
out_w
+
out_pad_w
),
dtype
=
input_
.
dtype
)
for
n
in
range
(
in_n
):
for
n
in
range
(
in_n
):
for
i
in
range
(
in_h
):
for
i
in
range
(
in_h
):
...
@@ -99,7 +104,8 @@ def conv2dtranspose_forward_naive(input_, filter_, attrs):
...
@@ -99,7 +104,8 @@ def conv2dtranspose_forward_naive(input_, filter_, attrs):
out
[
n
,
g
*
f_out_c
+
k
,
i1
:
i2
:
dilations
[
0
],
j1
:
j2
:
out
[
n
,
g
*
f_out_c
+
k
,
i1
:
i2
:
dilations
[
0
],
j1
:
j2
:
dilations
[
1
]]
+=
tmp_out
dilations
[
1
]]
+=
tmp_out
out
=
out
[:,
:,
pad_h_0
:
out_h
-
pad_h_1
,
pad_w_0
:
out_w
-
pad_w_1
]
out
=
out
[:,
:,
pad_h_0
:
out_h
-
pad_h_1
+
out_pad_h
,
pad_w_0
:
out_w
-
pad_w_1
+
out_pad_w
]
if
attrs
[
'data_format'
]
==
'NHWC'
:
if
attrs
[
'data_format'
]
==
'NHWC'
:
out
=
np
.
transpose
(
out
,
[
0
,
2
,
3
,
1
])
out
=
np
.
transpose
(
out
,
[
0
,
2
,
3
,
1
])
return
out
return
out
...
@@ -114,6 +120,7 @@ class TestConv2dTransposeOp(OpTest):
...
@@ -114,6 +120,7 @@ class TestConv2dTransposeOp(OpTest):
self
.
use_cudnn
=
False
self
.
use_cudnn
=
False
self
.
use_mkldnn
=
False
self
.
use_mkldnn
=
False
self
.
output_size
=
None
self
.
output_size
=
None
self
.
output_padding
=
[]
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
self
.
pad
=
[
0
,
0
]
self
.
pad
=
[
0
,
0
]
self
.
padding_algorithm
=
"EXPLICIT"
self
.
padding_algorithm
=
"EXPLICIT"
...
@@ -138,6 +145,9 @@ class TestConv2dTransposeOp(OpTest):
...
@@ -138,6 +145,9 @@ class TestConv2dTransposeOp(OpTest):
if
self
.
output_size
is
not
None
:
if
self
.
output_size
is
not
None
:
self
.
attrs
[
'output_size'
]
=
self
.
output_size
self
.
attrs
[
'output_size'
]
=
self
.
output_size
if
len
(
self
.
output_padding
)
>
0
:
self
.
attrs
[
'output_padding'
]
=
self
.
output_padding
output
=
conv2dtranspose_forward_naive
(
input_
,
filter_
,
output
=
conv2dtranspose_forward_naive
(
input_
,
filter_
,
self
.
attrs
).
astype
(
self
.
dtype
)
self
.
attrs
).
astype
(
self
.
dtype
)
...
@@ -290,6 +300,18 @@ class TestWithEvenUpsample(TestConv2dTransposeOp):
...
@@ -290,6 +300,18 @@ class TestWithEvenUpsample(TestConv2dTransposeOp):
self
.
filter_size
=
[
f_c
,
6
,
5
,
5
]
self
.
filter_size
=
[
f_c
,
6
,
5
,
5
]
class
TestWithEvenUpsampleOutputPadding
(
TestConv2dTransposeOp
):
def
init_test_case
(
self
):
self
.
pad
=
[
2
,
2
]
self
.
stride
=
[
2
,
2
]
self
.
groups
=
1
self
.
dilations
=
[
1
,
1
]
self
.
output_padding
=
[
1
,
1
]
self
.
input_size
=
[
2
,
3
,
7
,
7
]
# NCHW
f_c
=
self
.
input_size
[
1
]
self
.
filter_size
=
[
f_c
,
6
,
5
,
5
]
class
Test_NHWC
(
TestConv2dTransposeOp
):
class
Test_NHWC
(
TestConv2dTransposeOp
):
def
init_test_case
(
self
):
def
init_test_case
(
self
):
self
.
pad
=
[
0
,
0
]
self
.
pad
=
[
0
,
0
]
...
@@ -375,6 +397,19 @@ class TestWithEvenUpsample_NHWC(TestConv2dTransposeOp):
...
@@ -375,6 +397,19 @@ class TestWithEvenUpsample_NHWC(TestConv2dTransposeOp):
self
.
data_format
=
'NHWC'
self
.
data_format
=
'NHWC'
class
TestWithEvenUpsample_NHWC_output_padding
(
TestConv2dTransposeOp
):
def
init_test_case
(
self
):
self
.
pad
=
[
2
,
2
]
self
.
stride
=
[
2
,
2
]
self
.
groups
=
1
self
.
dilations
=
[
1
,
1
]
self
.
output_padding
=
[
1
,
1
]
self
.
input_size
=
[
2
,
7
,
7
,
3
]
# NHWC
f_c
=
self
.
input_size
[
-
1
]
self
.
filter_size
=
[
f_c
,
6
,
5
,
5
]
self
.
data_format
=
'NHWC'
# ------------ test_cudnn ------------
# ------------ test_cudnn ------------
@
unittest
.
skipIf
(
not
core
.
is_compiled_with_cuda
(),
@
unittest
.
skipIf
(
not
core
.
is_compiled_with_cuda
(),
"core is not compiled with CUDA"
)
"core is not compiled with CUDA"
)
...
...
python/paddle/fluid/tests/unittests/test_conv3d_transpose_layer.py
浏览文件 @
d26ae9ad
...
@@ -33,9 +33,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -33,9 +33,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
stride
=
1
,
stride
=
1
,
dilation
=
1
,
dilation
=
1
,
groups
=
1
,
groups
=
1
,
act
=
None
,
no_bias
=
False
,
no_bias
=
False
,
use_cudnn
=
True
,
data_format
=
"NCDHW"
,
data_format
=
"NCDHW"
,
dtype
=
"float32"
):
dtype
=
"float32"
):
super
(
Conv3DTransposeTestCase
,
self
).
__init__
(
methodName
)
super
(
Conv3DTransposeTestCase
,
self
).
__init__
(
methodName
)
...
@@ -50,9 +48,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -50,9 +48,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
self
.
stride
=
stride
self
.
stride
=
stride
self
.
dilation
=
dilation
self
.
dilation
=
dilation
self
.
groups
=
groups
self
.
groups
=
groups
self
.
act
=
act
self
.
no_bias
=
no_bias
self
.
no_bias
=
no_bias
self
.
use_cudnn
=
use_cudnn
self
.
data_format
=
data_format
self
.
data_format
=
data_format
self
.
dtype
=
dtype
self
.
dtype
=
dtype
...
@@ -104,8 +100,6 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -104,8 +100,6 @@ class Conv3DTransposeTestCase(unittest.TestCase):
groups
=
self
.
groups
,
groups
=
self
.
groups
,
param_attr
=
weight_attr
,
param_attr
=
weight_attr
,
bias_attr
=
bias_attr
,
bias_attr
=
bias_attr
,
use_cudnn
=
self
.
use_cudnn
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
feed_dict
=
{
"input"
:
self
.
input
}
feed_dict
=
{
"input"
:
self
.
input
}
exe
=
fluid
.
Executor
(
place
)
exe
=
fluid
.
Executor
(
place
)
...
@@ -125,7 +119,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -125,7 +119,7 @@ class Conv3DTransposeTestCase(unittest.TestCase):
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
b_var
=
fluid
.
data
(
b_var
=
fluid
.
data
(
"bias"
,
(
self
.
num_filters
,
),
dtype
=
self
.
dtype
)
"bias"
,
(
self
.
num_filters
,
),
dtype
=
self
.
dtype
)
y_var
=
F
.
conv
3d_transpose
(
y_var
=
F
.
conv
_transpose3d
(
x_var
,
x_var
,
w_var
,
w_var
,
None
if
self
.
no_bias
else
b_var
,
None
if
self
.
no_bias
else
b_var
,
...
@@ -134,8 +128,6 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -134,8 +128,6 @@ class Conv3DTransposeTestCase(unittest.TestCase):
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
use_cudnn
=
self
.
use_cudnn
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
if
self
.
bias
is
not
None
:
if
self
.
bias
is
not
None
:
...
@@ -147,23 +139,19 @@ class Conv3DTransposeTestCase(unittest.TestCase):
...
@@ -147,23 +139,19 @@ class Conv3DTransposeTestCase(unittest.TestCase):
def
paddle_nn_layer
(
self
):
def
paddle_nn_layer
(
self
):
x_var
=
dg
.
to_variable
(
self
.
input
)
x_var
=
dg
.
to_variable
(
self
.
input
)
conv
=
nn
.
Conv
3DTranspose
(
conv
=
nn
.
Conv
Transpose3d
(
self
.
num_channels
,
self
.
num_channels
,
self
.
num_filters
,
self
.
num_filters
,
self
.
filter_size
,
self
.
filter_size
,
output_size
=
self
.
output_size
,
padding
=
self
.
padding
,
padding
=
self
.
padding
,
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
use_cudnn
=
self
.
use_cudnn
,
data_format
=
self
.
data_format
,
dtype
=
self
.
dtype
)
conv
.
weight
.
set_value
(
self
.
weight
)
conv
.
weight
.
set_value
(
self
.
weight
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
conv
.
bias
.
set_value
(
self
.
bias
)
conv
.
bias
.
set_value
(
self
.
bias
)
y_var
=
conv
(
x_var
)
y_var
=
conv
(
x_var
,
self
.
output_size
)
y_np
=
y_var
.
numpy
()
y_np
=
y_var
.
numpy
()
return
y_np
return
y_np
...
@@ -194,7 +182,7 @@ class Conv3DTransposeErrorTestCase(Conv3DTransposeTestCase):
...
@@ -194,7 +182,7 @@ class Conv3DTransposeErrorTestCase(Conv3DTransposeTestCase):
def
add_cases
(
suite
):
def
add_cases
(
suite
):
suite
.
addTest
(
Conv3DTransposeTestCase
(
methodName
=
'runTest'
,
act
=
"tanh"
))
suite
.
addTest
(
Conv3DTransposeTestCase
(
methodName
=
'runTest'
))
suite
.
addTest
(
suite
.
addTest
(
Conv3DTransposeTestCase
(
Conv3DTransposeTestCase
(
methodName
=
'runTest'
,
stride
=
[
1
,
2
,
1
],
dilation
=
2
,
no_bias
=
True
))
methodName
=
'runTest'
,
stride
=
[
1
,
2
,
1
],
dilation
=
2
,
no_bias
=
True
))
...
@@ -240,15 +228,10 @@ def add_cases(suite):
...
@@ -240,15 +228,10 @@ def add_cases(suite):
num_filters
=
6
,
num_filters
=
6
,
num_channels
=
3
,
num_channels
=
3
,
groups
=
3
,
groups
=
3
,
use_cudnn
=
False
,
act
=
"sigmoid"
,
padding
=
"valid"
))
padding
=
"valid"
))
def
add_error_cases
(
suite
):
def
add_error_cases
(
suite
):
suite
.
addTest
(
Conv3DTransposeErrorTestCase
(
methodName
=
'runTest'
,
use_cudnn
=
"not_valid"
))
suite
.
addTest
(
suite
.
addTest
(
Conv3DTransposeErrorTestCase
(
Conv3DTransposeErrorTestCase
(
methodName
=
'runTest'
,
num_channels
=
5
,
groups
=
2
))
methodName
=
'runTest'
,
num_channels
=
5
,
groups
=
2
))
...
...
python/paddle/fluid/tests/unittests/test_functional_conv2d_transpose.py
浏览文件 @
d26ae9ad
...
@@ -37,8 +37,6 @@ class TestFunctionalConv2D(TestCase):
...
@@ -37,8 +37,6 @@ class TestFunctionalConv2D(TestCase):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
def
prepare
(
self
):
def
prepare
(
self
):
...
@@ -90,8 +88,6 @@ class TestFunctionalConv2D(TestCase):
...
@@ -90,8 +88,6 @@ class TestFunctionalConv2D(TestCase):
param_attr
=
I
.
NumpyArrayInitializer
(
self
.
weight
),
param_attr
=
I
.
NumpyArrayInitializer
(
self
.
weight
),
bias_attr
=
False
bias_attr
=
False
if
self
.
no_bias
else
I
.
NumpyArrayInitializer
(
self
.
bias
),
if
self
.
no_bias
else
I
.
NumpyArrayInitializer
(
self
.
bias
),
use_cudnn
=
self
.
use_cudnn
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
.
run
(
start
)
exe
.
run
(
start
)
...
@@ -115,7 +111,7 @@ class TestFunctionalConv2D(TestCase):
...
@@ -115,7 +111,7 @@ class TestFunctionalConv2D(TestCase):
"weight"
,
self
.
weight
.
shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight
.
shape
,
dtype
=
self
.
dtype
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
bias
=
fluid
.
data
(
"bias"
,
self
.
bias
.
shape
,
dtype
=
self
.
dtype
)
bias
=
fluid
.
data
(
"bias"
,
self
.
bias
.
shape
,
dtype
=
self
.
dtype
)
y
=
F
.
conv
2d_transpose
(
y
=
F
.
conv
_transpose2d
(
x
,
x
,
weight
,
weight
,
None
if
self
.
no_bias
else
bias
,
None
if
self
.
no_bias
else
bias
,
...
@@ -124,9 +120,7 @@ class TestFunctionalConv2D(TestCase):
...
@@ -124,9 +120,7 @@ class TestFunctionalConv2D(TestCase):
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
,
use_cudnn
=
self
.
use_cudnn
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
.
run
(
start
)
exe
.
run
(
start
)
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
...
@@ -140,7 +134,7 @@ class TestFunctionalConv2D(TestCase):
...
@@ -140,7 +134,7 @@ class TestFunctionalConv2D(TestCase):
x
=
dg
.
to_variable
(
self
.
input
)
x
=
dg
.
to_variable
(
self
.
input
)
weight
=
dg
.
to_variable
(
self
.
weight
)
weight
=
dg
.
to_variable
(
self
.
weight
)
bias
=
None
if
self
.
no_bias
else
dg
.
to_variable
(
self
.
bias
)
bias
=
None
if
self
.
no_bias
else
dg
.
to_variable
(
self
.
bias
)
y
=
F
.
conv
2d_transpose
(
y
=
F
.
conv
_transpose2d
(
x
,
x
,
weight
,
weight
,
bias
,
bias
,
...
@@ -148,10 +142,8 @@ class TestFunctionalConv2D(TestCase):
...
@@ -148,10 +142,8 @@ class TestFunctionalConv2D(TestCase):
padding
=
self
.
padding
,
padding
=
self
.
padding
,
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
act
=
self
.
act
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
data_format
=
self
.
data_format
,
data_format
=
self
.
data_format
)
use_cudnn
=
self
.
use_cudnn
)
out
=
y
.
numpy
()
out
=
y
.
numpy
()
return
out
return
out
...
@@ -189,8 +181,6 @@ class TestFunctionalConv2DError(TestCase):
...
@@ -189,8 +181,6 @@ class TestFunctionalConv2DError(TestCase):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
def
test_exception
(
self
):
def
test_exception
(
self
):
...
@@ -225,7 +215,7 @@ class TestFunctionalConv2DError(TestCase):
...
@@ -225,7 +215,7 @@ class TestFunctionalConv2DError(TestCase):
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
bias
=
fluid
.
data
(
"bias"
,
self
.
bias_shape
,
dtype
=
self
.
dtype
)
bias
=
fluid
.
data
(
"bias"
,
self
.
bias_shape
,
dtype
=
self
.
dtype
)
y
=
F
.
conv
2d_transpose
(
y
=
F
.
conv
_transpose2d
(
x
,
x
,
weight
,
weight
,
None
if
self
.
no_bias
else
bias
,
None
if
self
.
no_bias
else
bias
,
...
@@ -234,9 +224,7 @@ class TestFunctionalConv2DError(TestCase):
...
@@ -234,9 +224,7 @@ class TestFunctionalConv2DError(TestCase):
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
,
use_cudnn
=
self
.
use_cudnn
)
class
TestFunctionalConv2DCase2
(
TestFunctionalConv2D
):
class
TestFunctionalConv2DCase2
(
TestFunctionalConv2D
):
...
@@ -249,8 +237,6 @@ class TestFunctionalConv2DCase2(TestFunctionalConv2D):
...
@@ -249,8 +237,6 @@ class TestFunctionalConv2DCase2(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -264,8 +250,6 @@ class TestFunctionalConv2DCase3(TestFunctionalConv2D):
...
@@ -264,8 +250,6 @@ class TestFunctionalConv2DCase3(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
True
self
.
no_bias
=
True
self
.
act
=
None
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -279,8 +263,6 @@ class TestFunctionalConv2DCase4(TestFunctionalConv2D):
...
@@ -279,8 +263,6 @@ class TestFunctionalConv2DCase4(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -294,8 +276,6 @@ class TestFunctionalConv2DCase5(TestFunctionalConv2D):
...
@@ -294,8 +276,6 @@ class TestFunctionalConv2DCase5(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -309,8 +289,6 @@ class TestFunctionalConv2DCase6(TestFunctionalConv2D):
...
@@ -309,8 +289,6 @@ class TestFunctionalConv2DCase6(TestFunctionalConv2D):
self
.
dilation
=
(
2
,
1
)
self
.
dilation
=
(
2
,
1
)
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -324,8 +302,6 @@ class TestFunctionalConv2DCase7(TestFunctionalConv2D):
...
@@ -324,8 +302,6 @@ class TestFunctionalConv2DCase7(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
4
self
.
groups
=
4
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
False
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -340,8 +316,6 @@ class TestFunctionalConv2DCase8(TestFunctionalConv2D):
...
@@ -340,8 +316,6 @@ class TestFunctionalConv2DCase8(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -355,8 +329,6 @@ class TestFunctionalConv2DCase9(TestFunctionalConv2D):
...
@@ -355,8 +329,6 @@ class TestFunctionalConv2DCase9(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -370,8 +342,6 @@ class TestFunctionalConv2DCase10(TestFunctionalConv2D):
...
@@ -370,8 +342,6 @@ class TestFunctionalConv2DCase10(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -385,8 +355,6 @@ class TestFunctionalConv2DCase11(TestFunctionalConv2D):
...
@@ -385,8 +355,6 @@ class TestFunctionalConv2DCase11(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -400,8 +368,6 @@ class TestFunctionalConv2DCase12(TestFunctionalConv2D):
...
@@ -400,8 +368,6 @@ class TestFunctionalConv2DCase12(TestFunctionalConv2D):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -415,8 +381,6 @@ class TestFunctionalConv2DErrorCase2(TestFunctionalConv2DError):
...
@@ -415,8 +381,6 @@ class TestFunctionalConv2DErrorCase2(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -430,8 +394,6 @@ class TestFunctionalConv2DErrorCase3(TestFunctionalConv2DError):
...
@@ -430,8 +394,6 @@ class TestFunctionalConv2DErrorCase3(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NHWC"
self
.
data_format
=
"NHWC"
...
@@ -445,8 +407,6 @@ class TestFunctionalConv2DErrorCase4(TestFunctionalConv2DError):
...
@@ -445,8 +407,6 @@ class TestFunctionalConv2DErrorCase4(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -460,23 +420,6 @@ class TestFunctionalConv2DErrorCase5(TestFunctionalConv2DError):
...
@@ -460,23 +420,6 @@ class TestFunctionalConv2DErrorCase5(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
class
TestFunctionalConv2DErrorCase6
(
TestFunctionalConv2DError
):
def
setUp
(
self
):
self
.
in_channels
=
4
self
.
out_channels
=
5
self
.
filter_shape
=
3
self
.
padding
=
0
self
.
stride
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
"not_valid"
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -491,8 +434,6 @@ class TestFunctionalConv2DErrorCase7(TestFunctionalConv2DError):
...
@@ -491,8 +434,6 @@ class TestFunctionalConv2DErrorCase7(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
@@ -506,8 +447,6 @@ class TestFunctionalConv2DErrorCase8(TestFunctionalConv2DError):
...
@@ -506,8 +447,6 @@ class TestFunctionalConv2DErrorCase8(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"not_valid"
self
.
data_format
=
"not_valid"
...
@@ -521,8 +460,6 @@ class TestFunctionalConv2DErrorCase9(TestFunctionalConv2DError):
...
@@ -521,8 +460,6 @@ class TestFunctionalConv2DErrorCase9(TestFunctionalConv2DError):
self
.
dilation
=
1
self
.
dilation
=
1
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCHW"
self
.
data_format
=
"NCHW"
...
...
python/paddle/fluid/tests/unittests/test_functional_conv3d_transpose.py
浏览文件 @
d26ae9ad
...
@@ -38,7 +38,6 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -38,7 +38,6 @@ class TestFunctionalConv3DTranspose(TestCase):
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
def
prepare
(
self
):
def
prepare
(
self
):
...
@@ -90,7 +89,6 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -90,7 +89,6 @@ class TestFunctionalConv3DTranspose(TestCase):
param_attr
=
I
.
NumpyArrayInitializer
(
self
.
weight
),
param_attr
=
I
.
NumpyArrayInitializer
(
self
.
weight
),
bias_attr
=
False
bias_attr
=
False
if
self
.
no_bias
else
I
.
NumpyArrayInitializer
(
self
.
bias
),
if
self
.
no_bias
else
I
.
NumpyArrayInitializer
(
self
.
bias
),
use_cudnn
=
self
.
use_cudnn
,
act
=
self
.
act
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
=
fluid
.
Executor
(
self
.
place
)
...
@@ -115,7 +113,7 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -115,7 +113,7 @@ class TestFunctionalConv3DTranspose(TestCase):
"weight"
,
self
.
weight
.
shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight
.
shape
,
dtype
=
self
.
dtype
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
bias
=
fluid
.
data
(
"bias"
,
self
.
bias
.
shape
,
dtype
=
self
.
dtype
)
bias
=
fluid
.
data
(
"bias"
,
self
.
bias
.
shape
,
dtype
=
self
.
dtype
)
y
=
F
.
conv
3d_transpose
(
y
=
F
.
conv
_transpose3d
(
x
,
x
,
weight
,
weight
,
None
if
self
.
no_bias
else
bias
,
None
if
self
.
no_bias
else
bias
,
...
@@ -124,9 +122,9 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -124,9 +122,9 @@ class TestFunctionalConv3DTranspose(TestCase):
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
,
if
self
.
act
==
'sigmoid'
:
use_cudnn
=
self
.
use_cudnn
)
y
=
F
.
sigmoid
(
y
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
=
fluid
.
Executor
(
self
.
place
)
exe
.
run
(
start
)
exe
.
run
(
start
)
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
feed_dict
=
{
"input"
:
self
.
input
,
"weight"
:
self
.
weight
}
...
@@ -140,7 +138,7 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -140,7 +138,7 @@ class TestFunctionalConv3DTranspose(TestCase):
x
=
dg
.
to_variable
(
self
.
input
)
x
=
dg
.
to_variable
(
self
.
input
)
weight
=
dg
.
to_variable
(
self
.
weight
)
weight
=
dg
.
to_variable
(
self
.
weight
)
bias
=
None
if
self
.
no_bias
else
dg
.
to_variable
(
self
.
bias
)
bias
=
None
if
self
.
no_bias
else
dg
.
to_variable
(
self
.
bias
)
y
=
F
.
conv
3d_transpose
(
y
=
F
.
conv
_transpose3d
(
x
,
x
,
weight
,
weight
,
bias
,
bias
,
...
@@ -148,10 +146,10 @@ class TestFunctionalConv3DTranspose(TestCase):
...
@@ -148,10 +146,10 @@ class TestFunctionalConv3DTranspose(TestCase):
padding
=
self
.
padding
,
padding
=
self
.
padding
,
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
act
=
self
.
act
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
data_format
=
self
.
data_format
,
data_format
=
self
.
data_format
)
use_cudnn
=
self
.
use_cudnn
)
if
self
.
act
==
'sigmoid'
:
y
=
F
.
sigmoid
(
y
)
out
=
y
.
numpy
()
out
=
y
.
numpy
()
return
out
return
out
...
@@ -190,7 +188,6 @@ class TestFunctionalConv3DTransposeError(TestCase):
...
@@ -190,7 +188,6 @@ class TestFunctionalConv3DTransposeError(TestCase):
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
def
test_exception
(
self
):
def
test_exception
(
self
):
...
@@ -225,7 +222,7 @@ class TestFunctionalConv3DTransposeError(TestCase):
...
@@ -225,7 +222,7 @@ class TestFunctionalConv3DTransposeError(TestCase):
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
"weight"
,
self
.
weight_shape
,
dtype
=
self
.
dtype
)
if
not
self
.
no_bias
:
if
not
self
.
no_bias
:
bias
=
fluid
.
data
(
"bias"
,
self
.
bias_shape
,
dtype
=
self
.
dtype
)
bias
=
fluid
.
data
(
"bias"
,
self
.
bias_shape
,
dtype
=
self
.
dtype
)
y
=
F
.
conv
3d_transpose
(
y
=
F
.
conv
_transpose3d
(
x
,
x
,
weight
,
weight
,
None
if
self
.
no_bias
else
bias
,
None
if
self
.
no_bias
else
bias
,
...
@@ -234,9 +231,9 @@ class TestFunctionalConv3DTransposeError(TestCase):
...
@@ -234,9 +231,9 @@ class TestFunctionalConv3DTransposeError(TestCase):
stride
=
self
.
stride
,
stride
=
self
.
stride
,
dilation
=
self
.
dilation
,
dilation
=
self
.
dilation
,
groups
=
self
.
groups
,
groups
=
self
.
groups
,
act
=
self
.
act
,
data_format
=
self
.
data_format
)
data_format
=
self
.
data_format
,
if
self
.
act
==
'sigmoid'
:
use_cudnn
=
self
.
use_cudnn
)
y
=
F
.
sigmoid
(
y
)
class
TestFunctionalConv3DTransposeCase2
(
TestFunctionalConv3DTranspose
):
class
TestFunctionalConv3DTransposeCase2
(
TestFunctionalConv3DTranspose
):
...
@@ -250,7 +247,6 @@ class TestFunctionalConv3DTransposeCase2(TestFunctionalConv3DTranspose):
...
@@ -250,7 +247,6 @@ class TestFunctionalConv3DTransposeCase2(TestFunctionalConv3DTranspose):
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -265,7 +261,6 @@ class TestFunctionalConv3DTransposeCase3(TestFunctionalConv3DTranspose):
...
@@ -265,7 +261,6 @@ class TestFunctionalConv3DTransposeCase3(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -280,7 +275,6 @@ class TestFunctionalConv3DTransposeCase4(TestFunctionalConv3DTranspose):
...
@@ -280,7 +275,6 @@ class TestFunctionalConv3DTransposeCase4(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
True
self
.
no_bias
=
True
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -295,7 +289,6 @@ class TestFunctionalConv3DTransposeCase5(TestFunctionalConv3DTranspose):
...
@@ -295,7 +289,6 @@ class TestFunctionalConv3DTransposeCase5(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -310,7 +303,6 @@ class TestFunctionalConv3DTransposeCase6(TestFunctionalConv3DTranspose):
...
@@ -310,7 +303,6 @@ class TestFunctionalConv3DTransposeCase6(TestFunctionalConv3DTranspose):
self
.
groups
=
4
self
.
groups
=
4
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
False
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -326,7 +318,6 @@ class TestFunctionalConv3DTransposeCase7(TestFunctionalConv3DTranspose):
...
@@ -326,7 +318,6 @@ class TestFunctionalConv3DTransposeCase7(TestFunctionalConv3DTranspose):
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -341,7 +332,6 @@ class TestFunctionalConv3DTransposeCase8(TestFunctionalConv3DTranspose):
...
@@ -341,7 +332,6 @@ class TestFunctionalConv3DTransposeCase8(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -356,7 +346,6 @@ class TestFunctionalConv3DTransposeCase9(TestFunctionalConv3DTranspose):
...
@@ -356,7 +346,6 @@ class TestFunctionalConv3DTransposeCase9(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -371,7 +360,6 @@ class TestFunctionalConv3DTransposeCase10(TestFunctionalConv3DTranspose):
...
@@ -371,7 +360,6 @@ class TestFunctionalConv3DTransposeCase10(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -386,7 +374,6 @@ class TestFunctionalConv3DTransposeCase11(TestFunctionalConv3DTranspose):
...
@@ -386,7 +374,6 @@ class TestFunctionalConv3DTransposeCase11(TestFunctionalConv3DTranspose):
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -402,7 +389,6 @@ class TestFunctionalConv3DTransposeErrorCase2(
...
@@ -402,7 +389,6 @@ class TestFunctionalConv3DTransposeErrorCase2(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -418,7 +404,6 @@ class TestFunctionalConv3DTransposeErrorCase3(
...
@@ -418,7 +404,6 @@ class TestFunctionalConv3DTransposeErrorCase3(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NDHWC"
self
.
data_format
=
"NDHWC"
...
@@ -434,7 +419,6 @@ class TestFunctionalConv3DTransposeErrorCase4(
...
@@ -434,7 +419,6 @@ class TestFunctionalConv3DTransposeErrorCase4(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -450,23 +434,6 @@ class TestFunctionalConv3DTransposeErrorCase5(
...
@@ -450,23 +434,6 @@ class TestFunctionalConv3DTransposeErrorCase5(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
class
TestFunctionalConv3DTransposeErrorCase6
(
TestFunctionalConv3DTransposeError
):
def
setUp
(
self
):
self
.
in_channels
=
4
self
.
out_channels
=
5
self
.
filter_shape
=
3
self
.
padding
=
0
self
.
stride
=
1
self
.
dilation
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
"not_valid"
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -483,7 +450,6 @@ class TestFunctionalConv3DTransposeErrorCase7(
...
@@ -483,7 +450,6 @@ class TestFunctionalConv3DTransposeErrorCase7(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
@@ -499,7 +465,6 @@ class TestFunctionalConv3DTransposeErrorCase8(
...
@@ -499,7 +465,6 @@ class TestFunctionalConv3DTransposeErrorCase8(
self
.
groups
=
1
self
.
groups
=
1
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"not_valid"
self
.
data_format
=
"not_valid"
...
@@ -515,7 +480,6 @@ class TestFunctionalConv3DTransposeErrorCase9(
...
@@ -515,7 +480,6 @@ class TestFunctionalConv3DTransposeErrorCase9(
self
.
groups
=
2
self
.
groups
=
2
self
.
no_bias
=
False
self
.
no_bias
=
False
self
.
act
=
"sigmoid"
self
.
act
=
"sigmoid"
self
.
use_cudnn
=
True
self
.
data_format
=
"NCDHW"
self
.
data_format
=
"NCDHW"
...
...
python/paddle/nn/__init__.py
浏览文件 @
d26ae9ad
...
@@ -94,9 +94,9 @@ from .layer.common import Dropout3D #DEFINE_ALIAS
...
@@ -94,9 +94,9 @@ from .layer.common import Dropout3D #DEFINE_ALIAS
from
.layer.pooling
import
AdaptiveAvgPool2d
#DEFINE_ALIAS
from
.layer.pooling
import
AdaptiveAvgPool2d
#DEFINE_ALIAS
from
.layer.pooling
import
AdaptiveAvgPool3d
#DEFINE_ALIAS
from
.layer.pooling
import
AdaptiveAvgPool3d
#DEFINE_ALIAS
from
.layer.conv
import
Conv2D
#DEFINE_ALIAS
from
.layer.conv
import
Conv2D
#DEFINE_ALIAS
from
.layer.conv
import
Conv
2DTranspose
#DEFINE_ALIAS
from
.layer.conv
import
Conv
Transpose2d
#DEFINE_ALIAS
from
.layer.conv
import
Conv3D
#DEFINE_ALIAS
from
.layer.conv
import
Conv3D
#DEFINE_ALIAS
from
.layer.conv
import
Conv
3DTranspose
#DEFINE_ALIAS
from
.layer.conv
import
Conv
Transpose3d
#DEFINE_ALIAS
# from .layer.conv import TreeConv #DEFINE_ALIAS
# from .layer.conv import TreeConv #DEFINE_ALIAS
# from .layer.conv import Conv1D #DEFINE_ALIAS
# from .layer.conv import Conv1D #DEFINE_ALIAS
from
.layer.extension
import
RowConv
#DEFINE_ALIAS
from
.layer.extension
import
RowConv
#DEFINE_ALIAS
...
...
python/paddle/nn/functional/__init__.py
浏览文件 @
d26ae9ad
...
@@ -70,9 +70,9 @@ from .common import unfold #DEFINE_ALIAS
...
@@ -70,9 +70,9 @@ from .common import unfold #DEFINE_ALIAS
from
.common
import
assign
#DEFINE_ALIAS
from
.common
import
assign
#DEFINE_ALIAS
from
.common
import
interpolate
#DEFINE_ALIAS
from
.common
import
interpolate
#DEFINE_ALIAS
from
.conv
import
conv2d
#DEFINE_ALIAS
from
.conv
import
conv2d
#DEFINE_ALIAS
from
.conv
import
conv
2d_transpose
#DEFINE_ALIAS
from
.conv
import
conv
_transpose2d
#DEFINE_ALIAS
from
.conv
import
conv3d
#DEFINE_ALIAS
from
.conv
import
conv3d
#DEFINE_ALIAS
from
.conv
import
conv
3d_transpose
#DEFINE_ALIAS
from
.conv
import
conv
_transpose3d
#DEFINE_ALIAS
from
.extension
import
add_position_encoding
#DEFINE_ALIAS
from
.extension
import
add_position_encoding
#DEFINE_ALIAS
# from .extension import autoincreased_step_counter #DEFINE_ALIAS
# from .extension import autoincreased_step_counter #DEFINE_ALIAS
from
.extension
import
continuous_value_model
#DEFINE_ALIAS
from
.extension
import
continuous_value_model
#DEFINE_ALIAS
...
...
python/paddle/nn/functional/conv.py
浏览文件 @
d26ae9ad
此差异已折叠。
点击以展开。
python/paddle/nn/layer/__init__.py
浏览文件 @
d26ae9ad
...
@@ -58,9 +58,9 @@ from .common import Dropout3D #DEFINE_ALIAS
...
@@ -58,9 +58,9 @@ from .common import Dropout3D #DEFINE_ALIAS
from
.pooling
import
AdaptiveAvgPool2d
#DEFINE_ALIAS
from
.pooling
import
AdaptiveAvgPool2d
#DEFINE_ALIAS
from
.pooling
import
AdaptiveAvgPool3d
#DEFINE_ALIAS
from
.pooling
import
AdaptiveAvgPool3d
#DEFINE_ALIAS
from
.conv
import
Conv2D
#DEFINE_ALIAS
from
.conv
import
Conv2D
#DEFINE_ALIAS
from
.conv
import
Conv
2DTranspose
#DEFINE_ALIAS
from
.conv
import
Conv
Transpose2d
#DEFINE_ALIAS
from
.conv
import
Conv3D
#DEFINE_ALIAS
from
.conv
import
Conv3D
#DEFINE_ALIAS
from
.conv
import
Conv
3DTranspose
#DEFINE_ALIAS
from
.conv
import
Conv
Transpose3d
#DEFINE_ALIAS
# from .conv import TreeConv #DEFINE_ALIAS
# from .conv import TreeConv #DEFINE_ALIAS
# from .conv import Conv1D #DEFINE_ALIAS
# from .conv import Conv1D #DEFINE_ALIAS
from
.extension
import
RowConv
#DEFINE_ALIAS
from
.extension
import
RowConv
#DEFINE_ALIAS
...
...
python/paddle/nn/layer/conv.py
浏览文件 @
d26ae9ad
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录