# Engenharia de Deep Learning

Giorgio Learn · Roteiro de exercícios

## Pré-requisitos
Python, vetores, derivadas simples e fundamentos de aprendizado supervisionado.

## 1. Autograd, grafos dinâmicos e backpropagation auditável

Com passo 0,1, qual é o novo w?

Minha resposta:

Prática: Implemente mentalmente um training loop mínimo e liste em ordem zero_grad, forward, loss, backward e step.

Evidências e limitações:

## 2. Otimização, schedules e estabilidade de treinamento

Batch normalization torna os dois procedimentos necessariamente idênticos?

Minha resposta:

Prática: Projete um recipe inicial para um modelo instável nas primeiras 500 steps e justifique warmup, clipping e weight decay.

Evidências e limitações:

## 3. Representações, convolução, sequência e attention

Qual o campo receptivo de três dessas camadas?

Minha resposta:

Prática: Compare CNN, LSTM e Transformer para três tipos de dados e explique a restrição dominante em cada escolha.

Evidências e limitações:

## 4. Mixed precision, memória, kernels e throughput

Só os pesos em 16 bits ocupam quanto?

Minha resposta:

Prática: Faça um plano para dobrar batch efetivo sem dobrar VRAM e diga quais métricas de throughput você mediria.

Evidências e limitações:

## 5. Debugging sistemático, ablations e reproducibilidade

A perda de treino cai, mas a de validação sobe. O teste de um lote basta?

Minha resposta:

Prática: Crie uma checklist de dez minutos para investigar uma loss que não cai desde a primeira step.

Evidências e limitações:

## Projeto: Treinamento pequeno e reproduzível

- [ ] Faça uma rede pequena memorizar um lote de dados sintéticos antes do treino completo.
- [ ] Compare duas taxas de aprendizado mantendo dados e orçamento fixos.
- [ ] Registre curva de perda, qualidade reservada, tempo por passo e um erro diagnosticado.

## Referência
https://docs.pytorch.org/tutorials/beginner/basics/autogradqs_tutorial.html
