Я начинаю с тензорным потоком, и я хочу реализовать MLP и обучать его на основе алгоритма обратного распространения, но когда я читал учебники, я обнаружил, что он использует optmizers, например «Stochastic Gradient Descent», и назвал его обратным распространением без реализации фаз алгоритма , Как происходит это распространение?Как использование тензорного потока используется для размножения при обучении модели?
ответ
Обычно вы используете эти оптимизаторы при первом определении функции потерь, а затем вызова оптимизатора .optimize
на нем:
loss = some_loss(predicted_outputs, true_outputs)
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
train_op = optimizer.minimize(loss)
Теперь, выполняя sess.run(train_op)
сделает шаг в направлении градиентов весов, чтобы минимизировать потери.
Я думаю, это может помочь:
В работе [18], два подхода к спине распространяющихся градиентов через вычислительного графа описан. Первое, которое авторы ссылаются на на различие между символами и цифрами, получает набор значений ввода и затем вычисляет численные значения градиентов на этих входных значениях. Это делается путем явного пересечения графика сначала в прямом порядке (прямое распространение) для вычисления стоимости, , а затем в обратном порядке (обратное распространение) для вычисления градиентов с помощью правила цепи. Другим подходом, более важным для TensorFlow, является то, что [18] вызывает производные от символа к символу и [8] термины автоматически градиентное вычисление. В этом случае градиенты не вычисляются путем явной реализации алгоритма обратного распространения . Скорее, к вычислительному графу добавляются специальных узлов, которые вычисляют градиент каждой операции и, следовательно, в конечном итоге правило цепи. К выполняют обратное распространение, эти узлы должны просто выполняться , как и любые другие узлы с помощью механизма оценки графика. Таким образом, этот подход не дает требуемые производные в виде числового значения, , но только как символический дескриптор для вычисления этих значений.
Ссылка: http://arxiv.org/abs/1610.0117
- 1. Совместное использование модели тензорного потока между процессами
- 2. использование монитора тензорного потока
- 3. Низковольтный GPU Использование при работе тензорного потока
- 4. Как восстановить файл контрольной точки при захвате тензорного потока (ckpt)?
- 5. Использование тензорного потока для идентификации легированных кирпичей?
- 6. Сохранение широкого и глубокого тензорного потока модели
- 7. сборник моделей тензорного потока
- 8. Получить весовые коэффициенты от модели тензорного потока
- 9. Сохранение модели тензорного потока после обучения завершено
- 10. Ошибка при создании привязок для тензорного потока
- 11. Настройте input_map при импорте модели тензорного потока из файла metagraph
- 12. правильный способ ввода изображений для тестирования модели тензорного потока
- 13. Выполнение обучения модели тензорного потока из потока данных
- 14. реализация тензорного потока для segnet
- 15. Насколько важна функция для тензорного потока C++?
- 16. Как работает индексирование тензорного потока
- 17. Обучение миниатюре тензорного потока
- 18. Как уменьшить размер тензорного потока для Android?
- 19. Как исправить усеченные tfrecords для тензорного потока?
- 20. Как объединить входы для тензорного потока?
- 21. Как использовать модель тензорного потока, извлеченную из обученной модели keras
- 22. Размер графа тензорного потока
- 23. Как восстановить модель тензорного потока?
- 24. Порядок прогнозов тензорного потока
- 25. Как подсчитать общее количество обучаемых параметров в модели тензорного потока?
- 26. тест скорости для тестирования тензорного потока
- 27. дублировать график тензорного потока
- 28. tf.contrib.layers.embedding_column от тензорного потока
- 29. Ошибка импорта тензорного потока
- 30. Ошибка импорта тензорного потока
нормально, если я говорить о том, как обратном распространении 2 фазы Feedforward модели с данными и backpropgation для регулировки веса ,, то будет означать «tf.train.GradientDescentOptimizer()» является backpropgation pahse корректировать вес, чтобы минимизировать стоимость, это правда? –
В некотором смысле да, так как «передний проход» реализуется тензором «потеря». Но вам нужно иметь в виду, что исполнение является ленивым в TF, и запуск 'sess.run (train_op)' заставит shadoworflow выполнить 'loss' в первую очередь. – sygi
okeey, но что, если я изменю optmizer на другой, как adamoptmizer, это все еще backpropagation или нет, поскольку я знаю, что bp основан на GradientDescent, поэтому я использую его при обучении с помощью bp. –