Browse Source

add check in conv3d object

tags/v1.2.0-rc1
jiangzhenguang 5 years ago
parent
commit
bdc0d86055
1 changed files with 30 additions and 12 deletions
  1. +30
    -12
      mindspore/ops/operations/nn_ops.py

+ 30
- 12
mindspore/ops/operations/nn_ops.py View File

@@ -6836,6 +6836,18 @@ class Conv3D(PrimitiveWithInfer):
pad = (pad,) * 6
validator.check_equal_int(len(pad), 6, 'pad size', self.name)
self.padding = pad
validator.check_int_range(self.padding[0], 0, kernel_size[0], Rel.INC_LEFT,
'pad_d belonging [0, kernel_size_d)', self.name)
validator.check_int_range(self.padding[1], 0, kernel_size[0], Rel.INC_LEFT,
'pad_d belonging [0, kernel_size_d)', self.name)
validator.check_int_range(self.padding[2], 0, kernel_size[1], Rel.INC_LEFT,
'pad_h belonging [0, kernel_size_h)', self.name)
validator.check_int_range(self.padding[3], 0, kernel_size[1], Rel.INC_LEFT,
'pad_h belonging [0, kernel_size_h)', self.name)
validator.check_int_range(self.padding[4], 0, kernel_size[2], Rel.INC_LEFT,
'pad_w belonging [0, kernel_size_w)', self.name)
validator.check_int_range(self.padding[5], 0, kernel_size[2], Rel.INC_LEFT,
'pad_w belonging [0, kernel_size_w)', self.name)
self.pad_mode = validator.check_string(pad_mode.lower(), ['valid', 'same', 'pad'], 'pad_mode', self.name)
self.add_prim_attr('pad_mode', self.pad_mode)

@@ -7129,6 +7141,18 @@ class Conv3DTranspose(PrimitiveWithInfer):
self.pad_list = pad
for item in self.pad_list:
validator.check_non_negative_int(item, 'pad item', self.name)
validator.check_int_range(self.pad_list[0], 0, kernel_size[0], Rel.INC_LEFT,
'pad_d belonging [0, kernel_size_d)', self.name)
validator.check_int_range(self.pad_list[1], 0, kernel_size[0], Rel.INC_LEFT,
'pad_d belonging [0, kernel_size_d)', self.name)
validator.check_int_range(self.pad_list[2], 0, kernel_size[1], Rel.INC_LEFT,
'pad_h belonging [0, kernel_size_h)', self.name)
validator.check_int_range(self.pad_list[3], 0, kernel_size[1], Rel.INC_LEFT,
'pad_h belonging [0, kernel_size_h)', self.name)
validator.check_int_range(self.pad_list[4], 0, kernel_size[2], Rel.INC_LEFT,
'pad_w belonging [0, kernel_size_w)', self.name)
validator.check_int_range(self.pad_list[5], 0, kernel_size[2], Rel.INC_LEFT,
'pad_w belonging [0, kernel_size_w)', self.name)
self.mode = validator.check_equal_int(mode, 1, 'mode', self.name)
self.add_prim_attr('mode', self.mode)
self.group = validator.check_positive_int(group, 'group', self.name)
@@ -7139,18 +7163,12 @@ class Conv3DTranspose(PrimitiveWithInfer):

self.output_padding = _check_3d_int_or_tuple('output_padding', output_padding, self.name,
allow_five=True, ret_five=True, greater_zero=False)
if self.output_padding[2] < 0 or (self.output_padding[2] >= self.dilation[2]
and self.output_padding[2] >= self.stride[2]):
raise ValueError("In op, the value of [output_padding D] should be [[0, max(stride D,dilation D))], "
"but it is {}.".format(self.output_padding[2]))
if self.output_padding[3] < 0 or (self.output_padding[3] >= self.dilation[3]
and self.output_padding[3] >= self.stride[3]):
raise ValueError("In op, the value of [output_padding H] should be [[0, max(stride H,dilation H))], "
"but it is {}.".format(self.output_padding[3]))
if self.output_padding[4] < 0 or (self.output_padding[4] >= self.dilation[4]
and self.output_padding[4] >= self.stride[4]):
raise ValueError("In op, the value of [output_padding W] should be [[0, max(stride W,dilation W))], "
"but it is {}.".format(self.output_padding[4]))
validator.check_int_range(self.output_padding[2], 0, max(self.dilation[2], self.stride[2]), Rel.INC_LEFT,
'output_padding_d belonging [0, max(stride_d, dilation_d))', self.name)
validator.check_int_range(self.output_padding[3], 0, max(self.dilation[3], self.stride[3]), Rel.INC_LEFT,
'output_padding_h belonging [0, max(stride_h,dilation_h))', self.name)
validator.check_int_range(self.output_padding[4], 0, max(self.dilation[4], self.stride[4]), Rel.INC_LEFT,
'output_padding_w belonging [0, max(stride_w,dilation_w))', self.name)
self.add_prim_attr('output_padding', self.output_padding)

def __infer__(self, x, w, b=None):


Loading…
Cancel
Save