enthought / blusky

BluSky
BSD 3-Clause "New" or "Revised" License
5 stars 4 forks source link

1-d : Implement cascade of convolutions to any order. #9

Open blasscoc opened 5 years ago

blasscoc commented 5 years ago

Create a function to create a cascade of convolutions and 'abs' operations in 1-d. |x\psi1|, ||x\psi1|*\psi2| ....

Successive applications of "Conv" should not sum over channels, you need something equivalent to DepthwiseConv2D (which doesn't have a 1D equivalent).

The cascade will create a graph of convolutions with many "end-points", e.g.

|x\psi1|, |x\psi2|, ... etc.

Be sure to name the end-points with a unique number, and something to identify the order, e.g. 1-1, 2-1, ... , 10-2, ...

to label the endpoint and -x to label the order.

https://stackoverflow.com/questions/50528863/keras-convolution-1d-channel-indepently-samples-timesteps-features-wind-tur.

"There is in the backend the depthwise_conv2d, which does what you want, but only for 4D data. It misses the depthwise_conv1D, although you could also make your data (batch, 1, timesteps, nfeatures) and use a kernel size (1,5). But you would need to create a custom layer (to enable trainable filters) and use this function inside it."

Alternatively, work entirely in the fourier domain: https://datascience.stackexchange.com/questions/42803/how-to-implement-a-fourier-convolution-layer-in-keras