keras-contrib icon indicating copy to clipboard operation
keras-contrib copied to clipboard

ConvolutionAware error

Open iperov opened this issue 5 years ago • 3 comments

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

iperov avatar Mar 16 '19 04:03 iperov

fix:

elif rank == 4:
...
transpose_dimensions = (2, 3, 1, 0)

iperov avatar Mar 16 '19 04:03 iperov

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?

frederikfaye avatar Apr 01 '19 11:04 frederikfaye

channels_first vs. channels_last problem?

no. Kernel dims: (height, width, ch_in, ch_out)

iperov avatar Apr 01 '19 11:04 iperov