def test_conv3d_transpose_invalid(): filters = 2 stack_size = 3 num_depth = 7 num_row = 5 num_col = 6 padding = 'valid' # Test invalid use case with pytest.raises(ValueError): model = Sequential([ convolutional.Conv3DTranspose(filters=filters, kernel_size=3, padding=padding, batch_input_shape=(None, None, 5, None, None)) ]) # Test invalid output padding for given stride. Output padding equal # to stride with pytest.raises(ValueError): model = Sequential([ convolutional.Conv3DTranspose(filters=filters, kernel_size=3, padding=padding, output_padding=(0, 3, 3), strides=(1, 3, 4), batch_input_shape=(None, num_depth, num_row, num_col, stack_size)) ]) # Output padding greater than stride with pytest.raises(ValueError): model = Sequential([ convolutional.Conv3DTranspose(filters=filters, kernel_size=3, padding=padding, output_padding=(2, 2, 3), strides=(1, 3, 4), batch_input_shape=(None, num_depth, num_row, num_col, stack_size)) ])
def test_conv3d_transpose(): filters = 2 stack_size = 3 num_depth = 7 num_row = 5 num_col = 6 for padding in _convolution_paddings: for strides in [(1, 1, 1), (2, 2, 2)]: for data_format in ['channels_first', 'channels_last']: if padding == 'same' and strides != (1, 1, 1): continue layer_test(convolutional.Conv3DTranspose, kwargs={ 'filters': filters, 'kernel_size': 3, 'padding': padding, 'strides': strides, 'data_format': data_format }, input_shape=(None, num_depth, num_row, num_col, stack_size), fixed_batch_size=True) layer_test(convolutional.Conv3DTranspose, kwargs={ 'filters': filters, 'kernel_size': 3, 'padding': padding, 'data_format': 'channels_first', 'activation': None, 'kernel_regularizer': 'l2', 'bias_regularizer': 'l2', 'activity_regularizer': 'l2', 'kernel_constraint': 'max_norm', 'bias_constraint': 'max_norm', 'use_bias': True, 'strides': strides }, input_shape=(None, stack_size, num_depth, num_row, num_col), fixed_batch_size=True) # Test invalid use case with pytest.raises(ValueError): model = Sequential([ convolutional.Conv3DTranspose(filters=filters, kernel_size=3, padding=padding, batch_input_shape=(None, None, 5, None, None)) ])