Пользовательские операции с весами сети во время вычислений - PullRequest
0 голосов
/ 05 июня 2018

Я использую TensorFlow и Python для создания собственной нейронной сети.Мне нужно внести изменения в весах и смещениях, прежде чем каждый входные данные передаются.Архитектура сети является общей (последовательной, контролируемой, с обратным распространением), и единственное отличие состоит в том, что перед каждым проходом мне нужно сделать некоторые вычисления.

Так, например, у меня есть некоторые входы (x), и прежде чем я передамони проходят через сеть и вычисляют сетевые результаты (y), на каждом проходе мне нужно запустить функцию для изменения весов.Мой вопрос заключается в том, как можно было бы сделать это, и после того, как я вычислю новые веса и смещения, чтобы сеть вычисляла все остальное (функции вычисления всей сети, потери и оптимизацию) в дальнейшем?Если это возможно, как я могу достичь веса, а затем создать этот дополнительный пользовательский шаг?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Сначала вы должны собрать все веса, которые должны быть изменены в коллекции , например, таким образом или выбрать переменные по их именам, а затем вы можете внести изменения, а затем назначить измененные значения исходным переменным.,После sess.run вы можете изменить их в реальности.

Например:

t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if 'this_' in var.name]
clip_D = [p.assign(tf.clip_by_value(p, -1, 1)) for p in d_vars]
0 голосов
/ 05 июня 2018

Вы можете использовать tf.assign операцию.Ссылка здесь .Этот блог от metaflow также может быть полезен.

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