Как эффективно объединить выходы двух слоев в Pytorch?

#python #memory-management #concatenation

Вопрос:

В настоящее время я внедряю сеть, основанную на внимании, где последним шагом является объединение n-уровней внимания в один тензор. Учитывая обсуждение копирования памяти для Concat, просто интересно, есть ли возможность вывода двух слоев concat без копирования памяти? (По крайней мере, в смысле управления памятью, если вычислительный график предварительно построен, такая функция, по крайней мере, может быть реализована путем размещения всех выходных результатов в одном блоке памяти)

Некоторые возможные мысли

  • Если копирование памяти для cat неизбежно, вместо использования исходного измерения (пакетное, тусклое) все слои реализуются так, как если num_stack бы они были добавлены (пакетное, n_stacks, тусклое), а затем последний шаг просто преобразуется в ожидаемое измерение объединения.