Конвергенция в логистической регрессии в распределенном тензорном потоке

Я пытаюсь разработать логистическую регрессию в распределенном тензорном потоке и хочу интегрировать проверку сходимости в свой алгоритм, кроме верхней границы итераций. Критерий сходимости, который я собираюсь использовать, таков:

||предыдущаяW - текущаяW|| ‹ Э

где prevW — предыдущие значения весов модели, currW — текущие. E — допуск сходимости.

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

Заранее спасибо за помощь :D


person nikosprov    schedule 03.05.2017    source источник


Ответы (1)


Я бы сделал проверку сходимости в том же устройстве, где находятся переменные. Таким образом, вы избежите копирования слишком большого количества данных по сети. Это можно сделать, поместив его в блок with tf.device(variable.device):.

person Alexandre Passos    schedule 03.05.2017
comment
Благодарю за ваш ответ! :) В моем случае переменные хранятся на сервере параметров. Даже если я помещу соответствующую переменную конвергенции в воркер, в качестве предыдущих весов я буду рассматривать как последние переменные, которые воркер пытается проверить на вычисление сходимости, или те, которые в последний раз хранились в ps, которые могли быть изменены другим воркером, поскольку обучение асинхронно ? - person nikosprov; 04.05.2017
comment
Я думаю, что это вопрос алгоритма, который следует решить экспериментально (т.е. попробовать оба и посмотреть, какой из них более надежный). Тесты сходимости со стохастическим градиентом могут быть сложными, потому что наблюдение градиента, который не приводит к движению, не означает, что вы никогда не увидите градиент, который приводит к движению. - person Alexandre Passos; 04.05.2017