Performing 1d Convolution Using 2d Kernel In Keras
I am currently working on a CNN network, in which i want to apply a 2d kernel on a image, but it only has to perform 1d convolution, meaning that it only has to move along one axis
Solution 1:
Assuming that your image shape=(dim_x, dim_y, img_channels) you can obtain a 1D convolution by setting:
conv1d_on_image = Convolution2D(output_channels, 1, dim_y, border_mode='valid')(input)
Remember that the output from this layer would have shape (dim_x, 1, output_channels). If you want your input to be sequential you may use the Reshape layer by setting:
conv1d_on_image = Reshape((dim_x, output_channels))(conv1d_on_image)
This would produce output with shape (dim_x, output_channels).
An interesting fact is that this is exactly the way how Conv1D works in Keras with tf backend.
Post a Comment for "Performing 1d Convolution Using 2d Kernel In Keras"