CNTK-모델 모니터링
이 장에서는 CNTK에서 모델을 모니터링하는 방법을 이해합니다.
소개
이전 섹션에서는 NN 모델에 대한 몇 가지 유효성 검사를 수행했습니다. 그러나 훈련 중에 모델을 모니터링하는 것도 필요하고 가능합니까?
예, 이미 사용했습니다 ProgressWriter클래스를 사용하여 모델을 모니터링 할 수 있으며 더 많은 방법이 있습니다. 방법에 대해 자세히 알아보기 전에 먼저 CNTK의 모니터링이 작동하는 방식과이를 사용하여 NN 모델의 문제를 감지하는 방법을 살펴 보겠습니다.
CNTK의 콜백
실제로 훈련 및 검증 중에 CNTK를 사용하면 API의 여러 지점에서 콜백을 지정할 수 있습니다. 먼저 CNTK가 콜백을 호출하는시기를 자세히 살펴 보겠습니다.
CNTK가 콜백을 호출 할 때?
CNTK는 훈련 및 테스트 세트 순간에 콜백을 호출합니다.
미니 배치가 완료되었습니다.
훈련 중에 데이터 세트에 대한 전체 스윕이 완료됩니다.
미니 배치 테스트가 완료되었습니다.
테스트 중에 데이터 세트에 대한 전체 스윕이 완료됩니다.
콜백 지정
CNTK로 작업하는 동안 API의 여러 지점에서 콜백을 지정할 수 있습니다. 예를 들면-
손실 기능에서 기차를 호출 할 때?
여기서 손실 함수에 대해 train을 호출 할 때 다음과 같이 callbacks 인수를 통해 일련의 콜백을 지정할 수 있습니다.
training_summary=loss.train((x_train,y_train),
parameter_learners=[learner],
callbacks=[progress_writer]),
minibatch_size=16, max_epochs=15)
미니 배치 소스로 작업하거나 수동 미니 배치 루프를 사용할 때
이 경우 모니터링 목적으로 콜백을 지정할 수 있습니다. Trainer 다음과 같이-
from cntk.logging import ProgressPrinter
callbacks = [
ProgressPrinter(0)
]
Trainer = Trainer(z, (loss, metric), learner, [callbacks])
다양한 모니터링 도구
다양한 모니터링 도구에 대해 알아 보겠습니다.
ProgressPrinter
이 튜토리얼을 읽으면서 ProgressPrinter가장 많이 사용되는 모니터링 도구입니다. 일부 특성ProgressPrinter 모니터링 도구는-
ProgressPrinter클래스는 기본 콘솔 기반 로깅을 구현하여 모델을 모니터링합니다. 우리가 원하는 디스크에 기록 할 수 있습니다.
분산 교육 시나리오에서 작업하는 동안 특히 유용합니다.
또한 Python 프로그램의 출력을보기 위해 콘솔에 로그인 할 수없는 시나리오에서 작업하는 동안 매우 유용합니다.
다음 코드의 도움으로 다음의 인스턴스를 만들 수 있습니다. ProgressPrinter−
ProgressPrinter(0, log_to_file=’test.txt’)
우리는 이전 섹션에서 보았던 출력을 얻을 것입니다.
Test.txt
CNTKCommandTrainInfo: train : 300
CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 300
CNTKCommandTrainBegin: train
-------------------------------------------------------------------
average since average since examples
loss last metric last
------------------------------------------------------
Learning rate per minibatch: 0.1
1.45 1.45 -0.189 -0.189 16
1.24 1.13 -0.0382 0.0371 48
[………]
텐서 보드
ProgressPrinter를 사용할 때의 단점 중 하나는 시간이 지남에 따라 손실 및 메트릭 진행이 얼마나 어려운지 잘 볼 수 없다는 것입니다. TensorBoardProgressWriter는 CNTK의 ProgressPrinter 클래스에 대한 훌륭한 대안입니다.
사용하기 전에 다음 명령을 사용하여 먼저 설치해야합니다.
pip install tensorboard
이제 TensorBoard를 사용하려면 다음을 설정해야합니다. TensorBoardProgressWriter 다음과 같이 훈련 코드에서-
import time
from cntk.logging import TensorBoardProgressWriter
tensorbrd_writer = TensorBoardProgressWriter(log_dir=’logs/{}’.format(time.time()),freq=1,model=z)
close 메소드를 호출하는 것이 좋습니다. TensorBoardProgressWriter 교육을 마친 후 인스턴스 NN모델.
우리는 시각화 할 수 있습니다 TensorBoard 다음 명령의 도움으로 데이터 로깅-
Tensorboard –logdir logs