본문 바로가기
AI/파이토치(Pytorch)

[딥러닝][파이토치] 이그나이트 이벤트(Ignite Events)

by Hyen4110 2021. 9. 3.

이 글은 아래 Pytorch document 링크를 보고 정리한 글입니다.

https://pytorch.org/ignite/generated/ignite.engine.events.Events.html#ignite.engine.events.Events

 

Ignite Your Networks! — PyTorch-Ignite v0.4.6 Documentation

High-level library to help with training and evaluating neural networks in PyTorch flexibly and transparently.

pytorch.org

 

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)

 

 

 

댓글