python - Keras:如何重置优化器状态?

标签 python tensorflow keras

如何在 keras 中重置优化器状态?

查看 Optimizer 类我看不到这样的方法:
https://github.com/keras-team/keras/blob/613aeff37a721450d94906df1a3f3cc51e2299d4/keras/optimizers.py#L60

还有实际上是什么self.updatesself.weights ?

最佳答案

没有一种“简单”的方法来重置“状态”,但您总是可以简单地使用新的优化器重新编译您的模型(模型的权重被保留):

newOptimizer = Adadelta()
model.compile(optimizer=newOptimizer)     

您也可以使用方法 set_weights(weightsListInNumpy) (不推荐),在基类 Optimizer 中,但这会相当麻烦,因为您需要知道所有初始值和形状,有时可能不是简单的零。

现在,属性(property)self.weights没有做太多事情,但是保存和加载优化器的函数会保存和加载这个属性。这是张量列表,不应直接更改。最多使用 K.set_value(...)在列表的每个条目中。您可以看到 weights _serialize_model method 中保存优化器.
self.updates是一些更复杂的东西来理解。它存储将随模型在训练中处理的每个批次更新的变量。但它是一个 象征性 图变量。
self.updates ,正如您在代码中看到的,总是附加一个 K.update(var, value)K.update_add(var, value) .这是告诉图形应该在每次迭代中更新这些值的正确方法。

通常,更新的变量是 iterations , params (模型的权重),moments , accumulators , 等等。

关于python - Keras:如何重置优化器状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56806419/

相关文章:

Python Keras - Windows 和 Linux 之间的兼容性

python - 如何高效快速地从字符串元素数组中找出有效组合用于员工排类?

python - 在 CherryPy 中启动浏览器

python - TensorFlow 使用 tf.while_loop() 陷入无限循环

python - 关于 C++ 和 python 的 tensorflow 的 Inception v3 指南

python - 来自 tf.keras.preprocessing.image.ImageDataGenerator.flow_from_directory 的 tf.data.Dataset?

tensorflow - KERAS:如何使用与权重所需形状相同的张量显式设置 Conv2D 层的权重?

python - 当列表中有更多 URL 时,Import.io 批量提取速度变慢

python - python 中的 Timeit 模块无法正常运行

python - 如何在自定义层中编写初始化程序(random.uniform)?