Sigmora
워크플로우

파이썬으로 직접 만든 신경망, 단계별로

03
학습 디버깅

에러가 나는 학습 스크립트 디버깅하기

Python 파일이 작은 신경망을 학습해야 하지만 에러가 발생하거나 이상한 숫자를 출력합니다. Sigmora가 파일을 열고 관련 줄을 찾아 Shell로 학습 명령을 실행한 후 실제 출력을 카드에 표시하여 추측이 아닌 실제 상황을 볼 수 있게 합니다. 하나의 파일부터 시작하세요. 에이전트는 직접 학습하지 않습니다. 코드가 학습하며 시간이 걸릴 수 있기 때문입니다. 루프는 짧습니다: 읽고, 실행하고, 비교하고, 변경합니다. 폴더와 모드를 선택하고 어떤 변경을 받을지 결정합니다. 소유하거나 사용할 수 있는 코드, 데이터, 컴퓨터만 사용하고 각 실험을 반복할 수 있을 정도로 작게 유지하세요.

01

폴더 열기

학습 스크립트, 설정 파일 및 로그가 있는 작업 폴더를 선택하세요. 파일 도구는 해당 폴더에서 작동하며 list_dir은 폴더의 내용을 보여줍니다. 사용할 수 있는 데이터를 같은 곳에 유지하여 스크립트의 모든 경로가 짧게 유지되게 하세요. 파일 도구는 이 폴더를 사용합니다.

02

읽기 요청

Sigmora에게 학습 스크립트를 읽고 레이어, 손실 함수 및 루프를 설명해 달라고 요청하세요. read_file과 grep은 참조하는 줄을 인용하므로 설명이 자신의 코드와 일치하는지 확인할 수 있습니다. Plan only 모드에서는 아무것도 변경되지 않습니다. 블록이 여전히 명확하지 않으면 다시 요청하세요.

03

명령 실행

학습 명령을 지정하고 모드를 선택하세요. Shell은 Windows, WSL 또는 자체 서버의 SSH에서 명령을 실행하며 카드는 실제 출력과 종료 코드를 보여줍니다. 명령이 실행되는 위치에 Python이 설치되어 있어야 합니다. 하드웨어에서 학습은 오래 걸릴 수 있습니다.

04

결과 확인

카드를 확장하고 출력된 에러나 손실 값을 읽으세요. 종료 코드가 0이라는 것은 스크립트가 에러 없이 종료되었음을 의미할 뿐이므로 검증 데이터에서 모델이 보지 못한 데이터에 대해 숫자를 스스로 판단하고 본 내용을 기록하세요. 그런 다음 다음 작은 변경 사항을 결정하세요.

예시: 일반 Python으로 AND 게이트 학습 단일 뉴런

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)

이 파일은 학습률과 짧은 가중치 업데이트 루프를 사용하여 단일 뉴런이 AND 게이트를 학습하도록 훈련한 후 가중치와 편향을 출력합니다. 일반 Python을 사용하며 라이브러리나 난수 없이 모든 실행에서 동일한 결과를 제공합니다. Shell로 실행하고 에포크 수를 변경한 후 다시 실행하여 출력된 가중치의 변경 사항을 확인하세요.

실습: 합성곱 신경망 Python 실험 추적하기

학습 코드 읽기

아무것도 변경하기 전에 Sigmora가 읽습니다. read_file이 학습 스크립트를 열고 list_dir이 데이터 폴더를 보여주며 grep이 레이어, 손실 함수 및 루프를 정의하는 줄을 찾습니다. 카드에서 파일 텍스트를 볼 수 있으므로 레이어 크기가 데이터의 형태(shape)와 일치하는지 비교할 수 있습니다. 에이전트는 이 단계에서는 아무것도 변경하지 않습니다. AND 파일과 같은 논리 게이트의 신경망 모델은 고전적인 첫 번째 연습이며, 한 달 전에 작성하고 더 이상 기억나지 않는 파이썬으로 직접 만든 신경망에도 같은 읽기 단계가 적합합니다. 일반 언어로 블록에 대해 요청하거나 계획만 원하면 Plan only로 전환하세요. 각 설명을 코드 옆에서 읽고 자신이 작성한 내용과 일치하는지 확인하세요.

학습 명령 실행

신뢰할 수 있는 실행에는 Auto-run을 선택하고, 변경 사항을 승인하려면 Ask first를 선택하세요. Shell은 선택한 환경에서 학습 명령(예: python perceptron_and.py)을 시작하고 카드는 실제 출력과 종료 코드를 보여줍니다. 카드를 확장하여 합성곱 신경망 Python 스크립트의 전체 로그를 줄별로 읽으세요. 학습은 시간이 걸릴 수 있으며 Sigmora는 속도를 높이지 않습니다. 신경망에서 손실이 수렴하지 않으면 로그에서 이를 먼저 볼 수 있습니다. 종료 코드뿐만 아니라 숫자를 확인하세요. 종료 코드가 0이라는 것은 스크립트가 종료되었음을 의미할 뿐이기 때문입니다. 그런 다음 코드 변경이 필요한지 결정하고 필요한 경우 diff만 요청하세요.

형태 에러 또는 느린 손실 수정

edit_file이 스크립트를 변경하고 diff를 보여줍니다. Ask first 모드에서는 diff를 수락할 때까지 아무것도 기록되지 않으며 Auto-run은 변경 사항을 즉시 적용합니다. 형태 에러는 일반적으로 데이터와 첫 번째 레이어가 일치하지 않음을 의미하므로 수정은 종종 하나의 숫자입니다. 거의 움직이지 않는 손실은 학습률, 데이터와 일치하지 않는 레이블 또는 작은 배치에 과적합할 수 없는 모델을 가리킬 수 있습니다. 먼저 그 작은 배치로 시도하세요. 과적합과 과소적합은 다른 문제이므로 큰 변경을 하기 전에 학습 및 검증 손실을 확인하세요. 체스를 위한 신경망 구축은 더 큰 프로젝트이지만 시작 방식은 동일합니다. 편집 후 Shell로 명령을 다시 실행하고 새 숫자를 이전 숫자와 비교하세요.

결과를 CSV 파일에 기록

실행을 비교하려면 파일에 숫자가 필요합니다. write_file이 작업 폴더에 CSV 파일을 생성하고 append_file이 각 에포크당 한 행을 추가하며 read_file이 다시 로드하여 에이전트가 2개의 실행을 나란히 배치할 수 있게 합니다. Sigmora는 데이터를 분석하지 않습니다. 숫자를 저장하고 표시하며 의미는 사용자가 결정합니다. 검증 데이터를 학습 데이터와 분리하고 테스트 세트를 끝까지 변경하지 마세요. Plan only 모드에서는 아무것도 실행하지 않고 다음 실험을 계획으로 작성할 수 있습니다. 준비되면 모드를 전환하고 에이전트가 수행하게 하세요. 결과를 저장하기 전에 CSV 파일을 열고 행이 카드가 출력한 내용과 일치하며 각 열에 레이블이 지정되었는지 확인하세요.

Windows용 Sigmora

자신의 프로젝트에서 워크플로우 시도하기

Sigmora 다운로드 ↗