이 글은 아래 Pytorch document 링크를 보고 정리한 글입니다.
https://pytorch.org/ignite/generated/ignite.engine.events.Events.html#ignite.engine.events.Events
1. Events란?
- Events는 실행 중 엔진에서 발생하는 이벤트로, 파이토치 이그나이트에서 사전에 정의하여 기본 제공하는 이벤트들이 존재합니다.
- Events는 Handler와 함께 실행(run)의 매 단계별로 상호작용을 일으켜 Engine의 유연성을 높입니다.
(단계: 엔진의 시작/종료, 에포크의 시작/종료, 배치 iteration의 시작/종료 시)
<기본 제공 이벤트들>
Events | 설명 |
STARTED | 엔진 실행이 시작될 때 트리거됩니다. |
EPOCH_STARTED | Epoch가 시작될 때 트리거됩니다. |
GET_BATCH_STARTED | 다음 배치를 가져오기 전에 트리거됩니다. |
GET_BATCH_COMPLETED | 배치를 가져온 후 트리거됩니다. |
ITERATION_STARTED | iteration이 시작될 때 트리거됩니다. |
ITERATION_COMPLETED | iteration이 종료될 때 트리거됩니다. |
DATALOADER_STOP_ITERATION | Dataloader에 더 이상 제공할 데이터가 없을 때 트리거됩니다. |
EXCEPTION_RAISED | 예외가 발생했을때 트리거됩니다. |
TERMINATE_SINGLE_EPOCH | terminate_epoch() 또는 terminate() call을 받은 후에 실행이 현재 에포크를 종료하려고 할 때 트리거됩니다. |
TERMINATE | terminate() call을 받은 후에 실행이 완전히 종료될때 트리거됩니다. |
EPOCH_COMPLETED | Epoch가 종료될 때 트리거됩니다. 이는 terminate_epoch()가 호출될 때도 트리거됩니다. |
COMPLETED | 엔진 실행이 완료(completed)되면 트리거됩니다. |
fire_event(Events.STARTED)
while epoch < max_epochs:
fire_event(Events.EPOCH_STARTED)
# run once on data
for batch in data:
fire_event(Events.ITERATION_STARTED)
output = process_function(batch)
fire_event(Events.ITERATION_COMPLETED)
fire_event(Events.EPOCH_COMPLETED)
fire_event(Events.COMPLETED)
'AI > 파이토치(Pytorch)' 카테고리의 다른 글
[파이토치] Autograd (0) | 2021.09.08 |
---|---|
[파이토치] 텐서 기초 (0) | 2021.09.08 |
[딥러닝][파이토치] 이그나이트_엔진(Ignite_Engine) (0) | 2021.09.03 |
[NLP][파이토치] seq2seq - Decoder(디코더) (0) | 2021.08.30 |
[NLP][파이토치] seq2seq - Attention(어텐션) (0) | 2021.08.30 |
댓글