Path: blob/master/site/zh-cn/addons/tutorials/optimizers_conditionalgradient.ipynb
25118 views
Kernel: Python 3
Copyright 2020 The TensorFlow Authors.
In [ ]:
TensorFlow Addons 优化器:ConditionalGradient
概述
此笔记本将演示如何使用 Addons 软件包中的条件梯度优化器。
ConditionalGradient
由于潜在的正则化效果,约束神经网络的参数已被证明对训练有益。通常,参数通过软惩罚(从不保证约束满足)或通过投影运算(计算资源消耗大)进行约束。另一方面,条件梯度 (CG) 优化器可严格执行约束,而无需消耗资源的投影步骤。它通过最大程度减小约束集中目标的线性逼近来工作。在此笔记本中,我们通过 MNIST 数据集上的 CG 优化器演示弗罗宾尼斯范数约束的应用。CG 现在可以作为 Tensorflow API 提供。有关优化器的更多详细信息,请参阅 https://arxiv.org/pdf/1803.06453.pdf
设置
In [ ]:
In [ ]:
In [ ]:
构建模型
In [ ]:
准备数据
In [ ]:
定义自定义回调函数
In [ ]:
In [ ]:
训练和评估:使用 CG 作为优化器
只需用新的 TFA 优化器替换典型的 Keras 优化器
In [ ]:
训练和评估:使用 SGD 作为优化器
In [ ]:
In [ ]:
In [ ]:
权重的弗罗宾尼斯范数:CG 与 SGD
CG 优化器的当前实现基于弗罗宾尼斯范数,并将弗罗宾尼斯范数视为目标函数中的正则化器。因此,我们将 CG 的正则化效果与尚未采用弗罗宾尼斯范数正则化器的 SGD 优化器进行了比较。
In [ ]:
训练和验证准确率:CG 与 SGD
In [ ]: