Что означает значение ValueError в Keras?- 'Требуется преобразование Tensor dtype complex64 для Tensor с dtype float32' - PullRequest
0 голосов
/ 16 марта 2019

У меня есть следующая часть кода -

...
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? (Я новичок в Керасе, поэтому буду очень признателен за любую помощь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...