전체 학습 단계 구조
1. 예측
loss = ge.run_graph_with_loss_entry(...)
- E (계산 그래프) 에 따라 입력을 순차적으로 처리
- 각 노드의 출력은 tensors[output_id] 에 저장
- LOSS 노드는 y_pred, y_true 를 받아 CUDA 로 손실 계산
run_graph_with_loss_cuda() 내부에서 CUDA 커널로 연산 수행
2. 역전파
gradient_ptrs = ge.run_graph_backward_entry(...)
- 계산 그래프 E 를 역순으로 순회
- 각 노드에 대해 해당 연산의 CUDA backward kernel 수행
- output_id 기준 gradient 가 gradient[param_id], gradients[input_id] 에 기록됨
3. 가중치 업데이트
ge.optimizer_update(
param_ptr=w.data.ptr,
grad_ptr=grad_w.data.ptr,
...
opt_type=ge.OptimizerType.SGD
)
'dev_AI_framework' 카테고리의 다른 글
| 간단한 모델의 학습으로 필요한 추가 사항의 확인 (0) | 2025.08.02 |
|---|---|
| 한 사이클 연산 완료, 출력 로그 기반 오류 확인 및 수정 (0) | 2025.08.02 |
| E 행렬 기반 forward, backward 연산과 loss, metrics 연산 통합 (1) | 2025.07.31 |
| 각 cu, cuh 파일별 역할 (3) | 2025.07.20 |
| CUDA 기반 계산 그래프 역전파 엔진 구현 진행 요약 - 메모리 선언 및 할당 부분 (1) | 2025.07.17 |