Замораживание переменных во время тренировки вешает тензор потока - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь заморозить определенные переменные на основе флага после определенных эпох. Я просмотрел несколько похожих вопросов и ответов и написал следующий фрагмент:

self.optimizer = tf.cond(self.flag < 0.5, lambda: self.opt_1.minimize(self.loss),  lambda: self.opt_1.minimize(self.loss, var_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,'ScopeOfVariable')))

self.flag - это заполнитель. Для первой эпохи я задаю значение этого флага как 0, а затем для второй эпохи я устанавливаю его равным 1.

Для первой эпохи код запускается и дает мне значение потери. Но для второй эпохи код даже не закончился за часы, хотя первая эпоха закончилась за секунды. Я проверил память GPU и вычислил, используя nvidia-smi, и он показал, что моя память GPU и вычисления используются.

Я что-то здесь упускаю?

Вопросы, которые я проверял перед публикацией:

Как заморозить определенные узлы в переменной тензорного потока во время обучения?

Как заморозить определенные узлы в переменной тензорного потока во время обучения?

https://www.quora.com/Is-it-possible-to-only-train-the-final-layer-of-a-Neural-Net-in-TensorFlow-that-was-already-trained

...