#tensorflow #linear-regression #gradient-descent
#tensorflow #линейная регрессия #градиентный спуск
Вопрос:
В настоящее время я пытаюсь построить линейную регрессию, которая использует коэффициент рождаемости (x) в качестве предиктора для прогнозирования ожидаемой продолжительности жизни (y). y = w * x b Набор данных можно найти здесь: Dataset
Вот онлайн-ссылка на мой код: Code
Идея проста: я запускаю 300 эпох, внутри каждой эпохи я отправляю одну за другой парную выборку (значение x, значение y) в оптимизатор gradient decent, чтобы минимизировать функцию потерь.
Однако полученный мной результат совершенно неверен. Изображение моего результата: мой результат
Вместо отрицательного наклона это всегда приводит к положительному наклону, в то время как пример ответа, приведенный здесь, приводит к лучшей модели с отрицательным наклоном.
Что было не так в моем кодировании?
Ответ №1:
Проблема заключается в расположении линии
sess.run(tf.global_variables_initializer())
Поскольку он находится внутри цикла while, w
и b
повторно инициализируются на каждой итерации до 0. Следовательно, то, что вы видите, является результатом одной итерации цикла обучения while (последней). Вы должны переместить строку перед циклом while.
Комментарии:
1. Спасибо, я решил это сегодня. О боже. было бы сложно без вашей помощи