Keras中ValueError的含义是什么? -'张量转换请求具有dtype float32的张量的dtype complex64'

时间:2019-03-16 07:18:23

标签: keras keras-layer valueerror

我有以下部分代码-

...
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层会出错吗?就像我在Lambda函数中使用变量'x'一样,假定先前的图层输出将在此变量中捕获。这是添加Lambda层的正确方法吗? (我是Keras的初学者,非常感谢您的帮助)

0 个答案:

没有答案