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
[………]
TensorBoard
ProgressPrinterを使用することの欠点の1つは、時間の経過に伴う損失とメトリックの進行がどのように難しいかをよく理解できないことです。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