Как реализовать керас-сложную сверточную 2D-функцию - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема с реализацией функции свертки с комплексом Кераса, которая была разработана Джеспером Драмшем и его группой следующим образом: https://github.com/JesperDramsch/keras-complex. Он предложил начальную настройку и как использовать модель, но очень ограниченную инструкцию. Кто-нибудь сталкивался с использованием этой функции свертки для комплексных входных данных от тенора потока Кераса? Пожалуйста, поделитесь примером, который я знаю, как его использовать?

Часть моего кода выглядит следующим образом:

visible = Input(shape=(class_in,feature_num,1))

conv1 = ComplexConv2D(32, kernel_size=(3,3),
activation='relu',padding='same',data_format='channels_last')(visible)

pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)

conv2 = ComplexConv2D(64, kernel_size=(3,3), 
activation='relu',padding='same',data_format='channels_last')(pool1)

pool2 = MaxPooling2D(pool_size=(2,2))(conv2)

flat = Flatten()(pool2)

hidden1 = Dense(128, activation='relu')(flat)

output = Dense(1, activation='sigmoid')(hidden1)

model = Model(inputs=visible, outputs=output)

Краткая инструкция показывает, что мы можем использовать ComplexConv2D так же, как Conv2D, как follow: https://keras-complex.readthedocs.io/api/complexnn.conv.html Однако, я всегда получаю ошибку, так как

Вход 0 несовместим со слоем complex_conv2d_1: ожидаемая ось -1 входной формы будет иметь значение 0, но получила форму ( Ни один, 32, 32, 1)

Пожалуйста, помогите мне с этим.

...