def test_upsampling_3d(): nb_samples = 9 stack_size = 7 input_len_dim1 = 10 input_len_dim2 = 11 input_len_dim3 = 12 for dim_ordering in ['th', 'tf']: if dim_ordering == 'th': input = np.random.rand(nb_samples, stack_size, input_len_dim1, input_len_dim2, input_len_dim3) else: # tf input = np.random.rand(nb_samples, input_len_dim1, input_len_dim2, input_len_dim3, stack_size) for length_dim1 in [2, 3, 9]: for length_dim2 in [2, 3, 9]: for length_dim3 in [2, 3, 9]: layer = convolutional.UpSampling3D( size=(length_dim1, length_dim2, length_dim3), input_shape=input.shape[1:], dim_ordering=dim_ordering) layer.input = K.variable(input) for train in [True, False]: out = K.eval(layer.get_output(train)) if dim_ordering == 'th': assert out.shape[2] == length_dim1 * input_len_dim1 assert out.shape[3] == length_dim2 * input_len_dim2 assert out.shape[4] == length_dim3 * input_len_dim3 else: # tf assert out.shape[1] == length_dim1 * input_len_dim1 assert out.shape[2] == length_dim2 * input_len_dim2 assert out.shape[3] == length_dim3 * input_len_dim3 # compare with numpy if dim_ordering == 'th': expected_out = np.repeat(input, length_dim1, axis=2) expected_out = np.repeat(expected_out, length_dim2, axis=3) expected_out = np.repeat(expected_out, length_dim3, axis=4) else: # tf expected_out = np.repeat(input, length_dim1, axis=1) expected_out = np.repeat(expected_out, length_dim2, axis=2) expected_out = np.repeat(expected_out, length_dim3, axis=3) assert_allclose(out, expected_out) layer.get_config()
def test_upsampling_3d(): nb_samples = 2 stack_size = 2 input_len_dim1 = 10 input_len_dim2 = 11 input_len_dim3 = 12 for dim_ordering in ['th', 'tf']: if dim_ordering == 'th': input = np.random.rand(nb_samples, stack_size, input_len_dim1, input_len_dim2, input_len_dim3) else: # tf input = np.random.rand(nb_samples, input_len_dim1, input_len_dim2, input_len_dim3, stack_size) for length_dim1 in [2, 3, 9]: for length_dim2 in [2, 3, 9]: for length_dim3 in [2, 3, 9]: layer = convolutional.UpSampling3D( size=(length_dim1, length_dim2, length_dim3), dim_ordering=dim_ordering) layer.build(input.shape) output = layer(K.variable(input)) np_output = K.eval(output) if dim_ordering == 'th': assert np_output.shape[ 2] == length_dim1 * input_len_dim1 assert np_output.shape[ 3] == length_dim2 * input_len_dim2 assert np_output.shape[ 4] == length_dim3 * input_len_dim3 else: # tf assert np_output.shape[ 1] == length_dim1 * input_len_dim1 assert np_output.shape[ 2] == length_dim2 * input_len_dim2 assert np_output.shape[ 3] == length_dim3 * input_len_dim3 # compare with numpy if dim_ordering == 'th': expected_out = np.repeat(input, length_dim1, axis=2) expected_out = np.repeat(expected_out, length_dim2, axis=3) expected_out = np.repeat(expected_out, length_dim3, axis=4) else: # tf expected_out = np.repeat(input, length_dim1, axis=1) expected_out = np.repeat(expected_out, length_dim2, axis=2) expected_out = np.repeat(expected_out, length_dim3, axis=3) assert_allclose(np_output, expected_out)
def test_upsampling_3d(data_format): num_samples = 2 stack_size = 2 input_len_dim1 = 10 input_len_dim2 = 11 input_len_dim3 = 12 if data_format == 'channels_first': inputs = np.random.rand(num_samples, stack_size, input_len_dim1, input_len_dim2, input_len_dim3) else: # tf inputs = np.random.rand(num_samples, input_len_dim1, input_len_dim2, input_len_dim3, stack_size) # basic test layer_test(convolutional.UpSampling3D, kwargs={ 'size': (2, 2, 2), 'data_format': data_format }, input_shape=inputs.shape) for length_dim1 in [2, 3]: for length_dim2 in [2]: for length_dim3 in [3]: layer = convolutional.UpSampling3D(size=(length_dim1, length_dim2, length_dim3), data_format=data_format) layer.build(inputs.shape) outputs = layer(K.variable(inputs)) np_output = K.eval(outputs) if data_format == 'channels_first': assert np_output.shape[2] == length_dim1 * input_len_dim1 assert np_output.shape[3] == length_dim2 * input_len_dim2 assert np_output.shape[4] == length_dim3 * input_len_dim3 else: # tf assert np_output.shape[1] == length_dim1 * input_len_dim1 assert np_output.shape[2] == length_dim2 * input_len_dim2 assert np_output.shape[3] == length_dim3 * input_len_dim3 # compare with numpy if data_format == 'channels_first': expected_out = np.repeat(inputs, length_dim1, axis=2) expected_out = np.repeat(expected_out, length_dim2, axis=3) expected_out = np.repeat(expected_out, length_dim3, axis=4) else: # tf expected_out = np.repeat(inputs, length_dim1, axis=1) expected_out = np.repeat(expected_out, length_dim2, axis=2) expected_out = np.repeat(expected_out, length_dim3, axis=3) assert_allclose(np_output, expected_out)