Я тренирую модель tf.keras и хотел бы записать градиенты во время обучения.
Точнее, я хочу вычислить норму градиентов для ядра каждого слоя на каждомитерации во время обучения и запишите это в файл CSV или что-то подобное.
Как мне это сделать?
У меня есть частичное решение, но я застрял:
- Напишите пользовательский
tf.keras.optimizer
, который наследуется от существующего оптимизатора.В этом пользовательском оптимизаторе захватывайте градиенты, когда они вычисляются, и делайте все необходимые вычисления (в моем случае: вычисляйте их норму для каждого слоя). - Что теперь?Чтобы на самом деле записать эти градиенты в какой-то файл, мне нужно убедиться, что выходные данные операций, которые я добавил в пользовательский оптимизатор, действительно извлекаются во время обучения (используя
model.fit()
).Как я могу это сделать? - Даже если бы добавленные мной градиентные операции оценивались во время обучения, мне все равно пришлось бы как-то записать их в файл.Как я могу это сделать?
Или, может быть, есть лучший способ?