【问题标题】:Tensorflow.Keras Adam Optimizer InstantiationTensorflow.Keras Adam 优化器实例化
【发布时间】:2021-03-21 18:00:11
【问题描述】:

在训练 CNN 时,我发现损失减少得更快 当优化器设置为优化器实例

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), 
       ....... 

那么当优化器设置为String(优化器名称)

`model.compile(optimizer='adam', .......)

由于默认learning_rate=0.001,为什么它们的工作方式不同,它们之间有什么区别?

【问题讨论】:

    标签: tensorflow keras tensorflow2.0 tf.keras


    【解决方案1】:

    技术上不应该有任何差异。如果你按照源文件here 中的adam 字符串参数,你会看到

    all_classes = {
         'adam': adam_v2.Adam,
          ...
    }
    

    这个adam_v2.Adam 已经链接到三个实现,分别位于三个不同的地方,即

    1. Source Codetensorflow/python/tpu/tpu_embedding_v2_utils.py
    - @tf_export("tpu.experimental.embedding.Adam")
    class Adam(_Optimizer):
    
    1. Source Codetensorflow/python/keras/optimizer_v1.py
    class Adam(Optimizer):
    
    1. Source Codetensorflow/python/keras/optimizer_v2/adam.py
    @keras_export('keras.optimizers.Adam')
    class Adam(optimizer_v2.OptimizerV2):
    

    现在,查看tf.keras.optimizers.Adam的源代码,点击在GitHub上查看源代码按钮,你会重定向到here——上面的数字3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-02
      • 2017-10-14
      • 2016-02-20
      • 2018-06-04
      • 2020-01-09
      • 1970-01-01
      • 2022-01-10
      • 2017-05-23
      相关资源
      最近更新 更多