keras-contrib
keras-contrib copied to clipboard
ConvolutionAware error
I try to use it in Conv2D
Conv2D(dim, kernel_size=5, strides=2, padding='same', kernel_initializer=CIAInitializer())
but got this error
File "D:\DFLBuild\DeepFaceLab\models\Model_SAE\Model.py", line 503, in func
return LeakyReLU(0.1)(Conv2D(dim, kernel_size=5, strides=2, padding='same',
kernel_initializer=CIAInitializer())(x))
File "F:\DeepFaceLabCUDA9.2SSE\_internal\python-3.6.8\lib\site-packages\keras\
engine\base_layer.py", line 457, in __call__
output = self.call(inputs, **kwargs)
File "F:\DeepFaceLabCUDA9.2SSE\_internal\python-3.6.8\lib\site-packages\keras\
layers\convolutional.py", line 171, in call
dilation_rate=self.dilation_rate)
File "F:\DeepFaceLabCUDA9.2SSE\_internal\python-3.6.8\lib\site-packages\keras\
backend\tensorflow_backend.py", line 3650, in conv2d
data_format=tf_data_format)
File "F:\DeepFaceLabCUDA9.2SSE\_internal\python-3.6.8\lib\site-packages\tensor
flow\python\ops\nn_ops.py", line 779, in convolution
data_format=data_format)
File "F:\DeepFaceLabCUDA9.2SSE\_internal\python-3.6.8\lib\site-packages\tensor
flow\python\ops\nn_ops.py", line 839, in __init__
filter_shape[num_spatial_dims]))
ValueError: number of input channels does not match corresponding dimension of f
ilter, 3 != 126
fix:
elif rank == 4:
...
transpose_dimensions = (2, 3, 1, 0)
I would also love to have this initializer work out of the box.
@iperov is suggesting changing
https://github.com/keras-team/keras-contrib/blob/5ffab172661411218e517a50170bb97760ea567b/keras_contrib/initializers/convaware.py#L45
to transpose_dimensions = (2, 3, 1, 0)
.
Can anyone comment on what this would entail? Is the current implementation simply a bug? Is it a channels_first
vs. channels_last
problem?
@the-moliver, maybe you could take a look?
channels_first vs. channels_last problem?
no. Kernel dims: (height, width, ch_in, ch_out)