я пытаюсь создать свой собственный слой, который принимает входные данные слоя и вычисляет что-то на основе весов этого входного слоя. Проблема в том, что входные данные, которые я получаю, являются тензорами, а тензоры не сохраняют веса предыдущей операции.
class VarWeightPropagation(Layer):
def __init__(self,
input_layer_name='Conv2D',
**kwargs):
'''
Arguments:
'''
self.input_name = input_layer_name
super(VarWeightPropagation, self).__init__(**kwargs)
def build(self, input_shape):
#self.input_spec = [InputSpec(shape=input_shape[0])]
super(VarWeightPropagation, self).build(input_shape)
def call(self, x, mask=None):
error = x[0]
x = x[1]
if self.input_name == 'Dense':
# do some calculation based on the weight of the previous layer
else:
weights = x.get_weights()[0] # this is the main problem as tensors dont have get_weight()
# also do some calculations based on that weights
return (x,error)
def compute_output_shape(self, input_shape):
return (input_shape[0], self.output_dim)
Есть ли способ использовать веса предыдущего слоя в моем пользовательском файле, созданном на? (Этот слой будет активен только в состоянии логического вывода сети) Заранее спасибо !!