Интерпретация выходных весов tf.estimator.LinearClassifier

1

Я новичок в тензорном потоке и компьютерном обучении, и я тренирую tf.estimator.LinearClassifier в классическом наборе данных MNIST.

После тренировочного процесса я читаю выходные веса и смещения с помощью classifier.get_variable_names() Я получаю:

"['global_step', 'linear/linear_model/bias_weights', 'linear/linear_model/bias_weights/part_0/Adagrad', 'linear/linear_model/pixels/weights', 'linear/linear_model/pixels/weights/part_0/Adagrad']"

Мой вопрос: в чем разница между linear/linear_model/bias_weights и linear/linear_model/bias_weights/part_0/Adagrad? Они оба одинакового размера.

Единственное объяснение, которое я могу себе представить, заключается в том, что linear/linear_model/bias_weights и linear/linear_model/bias_weights/part_0/Adagrad представляют соответственно веса в начале и в конце учебного процесса.

Однако я не уверен в этом, и я не могу найти что-либо в сети.

Теги:
tensorflow

1 ответ

0
Лучший ответ

linear/linear_model/bias_weights - это ваши тренированные весы модели.

linear/linear_model/bias_weights/part_0/Adagrad приходит от вас с AdaGrad оптимизатора AdaGrad. Особенностью этого оптимизатора является то, что он сохраняет "память" прошлых градиентов и использует его для масштабирования градиентов на каждом этапе обучения. См. Статью AdaGrad, если вы хотите узнать больше (очень матовое).
Важная часть состоит в том, что linear/linear_model/bias_weights/part_0/Adagrad хранит эту "память". Он возвращается, потому что это технически tf.Variable в вашей программе, однако это не фактическая переменная/вес в вашей модели. Только linear/linear_model/bias_weights. Конечно, то же самое справедливо и для linear/linear_model/pixels/weights.

  • 0
    Большое спасибо за полезный ответ!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню