【发布时间】: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