#pytorch
#pytorch
Вопрос:
Поскольку глубокая нейронная сеть и RNN предполагают многократное умножение, я полагаю, переполнение или недостаточный поток будут частыми.
Мне просто любопытно, обнаруживает ли библиотека глубокого обучения операцию переполнения или переполнения и показывает ли какое-либо предупреждающее сообщение или просто игнорирует его.
Комментарии:
1. вы имеете в виду исчезающие / взрывающиеся градиенты?
2. да, точно. о, после того, как я это услышал, я кое-что понял.
Ответ №1:
Вы можете отслеживать проблемы, связанные с исчезающими / расширяющимися градиентами, отслеживая, как меняется ваш градиент с течением времени. Хотя этот подход в большей степени ориентирован на обнаружение взрывающихся градиентов, чем исчезающих градиентов.
Одним из способов было бы посмотреть на значение наибольшего градиента:
max(p.grad.detach().abs().max() for p in model.parameters() if p.grad is not None)
Или, взглянув на норму всех сложенных параметров (рассматривая его как единый тензор).
Это два подхода, используемые torch.nn.utils.clip_grad_norm_
для определения того, нужно ли обрезать градиент: вот фактические строки в исходном коде.