Различия в реализации между SGD Tensorflow и PyTorch SGD

#pytorch #tensorflow2.0

#pytorch #tensorflow2.0

Вопрос:

Некоторые проблемы, с которыми я сталкиваюсь при обучении с идентичным кодом, перенесенным с Pytorch на TF2.

  • Model.fit сходится совершенно иначе, чем градиентная лента. (И более похож на Pytorch)
  • tf.keras.оптимизаторы.SGD сходится совсем не так, как pytorch SGD. (например, LR 0,1 для tf нестабилен при обучении, в то время как тот же начальный LR для Pytorch используется во многих реализациях SOTA)

Я не мог придумать игрушечный пример, чтобы продемонстрировать проблему, не требуя много эпох для обучения, и его можно продемонстрировать в нескольких строках кода. Есть предложения?

Комментарии:

1. Верно ли это для одних и тех же моделей, точно таких же весов, точно таких же начальных значений и точно таких же данных в том же порядке? Учитывая это (и никакой другой регуляризации), результаты должны быть идентичными (или почти одинаковыми).

2. На самом деле я думаю, что то, что я наблюдаю, может быть прямой причиной: github.com/pytorch/pytorch/issues/44917