Sigmora
Fluxos de trabalho

Rede neural do zero em Python, passo a passo

03
Depurar treinamento

Depure um script de treinamento que falha

Seu arquivo Python deve treinar uma pequena rede, mas ele para com um erro ou imprime números estranhos. O Sigmora abre o arquivo, encontra as linhas relevantes, executa seu comando de treinamento com Shell e mostra a saída real em um card, para que você veja o que aconteceu em vez de chutar. Comece com um arquivo. O agente não treina nada por conta própria, porque é o seu código que faz isso, e pode levar tanto tempo quanto levar. O ciclo é curto: ler, executar, comparar, alterar. Você escolhe a pasta, escolhe o modo e decide qual alteração aceitar. Use apenas código, dados e computadores que você possui ou tem permissão para usar, e mantenha cada experimento pequeno o suficiente para ser repetido.

01

Abra a pasta

Escolha a pasta de trabalho que contém seu script de treinamento, seu arquivo de configuração e seus logs. As ferramentas de arquivo funcionam nessa pasta, e list_dir mostra o que há dentro dela. Mantenha os dados que você tem permissão para usar no mesmo local, para que todos os caminhos no seu script permaneçam curtos. As ferramentas de arquivo usam essa pasta.

02

Peça uma leitura

Peça ao Sigmora para ler o script de treinamento e explicar as camadas, a função de perda e o loop. read_file e grep citam as linhas que ele se refere, para que você possa verificar a explicação contra o seu próprio código. O modo Plan only não altera nada. Pergunte novamente se um bloco ainda não estiver claro.

03

Execute o comando

Nomeie seu comando de treinamento e escolha um modo. Shell executa no Windows, no WSL ou via SSH em seu próprio servidor, e o card mostra a saída real e o código de saída. O Python precisa estar instalado onde o comando é executado. O treinamento pode demorar muito no seu hardware.

04

Verifique o resultado

Expanda o card e leia o erro impresso ou os valores de perda. Um código de saída zero significa apenas que o script terminou sem erro, então avalie os números por conta própria, em dados de validação que o modelo não viu, e anote o que você viu. Em seguida, decida sobre a próxima alteração pequena.

Exemplo: um neurônio aprende a porta AND em Python puro

perceptron_and.py
# AND gate: one neuron (perceptron) learns the table
rows = [((0,0),0), ((0,1),0), ((1,0),0), ((1,1),1)]
w = [0.0, 0.0]
b = 0.0
rate = 0.1
for epoch in range(20):
    for x, target in rows:
        total = w[0] * x[0] + w[1] * x[1] + b
        out = 1 if total > 0 else 0
        err = target - out
        w[0] += rate * err * x[0]
        w[1] += rate * err * x[1]
        b += rate * err
print("weights:", w, "bias:", b)

Este arquivo treina um único neurônio para aprender a porta AND com uma taxa de aprendizado e um loop curto de atualização de pesos, depois imprime os pesos e o viés. Ele usa Python puro, sem bibliotecas e sem números aleatórios, então cada execução dá o mesmo resultado. Execute-o com Shell, altere o número de épocas e execute novamente para ver o que muda nos pesos impressos.

Passo a passo: rastreamento de um experimento de rede neural convolucional em Python

Leia o código de treinamento

Antes que qualquer coisa seja alterada, o Sigmora lê. read_file abre seu script de treinamento, list_dir mostra a pasta de dados e grep encontra as linhas que definem as camadas, a função de perda e o loop. Você vê o texto do arquivo no card, para que possa comparar os tamanhos das camadas com a forma dos seus dados. O agente não altera nada nesta fase. Modelos de rede neural de portas lógicas, como o arquivo AND acima, são o primeiro exercício clássico, e a mesma etapa de leitura serve para uma rede neural do zero em Python que você escreveu no mês passado e já não se lembra. Peça qualquer bloco em palavras simples, ou mude para Plan only se quiser uma explicação escrita e nenhuma ação. Leia cada explicação ao lado do código e verifique se corresponde ao que você escreveu.

Execute o comando de treinamento

Escolha Auto-run para uma execução em que você confia, ou Ask first se quiser aprovar ações que alteram algo. Shell inicia seu comando de treinamento, por exemplo python perceptron_and.py, no ambiente que você escolheu, e o card mostra a saída real e o código de saída. Expanda o card para ler o log completo do seu script de rede neural convolucional em Python linha por linha. O treinamento pode demorar tanto quanto demorar, e o Sigmora não o acelera. Quando a perda não está convergindo em uma rede neural, o log é onde você vê isso primeiro. Observe os números, não apenas o código de saída, porque um código de saída zero significa apenas que o script terminou. Em seguida, decida se o código precisa de uma alteração e peça o diff apenas se precisar.

Corrija um erro de forma ou uma perda lenta

edit_file altera o script e mostra um diff. No modo Ask first nada é escrito até você aceitar o diff, enquanto o Auto-run aplica a alteração imediatamente. Um erro de forma geralmente significa que os dados e a primeira camada não correspondem, então a correção é frequentemente um número. Uma perda que mal se move pode indicar a taxa de aprendizado, rótulos que não se alinham com os dados ou um modelo que ainda não pode overfitar um lote pequeno. Experimente esse lote pequeno primeiro. Overfitting e underfitting são problemas diferentes, então observe a perda de treinamento e validação antes de alterar qualquer coisa grande. Construir uma rede neural para xadrez é um projeto maior, mas começa da mesma forma. Após a edição, execute o comando novamente com Shell e compare os novos números com os antigos.

Registre os resultados em um arquivo CSV

Para comparar execuções, você precisa de números em um arquivo. write_file cria um arquivo CSV na sua pasta de trabalho, ou append_file adiciona uma linha por época, e read_file carrega-o novamente para que o agente possa colocar 2 execuções lado a lado. O Sigmora não analisa os dados para você; ele salva os números e os mostra, e você decide o que eles significam. Mantenha os dados de validação separados dos dados de treinamento e deixe o conjunto de teste intocado até o final. O modo Plan only pode escrever o próximo experimento como um plano sem executar nada. Quando estiver pronto, mude o modo e deixe o agente executá-lo. Antes de manter um resultado, abra o arquivo CSV e verifique se as linhas correspondem ao que o card imprimiu e se cada coluna está rotulada.

Sigmora para Windows

Experimente o fluxo de trabalho no seu próprio projeto

Baixar Sigmora ↗