Как обновить параметр в каждой эпохе в промежуточном слое между тренировками? (тензор потока стремительного исполнения) - PullRequest
1 голос
/ 27 марта 2020

У меня есть последовательная модель keras, и там у меня есть пользовательский слой, похожий на следующий пример с именем CounterLayer. Я использую тензор потока 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

, когда я запускаю это, например, эпоха = 5 или что-то, значение self.count не обновляется при каждом запуске. Это всегда остается прежним. Я получил этот пример от { ссылка } здесь. Мне нужно что-то похожее на это, но мне было интересно, работает ли эта работа в стремительном исполнении tenorflow или что мне нужно сделать, чтобы получить ожидаемый результат.

Я пытался реализовать это довольно давно, но не мог понять это. Может кто-нибудь помочь мне, пожалуйста. Спасибо ...

...