【发布时间】:2019-10-04 19:11:30
【问题描述】:
在 Tensorflow 2.0 中,我正在尝试构建一个模型,将我的对象分为两类:正面和负面。
我想使用tf.keras.metrics.FalsePositives 和tf.keras.metrics.FalseNegatives 指标来查看模型在每个时期的改进情况。这两个指标都有断言规定:[predictions must be >= 0] 和 [predictions must be <= 1]。
问题在于未经训练的模型可以生成任意数字作为预测。但即使是经过训练的模型有时也会产生略高于 1 或略低于 0 的输出。
有什么方法可以禁用这些断言?
或者,是否有任何合适的激活函数可以强制模型输出进入[0, 1] 范围而不会导致学习率出现任何问题?
【问题讨论】:
-
如果输出必须在
[0, 1]范围内,则sigmoid激活函数是一个合适的替代方案。 -
就我而言,技术规范说我必须使用
tanh,所以我仅限于使用tanh。 -
@stephen_mugisha,但总的来说这是个好主意。我可以添加
sigmoid层只是为了验证,然后在生产中删除它。您能否将其添加为答案,以便我接受。 -
当然..有时您也可以选择在隐藏层中使用其他激活函数,但对输出层使用 sigmoid,以便输出范围在 0 和 1 之间。
标签: tensorflow2.0 tf.keras keras-metrics