将张量流与Lambda乘以

时间:2020-03-02 17:28:11

标签: tensorflow tensorflow2.0

我正在尝试做最简单的事情(所以我认为):在TF 2.0中将tf.math.multiply和keras Lambda层包装在一起:

def my_mult(xx, yy):
    return tf.math.multiply(xx, yy)

用于两个输入(带有广播)

>>>_in
<tf.Tensor 'conv2d_3/Identity:0' shape=(None, 32, 32, 256) dtype=float32>
>>>_in_s
<tf.Tensor 'activation_3/Identity:0' shape=(None, 256) dtype=float32>

以下作品:

>>>tf.math.multiply(_in,_in_s)
<tf.Tensor 'Mul:0' shape=(None, 32, 32, 256) dtype=float32>
>>>_in * _in_s
<tf.Tensor 'mul_1:0' shape=(None, 32, 32, 256) dtype=float32>

但下面的所有波纹管似乎都不起作用:

Lambda(my_mult)(_in,_in_s)
...TypeError: my_mult() missing 1 required positional argument: 'yy'

Lambda(my_mult)((_in,_in_s))
...TypeError: my_mult() missing 1 required positional argument: 'yy'

1 个答案:

答案 0 :(得分:0)

目前,我通过将my_mult更改为“解决”它:

def my_mult(ins):
    return tf.math.multiply(ins[0], ins[1])

然后致电:

Lambda(my_mult)((_in,_in_s))

如果有人有更好的解决方案,欢迎与他分享。