Como funciona uma camada Linear do PyTorch | Álgebra linear para engenheiros de IA
Autoria: The Augmented · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: How a PyTorch Linear Layer Works | Linear Algebra for AI Engineers · Canal: The Augmented · 00:31 · Assistir no YouTube
Tópicos: Modelos de IA, Open source e ecossistemas de software
No PyTorch, cada neurônio de saída é armazenado como uma linha da matriz de pesos. Em uma camada nn.Linear com 3 entradas e 2 saídas, a matriz de pesos tem dimensão 2 × 3, e cada neurônio combina as três entradas com seus pesos, soma os resultados e adiciona um viés. Na passagem forward, o PyTorch transpõe os pesos para realizar a operação. A diferença em relação à notação matemática está em armazenar os vetores nas linhas ou nas colunas; a ideia é a mesma, apenas transposta.
Pontos-chave
Seção intitulada “Pontos-chave”- Cada linha da matriz de pesos do PyTorch corresponde a um neurônio de saída.
- Uma camada com 3 entradas e 2 saídas tem uma matriz de pesos de dimensão 2 × 3.
- Cada neurônio multiplica as entradas por seus pesos, soma os produtos e adiciona um viés.
- Na passagem forward, a operação usa a matriz de pesos transposta.
- A diferença entre as convenções do PyTorch e da matemática está em armazenar os vetores nas linhas ou nas colunas.
- A matriz transposta organiza os vetores de entrada conforme a convenção matemática apresentada.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | Formato dos pesos e neurônios de saída | Uma camada com 3 entradas e 2 saídas tem dois neurônios, armazenados como duas linhas de três pesos. |
| 00:00 | Cálculo da saída e transposição | Cada neurônio combina as entradas com seus pesos e um viés; na passagem forward, os pesos são transpostos. |
| 00:31 | Convenções de vetores em linhas ou colunas | O vídeo compara a convenção matemática, que usa vetores coluna, com a do PyTorch, que usa vetores linha. |
Citações
Seção intitulada “Citações”O PyTorch armazena um neurônio de saída por linha. — 00:00
Dois resultados, dois neurônios, duas linhas de três. — 00:00
É a mesma ideia, apenas transposta. — 00:31
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- PyTorch (ferramenta): Framework usado para implementar camadas de redes neurais, como
nn.Linear. - nn.Linear (conceito): Camada linear do PyTorch que combina entradas com pesos e um viés para produzir saídas.
- weight matrix (conceito): Matriz cujas linhas, na convenção do PyTorch descrita no vídeo, representam os neurônios de saída.
- bias (conceito): Valor somado ao resultado ponderado das entradas de cada neurônio.
- forward pass (conceito): Etapa em que a camada aplica os pesos e o viés às entradas para calcular as saídas.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 O PyTorch armazena um neurônio de saída por linha. Então, quando você passa nn.Linear(3, 2), com 3 entradas e 2 saídas, os pesos vêm com formato 2 por 3. Um neurônio recebe as três entradas, multiplica cada uma pelo seu próprio peso, soma os resultados, adiciona um bias e produz um número. Duas saídas, dois neurônios, duas linhas com três elementos. Na passagem forward, o PyTorch inverte isso: X @ weight.T mais um bias. O weight invertido tem formato 3 por 2, exatamente o W do último vídeo, em que cada linha é o lugar onde uma direção de entrada
00:31 chega. Então, não pergunte qual é a entrada e qual é a saída. Pergunte onde os vetores de chegada são armazenados: nas linhas ou nas colunas? Na matemática, os vetores são colunas, e W * V usa as colunas. No PyTorch, os vetores são linhas, e X @ W usa as linhas. É a mesma ideia, apenas transposta. nn.Linear armazena os neurônios como linhas e transpõe durante a passagem.
Transcrição original
[00:00] PyTorch stores one output neuron per row. So, when you give an nn.linear 3 in and 2 out, the weight will come back 2 by 3. A neuron takes all three inputs, multiplies each by its own weight, sums them, adds a bias, and outputs one number. Two outputs, two neurons, two rows of three. In the forward pass, PyTorch flips it. X at weight.t plus a bias. The flipped weight is 3 by 2, exactly the W from the last video, where each row is where an input direction
[00:31] lands. So, don’t ask which is in and which is out. Ask where are the landing vectors stored? In the rows or the columns? In math, vectors are columns, and W * V uses the columns. In PyTorch, vectors are rows, and X at W uses the rows. It’s the same idea, just transposed. nn.linear stores neurons as rows and transposes on the way through.