TensorFlow Лямбда-слой fft2d - PullRequest
0 голосов
/ 01 марта 2020

Я строю CNN, где вход представляет собой изображение в градациях серого (256x256x1), и я хочу добавить слой преобразования Фурье, который должен выводить форму (256x256x2), с двумя каналами для реального и мнимого. Я нашел tf.signal.fft2d на https://www.tensorflow.org/api_docs/python/tf/signal/fft2d. К сожалению, трудно найти какой-либо пример или объяснение того, как использовать его конкретно ... Я пытался:

X_input = Input(input_shape,)

X_input_fft=Lambda(lambda v: tf.cast(tf.compat.v1.spectral.rfft2d(v),dtype=tf.float32))(X_input)

l1Conv1 = Conv2D(filters = 16, kernel_size = (5,5), strides = 1, padding ='same',
                 data_format='channels_last',
                 kernel_initializer= initializers.he_normal(seed=None), 
                 bias_initializer='zeros')(X_input_fft)

, но, честно говоря, я не знаю, что я делаю ...

Кроме того, для последнего слоя я хотел бы сделать обратное FFT, что-то вроде:

myLastLayer= Lambda(lambda v: tf.cast(tf.compat.v1.spectral.irfft2d(tf.cast(v, dtype=tf.complex64)),dtype=tf.float32))(myBeforeLastLayer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...