Использовать веса входного «слоя» в пользовательском слое - PullRequest
0 голосов
/ 04 марта 2020

я пытаюсь создать свой собственный слой, который принимает входные данные слоя и вычисляет что-то на основе весов этого входного слоя. Проблема в том, что входные данные, которые я получаю, являются тензорами, а тензоры не сохраняют веса предыдущей операции.

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)

Есть ли способ использовать веса предыдущего слоя в моем пользовательском файле, созданном на? (Этот слой будет активен только в состоянии логического вывода сети) Заранее спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...