我有一个顺序 keras 模型,并且我有一个类似于以下示例的自定义层,名为“CounterLayer”。我正在使用 tensorflow 2.0(渴望执行)
class CounterLayer(tf.keras.layers.Layer):
def __init__(self, stateful=False,**kwargs):
self.stateful = stateful
super(CounterLayer, self).__init__(**kwargs)
def build(self, input_shape):
self.count = tf.keras.backend.variable(0, name="count")
super(CounterLayer, self).build(input_shape)
def call(self, input):
updates = []
updates.append((self.count, self.count+1))
self.add_update(updates)
tf.print('-------------')
tf.print(self.count)
return input
当我运行这个例如 epoch=5 或其他东西时,self.count
每次运行的值都不会更新。它始终保持不变。我从这里的https://stackoverflow.com/a/41710515/10645817得到了这个例子。我需要一些几乎与此类似的东西,但我想知道这在热切执行 tensorflow 时是否有效,或者我必须做什么才能获得预期的输出。
我一直在尝试实现这一点,但无法弄清楚。有人可以帮我吗。谢谢...