Как использовать некоторую динамическую переменную в вычислении пользовательского слоя Keras
Я пытаюсь выполнить некоторые манипуляции в пользовательском слое Keras на основе объекта списка, который заполняется в обратном вызове on_epoch_end, но проблема заключается в том, что когда пользовательскийслой инициализируется, он создает экземпляр этого объекта «список», и все изменения, которые происходят при обратном вызове «список», не распространяются на создание экземпляра списка пользовательских слоев.
class MyLayer(Layer):
def __init__(self, num, **kwargs):
super(MyLayer, self).__init__(**kwargs)
self.num = num
def build(self, input_shape):
super(MyLayer, self).build(input_shape)
def call(self, x):
return dostuff(x,self.num,self
.getlis())
def compute_output_shape(self, input_shape):
return input_shape
def getlis(n):
return stat.lis
class stat: lis = []
Я хочу изменить этот объект lis в функции обратного вызова и иметь эффект в прямом проходе
в настоящее время, яя не вижу эффекта обновленного объекта списка в моих вычислениях пользовательского слоя, я подозреваю, что при инициализации слоя все его переменные инициализируются статически