У меня есть следующая часть кода -
...
model.add(Generic_act_func())
print('layer 1 output')
print(model.layers[1].output) #Here layers[1] is Generic_act_func() layer specified above
model.add(Lambda(lambda x: tf.spectral.irfft2d(x)))
...
Который при запуске выдает следующие выходные данные и ошибку соответственно -
Выход -
layer 1 output
Tensor("generic_act_func_1/Complex:0", shape=(?, 28, 28, 9), dtype=complex64)
Ошибка -
ValueError: Tensor conversion requested dtype complex64 for Tensor with dtype float32: 'Tensor("lambda_1/Placeholder:0", shape=(?, 28, 28, 9), dtype=float32)'
в строке
model.add(Lambda(lambda x: tf.spectral.irfft2d(x)))
tf.spectral.irfft2d () требует ввода complex64, который уже генерирует предыдущий слой, т.е. слой Generic_act_func () (как напечатано выводом слоя 1), поэтому я не могу понять, почему возникла эта ошибка.
Заранее спасибо за любую помощь в устранении ошибки.
Редактировать -
Может ли быть ошибка при передаче выходных данных предыдущего уровня в слой Lambda? Как я использовал переменную 'x' в функции Lambda, предполагая, что выходные данные предыдущего слоя будут записаны в этой переменной. Это правильный способ добавления слоя Lambda? (Я новичок в Керасе, поэтому буду очень признателен за любую помощь)