Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

[Projeto] Sessão 4 - Faça como eu Fiz

Nesta atividade, adaptei o modelo recorrente que anteriormente utilizava uma camada GRU para passar a utilizar uma camada LSTM. A alteração principal foi feita na definição da camada recorrente dentro do método __init__(), substituindo nn.GRU por nn.LSTM, mantendo os mesmos parâmetros de entrada, tamanho da memória e configuração batch_first=True.

Também ajustei o método forward(), pois a LSTM trabalha com dois estados internos: o hidden, que representa a memória oculta, e o cell_state, que representa o estado da célula. Diferente da GRU, que utiliza apenas o estado oculto, a LSTM precisa receber e retornar esses dois elementos durante o processamento da sequência.

Para isso, inicializei tanto o hidden quanto o cell_state com tensores de zeros, respeitando o formato esperado pela camada: quantidade de camadas, tamanho do batch e tamanho da memória. Em seguida, passei esses dois estados para a LSTM junto com a sequência de entrada ajustada com unsqueeze(0), garantindo que o dado estivesse no formato adequado para o processamento em lote.

Após a execução da camada recorrente, utilizei a última saída da sequência, saida[:, -1], como representação final do nome processado. Essa saída foi então encaminhada para a camada linear responsável pela classificação entre as 18 classes disponíveis, seguida da função softmax, mantendo a lógica original do modelo.

Com essa modificação, o modelo passa a explorar a estrutura da LSTM, que é mais adequada para lidar com dependências em sequências, pois consegue controlar melhor quais informações devem ser mantidas, atualizadas ou descartadas ao longo do processamento dos caracteres.

Segue o link com o código: https://github.com/Moquiuti/Redes-Neurais-Recorrentes-Deep-Learning-com-PyTorch/blob/main/Classifica%C3%A7%C3%A3o_de_Sequ%C3%AAncias_LSTM.ipynb