Как получить доступ к атрибутам пользовательской рекуррентной нейронной сети в тензорном потоке? - PullRequest
0 голосов
/ 04 мая 2020

Я внедряю сеть rnn-autoencoder в TensorFlow 1.14.0. (используя этот код: здесь )

class MyLSTMCell(tf.nn.rnn_cell.BasicLSTMCell):
    def __init__(self, attributes):
         super(tf.nn.rnn_cell.BasicLSTMCell, self).__init__(_reuse=reuse)
         # initialize attributes
         ...
         self.customAttr = 0

    def call(self, inputs, state):
         ...
         self.customAttr = 1
         ...
         return output, state

    @property
    def get_value(self):
         return self.customAttr

def Model(...):
    ...
    with tf.variable_scope('encoder'):
        enc_cell = MyLSTMCell(num_hidden,...)
        output, state = tf.nn.dynamic_rnn(enc_cell, p_input, dtype=tf.float32)

        value = enc_cell.get_value


output: value = 0

, когда я пытаюсь получить значение этой переменной во время обучения, я получаю инициализированное значение 0. Как я могу получить доступ к реальному значению этот атрибут (в данном примере это 1) во время обучения сети? Кроме того, есть ли способ изменить его значение во время тренировки вне функции?

...