是否可以在损失函数中使用内部层的输出?

人工智能 神经网络 张量流 喀拉斯 目标函数 生成对抗网络
2021-11-01 06:17:20

对于以下形式的网络:

Input(10)
Dense(200)
Dense(100+10)
Dense(20)
Output()

这些+10输出是我想要添加到标准20输出中的,用于我的损失函数。

这可能吗 - 理论上甚至是一些预先存在的库?

1个回答

是的,您可以这样做,这是一种标准做法。一个著名的例子是“Inception”网络架构为了防止内部子网“消失”,提取了来自内部层的几个输出并将其传递到 FC->Softmax。然后在损失函数中对所有输出进行平均。

从实际的角度来看,您将无法通过基本的Sequential模型构建来实现这些东西。不过,大多数库都允许您超越它,而且这种区别通常有据可查。例如,在功能 API 的 tensorflow 指南中,它在简介中指出:

功能 API 是一种创建比tf.keras.SequentialAPI 更灵活的模型的方法。功能 API 可以处理具有非线性拓扑、共享层甚至多个输入或输出的模型。

希望这会帮助你开始。