【问题标题】:Performing precomputation when keras variables change当 keras 变量发生变化时执行预计算
【发布时间】:2021-03-17 00:37:19
【问题描述】:

在 keras/tensorflow 中,我有一个自定义层,其定义如下所示:

class SlowLayer(keras.layer.Layer):
    def __init__(self):
        super(SlowLayer, self).__init__()
        self.weights = self.add_weight(shape=(100,100))

    def call(self, arg):
        permanent = super_slow_computation(self.weights)
        return arg*permanent + tf.reduce_sum(self.weights)

正如所写,这将为每批执行一次 super_slow_computation。但这不是必需的:我应该只有在权重更新时才能运行它,然后缓存结果。

keras 是否为此类事情提供了便利:仅权重函数,不依赖于输入?有什么干净的方法来解决这个问题?

【问题讨论】:

  • 权重每批次更新一次,所以你可以使用相同的频率,应该没有问题

标签: python tensorflow keras keras-layer


【解决方案1】:

默认情况下,权重在每批结束时更新。 您可以增加批量大小以增加每次权重更新的示例数比率。

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 2017-11-21
    • 2022-07-29
    • 2021-09-28
    • 2021-12-18
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多