Nesta atividade, implementei uma arquitetura neural para um problema de classificação de flores a partir de atributos estruturais, utilizando duas abordagens vistas em aula: nn.Sequential e a criação de uma classe personalizada herdando de nn.Module.
Como o problema envolve amostras com atributos estruturais de flores, considerei uma entrada com 4 atributos. A arquitetura proposta foi composta por uma camada linear escondida com 6 neurônios, uma função de ativação ReLU e uma camada linear de saída com 3 neurônios, representando as possíveis classes do problema.
Na implementação com nn.Sequential, organizei as camadas de forma direta e sequencial, facilitando a visualização do fluxo dos dados pela rede. Já na implementação com nn.Module, defini a arquitetura dentro de uma classe, separando a construção das camadas no método __init__ e o fluxo de execução no método forward.
Durante a execução no Google Colab, encontrei um erro ao utilizar o torchsummary, indicando que alguns tensores estavam em dispositivos diferentes, parte na GPU e parte na CPU. Para corrigir isso, ajustei a chamada do resumo do modelo para executar explicitamente na CPU:
summary(net, input_size=(1, input_size), device='cpu')
Após esse ajuste, o notebook executou corretamente e foi possível visualizar a estrutura da rede implementada. Essa atividade ajudou a reforçar a importância de definir corretamente as dimensões de entrada, camada escondida e saída em uma rede neural, além de mostrar na prática a diferença entre criar modelos com nn.Sequential e com nn.Module.
Segue o link: https://github.com/Moquiuti/Deep-Learning-com-PyTorch/blob/main/Arquitetura.ipynb