Fix deconv3d in TF backend (correct kernel transpose). (#21)

This commit is contained in:
Gijs van Tulder
2017-02-14 05:41:50 +01:00
committed by Michael Oliver
parent bad97abfe7
commit 40bdfd77c7
2 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ def deconv3d(x, kernel, output_shape, strides=(1, 1, 1),
x = _preprocess_conv3d_input(x, dim_ordering)
output_shape = _preprocess_deconv_output_shape(x, output_shape, dim_ordering)
kernel = _preprocess_conv3d_kernel(kernel, dim_ordering)
kernel = tf.transpose(kernel, (0, 1, 3, 4, 2))
kernel = tf.transpose(kernel, (0, 1, 2, 4, 3))
padding = _preprocess_border_mode(border_mode)
strides = (1,) + strides + (1,)
@@ -18,12 +18,12 @@ else:
@keras_test
def test_deconvolution_3d():
nb_samples = 2
nb_filter = 2
stack_size = 3
kernel_dim1 = 10
kernel_dim2 = 6
kernel_dim3 = 5
nb_samples = 6
nb_filter = 4
stack_size = 2
kernel_dim1 = 12
kernel_dim2 = 10
kernel_dim3 = 8
for batch_size in [None, nb_samples]:
for border_mode in _convolution_border_modes:
@@ -31,13 +31,13 @@ def test_deconvolution_3d():
if border_mode == 'same' and subsample != (1, 1, 1):
continue
dim1 = conv_input_length(kernel_dim1, 3, border_mode, subsample[0])
dim2 = conv_input_length(kernel_dim2, 3, border_mode, subsample[1])
dim1 = conv_input_length(kernel_dim1, 7, border_mode, subsample[0])
dim2 = conv_input_length(kernel_dim2, 5, border_mode, subsample[1])
dim3 = conv_input_length(kernel_dim3, 3, border_mode, subsample[2])
layer_test(convolutional.Deconvolution3D,
kwargs={'nb_filter': nb_filter,
'kernel_dim1': 3,
'kernel_dim2': 3,
'kernel_dim1': 7,
'kernel_dim2': 5,
'kernel_dim3': 3,
'output_shape': (batch_size, nb_filter, dim1, dim2, dim3),
'border_mode': border_mode,
@@ -48,8 +48,8 @@ def test_deconvolution_3d():
layer_test(convolutional.Deconvolution3D,
kwargs={'nb_filter': nb_filter,
'kernel_dim1': 3,
'kernel_dim2': 3,
'kernel_dim1': 7,
'kernel_dim2': 5,
'kernel_dim3': 3,
'output_shape': (batch_size, nb_filter, dim1, dim2, dim3),
'border_mode': border_mode,
@@ -63,8 +63,8 @@ def test_deconvolution_3d():
layer_test(convolutional.Deconvolution3D,
kwargs={'nb_filter': nb_filter,
'kernel_dim1': 3,
'kernel_dim2': 3,
'kernel_dim1': 7,
'kernel_dim2': 5,
'kernel_dim3': 3,
'output_shape': (nb_filter, dim1, dim2, dim3),
'border_mode': border_mode,