深度学习模型定制与训练的高级技巧
1. 模型损失添加与训练指标更新
在模型构建过程中,我们可以在模型的任意层调用 add_loss() 方法。模型会递归地收集所有层的损失。例如,我们可以通过 add_loss() 方法添加一系列损失。需要注意的是,我们可以通过乘以一个系数(如 0.05,这是一个可调整的超参数)来缩小重建损失,以确保重建损失不会主导主损失。
在训练过程中, call() 方法会更新重建指标,并将其添加到模型中以便显示。实际上,我们可以通过调用 self.add_metric(recon_loss) 来简化这一过程,Keras 会自动跟踪其均值。最后, call() 方法将隐藏层的输出传递给输出层并返回其输出。
在训练过程中,总损失和重建损失都会下降,如下所示:
Epoch 1/5
363/363 [========] - 1s 820us/step - loss: 0.7640 - reconstruction_error: 1.2728
Epoch 2/5
363/363 [========] - 0s 809us/step - loss: 0.4584 - reconstruction_error: 0.6340
2. 使用自动微分计算梯度
在深度学习中,计算梯度是优化模型的关键步骤。对于简单的函数,我们可以通过解析方法计算偏导数。例如,对于函数 f(
超级会员免费看
订阅专栏 解锁全文
2020

被折叠的 条评论
为什么被折叠?



