1 / 24 · Conceito
Inferência e treinamento
Se apenas os canais de saída aumentarem de três para seis, como mudarão a quantidade de MACs e a quantidade de vieses armazenados?
As aulas podem ser lidas gratuitamente. Inscreva-se para salvar o progresso.
Defina o cálculo antes do caminho de dados
A inferência aplica pesos fixos, escolhidos anteriormente, a uma entrada em uma passagem direta. O treinamento também calcula uma função de perda, propaga gradientes e atualiza os pesos. Portanto, um circuito que executa convolução direta demonstra uma operação de inferência; por si só, ele não demonstra treinamento. Este curso constrói um pequeno caminho de inferência com inteiros. Hardware de gradientes, otimizadores, acurácia de classificação e importação automática de modelos estão fora dos exercícios.
Escreva um contrato para lote N, canais de entrada C, dimensões espaciais H e W, canais de saída M e kernel R por S. Usamos a ordenação NCHW. Um elemento convencional de saída acumula C×R×S produtos. Para uma saída de dimensão N×M×Ho×Wo, conte N×M×Ho×Wo×C×R×S MACs. Aqui, um MAC significa uma multiplicação com acumulação. Um relatório de operações de ponto flutuante pode contar a multiplicação e a soma separadamente, portanto declare a regra de contagem antes de comparar relatórios.
Exemplo resolvido
Considere N=1, C=2, H=W=5, M=3 e um kernel 3×3, com passo um e sem preenchimento. A saída espacial é 3×3. Há 27 elementos de saída, cada um acumulando 18 produtos, totalizando 486 MACs. Um vetor de viés contém três números armazenados, um por canal de saída, mas o viés é somado em 27 posições da saída. Informe essas somas separadamente em vez de alterar silenciosamente a definição de MAC.
A ordenação faz parte da correção. Uma leitura da entrada com canais primeiro combinada com uma interpretação dos pesos com posições espaciais primeiro associa os operandos errados, mesmo quando todos os valores são legais. Identifique as saídas de referência com coordenadas tanto de canal quanto espaciais. Comece com um lote, especifique cada arquivo de tensor e estenda a dimensão de lote apenas depois que o contrato básico estiver estável.
Registre as dimensões aceitas, os passos, o preenchimento e as faixas numéricas. Rejeite solicitações não suportadas explicitamente. Um arranjo flexível de software não prova que uma implementação RTL suporte todos os tamanhos. Da mesma forma, a saída de referência não mede frequência, potência nem acurácia do modelo. Exercícios posteriores distinguem valores exatos de uma estimativa de ciclos com premissas declaradas. Para as etapas de passagem direta, retropropagação e atualização do treinamento, consulte o tutorial oficial do PyTorch.
Experimente
Se apenas os canais de saída aumentarem de três para seis, como mudarão a quantidade de MACs e a quantidade de vieses armazenados?
Ler a explicação
Há 54 saídas e 54×18=972 MACs. Armazene seis vieses. O tamanho da entrada permanece igual; o armazenamento de pesos dobra.