@@ -2745,9 +2745,11 @@ def is_list_or_tuple(ele):
2745
2745
padding = padding[1:3]
2746
2746
padding = [ele for a_list in padding for ele in a_list]
2747
2747
padding = utils.convert_to_list(padding, 4, 'padding')
2748
+ if utils._is_symmetric_padding(padding, 2):
2749
+ padding = [padding[0], padding[2]]
2750
+
2748
2751
else:
2749
2752
padding = utils.convert_to_list(padding, 2, 'padding')
2750
- padding = [padding[0], padding[0], padding[1], padding[1]]
2751
2753
2752
2754
return padding
2753
2755
@@ -2760,10 +2762,10 @@ def is_list_or_tuple(ele):
2760
2762
str(padding))
2761
2763
if padding == "VALID":
2762
2764
padding_algorithm = "VALID"
2763
- padding = [0, 0, 0, 0 ]
2765
+ padding = [0, 0]
2764
2766
elif padding == "SAME":
2765
2767
padding_algorithm = "SAME"
2766
- padding = [0, 0, 0, 0 ]
2768
+ padding = [0, 0]
2767
2769
2768
2770
padding = _update_padding(padding, data_format)
2769
2771
@@ -2989,15 +2991,14 @@ def is_list_or_tuple(ele):
2989
2991
padding = padding[1:4]
2990
2992
padding = [ele for a_list in padding for ele in a_list]
2991
2993
padding = utils.convert_to_list(padding, 6, 'padding')
2992
-
2994
+ if utils._is_symmetric_padding(padding, 3):
2995
+ padding = [padding[0], padding[2], padding[4]]
2993
2996
elif is_list_or_tuple(padding) and len(padding) == 6:
2994
2997
padding = utils.convert_to_list(padding, 6, 'padding')
2998
+ if utils._is_symmetric_padding(padding, 3):
2999
+ padding = [padding[0], padding[2], padding[4]]
2995
3000
else:
2996
3001
padding = utils.convert_to_list(padding, 3, 'padding')
2997
- padding = [
2998
- padding[0], padding[0], padding[1], padding[1], padding[2],
2999
- padding[2]
3000
- ]
3001
3002
3002
3003
return padding
3003
3004
@@ -3010,10 +3011,10 @@ def is_list_or_tuple(ele):
3010
3011
str(padding))
3011
3012
if padding == "VALID":
3012
3013
padding_algorithm = "VALID"
3013
- padding = [0, 0, 0, 0, 0, 0 ]
3014
+ padding = [0, 0, 0]
3014
3015
elif padding == "SAME":
3015
3016
padding_algorithm = "SAME"
3016
- padding = [0, 0, 0, 0, 0, 0 ]
3017
+ padding = [0, 0, 0]
3017
3018
3018
3019
padding = _update_padding(padding, data_format)
3019
3020
@@ -3556,6 +3557,8 @@ def is_list_or_tuple(ele):
3556
3557
padding = [ele for a_list in padding for ele in a_list]
3557
3558
padding = utils.convert_to_list(padding, 4, 'padding')
3558
3559
3560
+ if utils._is_symmetric_padding(padding, 2):
3561
+ padding = [padding[0], padding[2]]
3559
3562
else:
3560
3563
padding = utils.convert_to_list(padding, 2, 'padding')
3561
3564
@@ -3570,14 +3573,14 @@ def is_list_or_tuple(ele):
3570
3573
% str(pool_padding))
3571
3574
if pool_padding == "VALID":
3572
3575
padding_algorithm = "VALID"
3573
- pool_padding = [0, 0, 0, 0 ]
3576
+ pool_padding = [0, 0]
3574
3577
if ceil_mode != False:
3575
3578
raise ValueError(
3576
3579
"When Attr(pool_padding) is \"VALID\", Attr(ceil_mode) must be False. "
3577
3580
"Received ceil_mode: True.")
3578
3581
elif pool_padding == "SAME":
3579
3582
padding_algorithm = "SAME"
3580
- pool_padding = [0, 0, 0, 0 ]
3583
+ pool_padding = [0, 0]
3581
3584
3582
3585
pool_padding = update_padding(pool_padding, data_format)
3583
3586
@@ -3760,10 +3763,13 @@ def is_list_or_tuple(ele):
3760
3763
padding = padding[1:4]
3761
3764
padding = [ele for a_list in padding for ele in a_list]
3762
3765
padding = utils.convert_to_list(padding, 6, 'padding')
3766
+ if utils._is_symmetric_padding(padding, 3):
3767
+ padding = [padding[0], padding[2], padding[4]]
3763
3768
3764
3769
elif is_list_or_tuple(padding) and len(padding) == 6:
3765
3770
padding = utils.convert_to_list(padding, 6, 'padding')
3766
-
3771
+ if utils._is_symmetric_padding(padding, 3):
3772
+ padding = [padding[0], padding[2], padding[4]]
3767
3773
else:
3768
3774
padding = utils.convert_to_list(padding, 3, 'padding')
3769
3775
@@ -3778,14 +3784,14 @@ def is_list_or_tuple(ele):
3778
3784
% str(pool_padding))
3779
3785
if pool_padding == "VALID":
3780
3786
padding_algorithm = "VALID"
3781
- pool_padding = [0, 0, 0, 0, 0, 0 ]
3787
+ pool_padding = [0, 0, 0]
3782
3788
if ceil_mode != False:
3783
3789
raise ValueError(
3784
3790
"When Attr(pool_padding) is \"VALID\", ceil_mode must be False. "
3785
3791
"Received ceil_mode: True.")
3786
3792
elif pool_padding == "SAME":
3787
3793
padding_algorithm = "SAME"
3788
- pool_padding = [0, 0, 0, 0, 0, 0 ]
3794
+ pool_padding = [0, 0, 0]
3789
3795
3790
3796
pool_padding = update_padding(pool_padding, data_format)
3791
3797
@@ -5125,6 +5131,9 @@ def is_list_or_tuple(ele):
5125
5131
filter_size = utils.convert_to_list(filter_size, 2,
5126
5132
'conv2d_transpose.filter_size')
5127
5133
5134
+ if len(padding) == 4 and utils._is_symmetric_padding(padding, 2):
5135
+ padding = [padding[0], padding[2]]
5136
+
5128
5137
if output_size is None:
5129
5138
output_size = []
5130
5139
elif isinstance(output_size, list) or isinstance(output_size, int):
@@ -5360,13 +5369,13 @@ def is_list_or_tuple(ele):
5360
5369
5361
5370
elif is_list_or_tuple(padding) and len(padding) == 6:
5362
5371
padding = utils.convert_to_list(padding, 6, 'padding')
5372
+
5363
5373
else:
5364
5374
padding = utils.convert_to_list(padding, 3, 'padding')
5365
5375
padding = [
5366
5376
padding[0], padding[0], padding[1], padding[1], padding[2],
5367
5377
padding[2]
5368
5378
]
5369
-
5370
5379
return padding
5371
5380
5372
5381
padding_algorithm = "EXPLICIT"
@@ -5406,6 +5415,9 @@ def is_list_or_tuple(ele):
5406
5415
filter_size = utils.convert_to_list(filter_size, 3,
5407
5416
'conv3d_transpose.filter_size')
5408
5417
5418
+ if len(padding) == 6 and utils._is_symmetric_padding(padding, 3):
5419
+ padding = [padding[0], padding[2], padding[4]]
5420
+
5409
5421
groups = 1 if groups is None else groups
5410
5422
filter_shape = [input_channel, num_filters // groups] + filter_size
5411
5423
img_filter = helper.create_parameter(
0 commit comments