mirror of
https://github.com/wassname/keras-contrib.git
synced 2026-07-21 12:40:40 +08:00
81 lines
3.6 KiB
Python
81 lines
3.6 KiB
Python
import pytest
|
|
import numpy as np
|
|
from numpy.testing import assert_allclose
|
|
|
|
from keras.utils.test_utils import layer_test, keras_test
|
|
from keras.utils.np_utils import conv_input_length
|
|
from keras import backend as K
|
|
from keras_contrib import backend as KC
|
|
from keras_contrib.layers import convolutional, pooling
|
|
|
|
|
|
# TensorFlow does not support full convolution.
|
|
if K.backend() == 'theano':
|
|
_convolution_border_modes = ['valid', 'same', 'full']
|
|
else:
|
|
_convolution_border_modes = ['valid', 'same']
|
|
|
|
|
|
@keras_test
|
|
def test_deconvolution_3d():
|
|
nb_samples = 2
|
|
nb_filter = 2
|
|
stack_size = 3
|
|
kernel_dim1 = 10
|
|
kernel_dim2 = 6
|
|
kernel_dim3 = 5
|
|
|
|
for batch_size in [None, nb_samples]:
|
|
for border_mode in _convolution_border_modes:
|
|
for subsample in [(1, 1, 1), (2, 2, 2)]:
|
|
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])
|
|
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_dim3': 3,
|
|
'output_shape': (batch_size, nb_filter, dim1, dim2, dim3),
|
|
'border_mode': border_mode,
|
|
'subsample': subsample,
|
|
'dim_ordering': 'th'},
|
|
input_shape=(nb_samples, stack_size, kernel_dim1, kernel_dim2, kernel_dim3),
|
|
fixed_batch_size=True)
|
|
|
|
layer_test(convolutional.Deconvolution3D,
|
|
kwargs={'nb_filter': nb_filter,
|
|
'kernel_dim1': 3,
|
|
'kernel_dim2': 3,
|
|
'kernel_dim3': 3,
|
|
'output_shape': (batch_size, nb_filter, dim1, dim2, dim3),
|
|
'border_mode': border_mode,
|
|
'dim_ordering': 'th',
|
|
'W_regularizer': 'l2',
|
|
'b_regularizer': 'l2',
|
|
'activity_regularizer': 'activity_l2',
|
|
'subsample': subsample},
|
|
input_shape=(nb_samples, stack_size, kernel_dim1, kernel_dim2, kernel_dim3),
|
|
fixed_batch_size=True)
|
|
|
|
layer_test(convolutional.Deconvolution3D,
|
|
kwargs={'nb_filter': nb_filter,
|
|
'kernel_dim1': 3,
|
|
'kernel_dim2': 3,
|
|
'kernel_dim3': 3,
|
|
'output_shape': (nb_filter, dim1, dim2, dim3),
|
|
'border_mode': border_mode,
|
|
'dim_ordering': 'th',
|
|
'W_regularizer': 'l2',
|
|
'b_regularizer': 'l2',
|
|
'activity_regularizer': 'activity_l2',
|
|
'subsample': subsample},
|
|
input_shape=(nb_samples, stack_size, kernel_dim1, kernel_dim2, kernel_dim3))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
pytest.main([__file__])
|