Я пытаюсь применить функцию к тензору 3d-факела, в то время как функция применяется к 2-мерному тензору, который читается через ось 1 тензора 3d-факела.
Например, у меня есть тензор факела:форма (51, 128, 20100)
(переменная с именем autoencode_logprob
) и функция (rawid2sentence) выполняются на входе формы (51, 20100)
.
. Сейчас я написал код для запуска с использованием цикла naive for,цикл по одному с диапазоном (128).
Однако это слишком медленно.Ниже приведена важная часть кода.
autoencode_logprobs - это трехмерный тензор, и мне нужно применить функцию rawids2sentence
вдоль ее второй оси.Любая помощь, чтобы векторизовать это?
for i in range(128):
output_sent = self.dictionary.rawids2sentence(
autoencode_logprobs[:, i].max(1)[
1].data.cpu().numpy(),
oov_dicts[i],
)
output_sent_encoding = ifst_model.encode([output_sent])