Различные `grad_fn` для похожих операций поиска в Pytorch (1.0) - PullRequest
2 голосов
/ 24 апреля 2019

Я работаю над моделью внимания, и перед запуском финальной модели я проходил через тензорные фигуры, проходящие через код. У меня есть операция, где мне нужно изменить тензор. Тензор имеет форму torch.Size([[30, 8, 9, 64]]), где 30 - это batch_size, 8 - номер головы внимания (это не относится к моему вопросу) 9 - количество слов в предложении, а 64 является некоторым промежуточным представлением вложения слова. Мне нужно изменить тензор до размера torch.size([30, 9, 512]) перед дальнейшей обработкой. Итак, я искал некоторые ссылки в Интернете, и они сделали следующее x.transpose(1, 2).contiguous().view(30, -1, 512) тогда как я думал, что это должно сработать x.transpose(1, 2).reshape(30, -1, 512).

В первом случае grad_fn - это <ViewBackward>, тогда как в моем случае это <UnsafeViewBackward>. Разве эти две операции не являются одинаковыми? Приведет ли это к ошибке тренировки?

...