1
resposta

[Projeto] transformar sequências de tamanhos diferentes em um único tensor

Não é possível usar torch.stackporque os tensores possuem tamanhos diferentes. Uma solução é processar cada sequência individualmente ou utilizar preenchimento ( pad_sequence) para padronizar os tamanhos e permitir o processamento em lote.

import torch

Exemplo de sequências (nomes com tamanhos diferentes)

dados_tns = [
torch.randn(3, 5), # nome com 3 letras
torch.randn(5, 5), # nome com 5 letras
torch.randn(4, 5) # nome com 4 letras
]

Tentativa de empilhar (VAI DAR ERRO)

try:
batch = torch.stack(dados_tns)
except Exception as e:
print("Erro:", e)

1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você trouxe um ponto bem importante ao identificar que o torch.stack não funciona com tensores de tamanhos diferentes e já apresentou duas abordagens corretas, como o uso de pad_sequence. Isso mostra um bom entendimento sobre o pré-processamento de dados em redes recorrentes, que é uma etapa importante quando lidamos com sequências de tamanhos variados.

Continue assim! ✨

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!