tf.abs()函数从复数输入张量生成复数输出张量

时间:2019-03-15 11:32:36

标签: python tensorflow

我有以下部分代码-

...    
print(model.layers[1].output)
tf.math.abs(model.layers[1].output)
print('layer 2 output')
print(model.layers[1].output)
...

在运行时会产生以下输出-

Tensor("generic_act_func_1/Complex:0", shape=(?, 28, 28, 9), dtype=complex64)
layer 2 output
Tensor("generic_act_func_1/Complex:0", shape=(?, 28, 28, 9), dtype=complex64)

我无法弄清楚为什么tf.abs()没有从复数输入张量生成浮点输出张量。 在此先感谢您对理解/纠正的任何帮助。

1 个答案:

答案 0 :(得分:0)

为了社区的利益,在答案部分中说明解决方案。

如@Ihlmgr所述,“ Lambda层将任意表达式包装在层对象上”。

例如,在某个点上您想计算变量的平方,但您不仅可以将表达式放入模型中,因为它仅接受图层,因此您需要Lambda函数以使表达式成为Keras中的有效图层。

model.add(Lambda(lambda x: x ** 2))