“ tensorflow.math.multiply”和“ tensorflow.keras.layers.multiply”之间有什么区别?

问题描述 投票:0回答:1

tensorflow.math.multiplytensorflow.keras.layers.multiply有什么区别?

类似地,tensorflow.math.addtensorflow.keras.layers.add有什么区别?

我有这个问题的原因是,当我构建自己的自定义损失函数和指标product = multiply([y_true_f, y_pred_f])时,如果使用from tensorflow.keras.layers import multiply,则会发生错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError:您必须用dtype float和占位符张量'main_target'的值形状[?,?,?]

但是如果我使用from tensorflow.math import multiply,它将正常工作。

我想知道为什么。谢谢。(我使用tensorflow 1.15,ubuntu18)

python tensorflow keras layer loss
1个回答
0
投票

tensorflow.keras.layers中的所有类都是Keras层,这意味着它们将由其他层(在功能性API中)产生的Keras张量作为输入,或者可以安排它们使用顺序API来创建顺序模型。

tensorflow.math中的其他张量流函数旨在在张量流(不是keras)张量中运行。对于自定义损失,输入和输出为张量流张量,因此应使用张量流函数而不是Keras层。

[Keras层操作在您要执行作为神经网络体系结构一部分的操作时使用,例如add层用于在ResNet体系结构中实现残留连接。

© www.soinside.com 2019 - 2024. All rights reserved.