Monitor
Monitor API は、ニューラルネットワークの学習の進行状況を記録するための helper を提供します。
- class nnabla.monitor.Monitor(save_path)[ソース]
このクラスは、ログの出力ディレクトリを設定するために作成されます。作成された
nnabla.monitor.Monitor
インスタンスは、以下の Monitor のクラスに渡されます。
Monitor のリスト
- class nnabla.monitor.MonitorSeries(name, monitor=None, interval=1, verbose=True)[ソース]
学習中の様々な値を記録します。
値は画面に表示されるほか、ファイル
<name>-series.txt
に出力されます。例 :
mons = MonitorSeries('mon', interval=2) for i in range(10): mons.add(i, i * 2)
- パラメータ:
- class nnabla.monitor.MonitorTimeElapsed(name, monitor=None, interval=100, verbose=True)[ソース]
経過時間を記録します。
値は画面に表示されるほか、ファイル
<name>-timer.txt
に出力されます。例 :
import time mont = MonitorTimeElapsed("time", interval=2) for i in range(10): time.sleep(1) mont.add(i)
- パラメータ:
- class nnabla.monitor.MonitorImage(name, monitor, interval=1000, verbose=True, num_images=16, normalize_method=None)[ソース]
画像を保存します。
この
.add()
メソッドは(N,..., C, H, W)
配列を入力として取り、[H, W, :min(3, C)]
の形式でnum_images
枚の画像に変換したのち、 monitor で指定したフォルダへ保存します。値は画面に表示されるほか、ファイル
<name>/{iter}-{image index}.png
に出力されます 。例 :
import numpy as np m = Monitor('tmp.monitor') mi = MonitorImage('noise', m, interval=2, num_images=2) x = np.random.randn(10, 3, 8, 8) for i in range(10): mi.add(i, x)
- パラメータ:
name (str) -- monitor の名前。画面に表示されるログの中で使用される他、出力される .txt ファイルの名前の一部としても使われます。
monitor (Monitor) -- Monitor クラスのインスタンス。
interval (int) -- 出力を表示する間隔。
num_images (int) -- 各イテレーションで保存される画像の数。
normalize_method (function) -- 出力する画像に適用する正規化関数を指定します。この関数はNCHW形式の画像のミニバッチを
numpy.ndarray
として受け取り、入力を [0、1] の範囲にマッピングするものである必要があります。デフォルトでは、画像に対して min-max 正規化を行う関数が用いられます。
- class nnabla.monitor.MonitorImageTile(name, monitor, interval=1000, verbose=True, num_images=16, normalize_method=None)[ソース]
複数枚の画像をタイルしてまとめた画像を保存します。
この
.add()
メソッドは(N,..., C, H, W)
配列を入力として受け取り、(H, W, :min(3, C))
の形式でnum_images
枚の画像をタイルしたうえで、 monitorで指定したフォルダへ保存します。値は画面に表示されるほか、ファイル
<name>/{iter}-{image index}.png
に出力されます 。例 :
import numpy as np m = Monitor('tmp.monitor') mi = MonitorImageTile('noise_noise', m, interval=2, num_images=4) x = np.random.randn(10, 3, 8, 8) for i in range(10): mi.add(i, x)
- パラメータ:
name (str) -- monitor の名前。画面に表示されるログの中で使用される他、出力される .txt ファイルの名前の一部としても使われます。
monitor (Monitor) -- Monitor クラスのインスタンス。
interval (int) -- 出力を表示する間隔。
num_images (int) -- 各イテレーションで単一の画像に保存するためにタイル化された画像の数。
normalize_method (function) -- 出力する画像に適用する正規化関数を指定します。この関数はNCHW形式の画像のミニバッチを
numpy.ndarray
として受け取り、入力を [0、1] の範囲にマッピングするものである必要があります。デフォルトでは、画像に対して min-max 正規化を行う関数が用いられます。
ユーティリティ関数
- nnabla.monitor.plot_series(filename, plot_kwargs=None)[ソース]
MonitorSeries の出力テキストファイルから系列データをプロットします。
- パラメータ:
filename (str) --
MonitorSeries
クラスによって生成された *.series.txt ファイルへのパス。plot_kwags (dict, optional) -- :function:`matplotlib.pyplot.plot` に渡されるキーワード引数。
注釈
matplotlib パッケージが必要です。