优化器、损失函数和权重:它们何时重要?

数据挖掘 深度学习 喀拉斯 张量流
2022-02-22 01:37:20

我正在使用 sigmoid 焦点损失(来自 TF 插件)在 TF/Keras 中训练 FCN,并在检查点中保存权重。我需要在另一台目前没有安装 TF 插件的计算机上进行推理。由于自定义层,我似乎无法保存整个序列化模型,需要创建模型架构并加载权重。

我是否认为一旦你有了模型的权重,你所需要的只是通过 load_weights 重新创建该模型的架构?换句话说,一旦训练,损失函数和优化器就不再扮演任何有意义的角色?所以我可以构建我的架构,并添加另一个优化器和更传统的损失(例如分类 x 熵),一旦加载了权重,推理将给出与我有 sigmoid 焦点损失相同的结果?

1个回答

是的。优化器和损失不是服务推理的一部分。

一旦你完成训练,tensorflow 将保存整个图(即架构 + 权重)。

然后,您只需要加载图形(及其权重)并提供用于服务的输入,即特征向量。

加载图后,它只是一个函数 f(x),其中 x 是特征向量,f 是图的函数。由于优化过程已经结束,因此此阶段的损失没有任何用处。

有几种方法可以为 tensorflow 图提供特性。一种常见的选择是使用 GRPC,您可以在其中为模型提供按 google protobuf 结构组织的特征。

您不能更改推理部分的损失或优化器,因为它们仅与训练和优化相关。