- 학습 경로에서 중간 텐서 해제 금지
기존 train_step_entry → run_graph_with_loss_cuda() 호출은 forward 직후 중간 출력들을 해제했다. 이어지는 backward가 MATMUL의 입력(예: Flatten 출력)까지 필요로 하는데 포인터가 무효라서 그래디언트가 무의미(0/쓰레기) → 파라미터 미갱신 → MSE 고정.
수정 후 train_step_entry가 손실을 직접 계산하고, 중간 텐서를 유지한 채 바로 backward로 넘어가므로 가중치가 정상 갱신된다. XOR은 우연히 터지지 않았을 뿐, 회귀에서는 더 민감하게 드러났다.
- y_true shape와 배치 크기 정합
이전엔 y_true의 per‑sample shape만 기록되어 총 요소수 계산이 어긋났다. MSE의 정규화와 인덱싱이 배치 미반영으로 틀어져 그래디언트 스케일이 비정상적이었다. y_true shape 보정과 N=B*C 기준 손실 계산으로 스케일이 정상화되어 수렴한다.
'dev_AI_framework' 카테고리의 다른 글
| Per‑Sample Shape 규칙 가이드 (GE Backend) (0) | 2025.08.23 |
|---|---|
| cnn_layer 구현 및 수정 (0) | 2025.08.22 |
| 후에 구현할 기능 고민해보자... (5) | 2025.08.15 |
| TF 32 활성화 적용 - FP 32 에서 변환 (0) | 2025.08.15 |
| CUDA 커널 호출 구조 개선 - 한 번의 호출로 학습 완료! (2) | 2025.08.15 |