【问题标题】:How can I write some layer's logic based on the current epoch or step of epoch?如何根据当前纪元或纪元步骤编写某些层的逻辑?
【发布时间】:2020-08-03 08:40:57
【问题描述】:

Keras 的文档描述了here 如何通过继承Layer 类来编写自定义层。现在,我有另一个自定义层CustomLayer,我想从中继承。让我们称我的新自定义层为CustomLayer2。我猜想继承的过程,即使我不会从Layer 而是从CustomLayer 继承,将与链接文档中描述的相同,但我还将继承CustomLayer 的自定义功能。

无论如何,在这个自定义层CustomLayer2 中,我想实现一些基于当前纪元或纪元步骤的逻辑。

我该怎么做?如何从图层的call 和/或build 方法动态获取当前纪元或纪元步长?

也许这可以通过回调来完成。例如,我可以有一个回调来访问模型的一个实例,然后更改模型内部的某些内容。我不太喜欢这个解决方案,但如果它有效,那很好。但是我们可以从模型的实例中改变模型层的逻辑吗?

过去曾有人问过两个类似的问题

【问题讨论】:

    标签: tensorflow inheritance keras tensorflow2.0


    【解决方案1】:

    自定义回调将是这里的方式。一般只调用一次层逻辑来构建计算功能逻辑;这个计算函数稍后将在训练期间使用。同样,这通常发生在优化器出现之前,因此与 epochs/steps 无关。

    因此,无法从自定义层中获取训练步骤。

    【讨论】:

    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    相关资源
    最近更新 更多