目次

6. 推論

6.1 推論

前章までで作成されたモデル(ニューラルネットワークと最適化されたパラメータの組み合わせ)を用いて、 測定値または何らかの方法で作成されたS行列画像から誘電率分布を推定することを推論(inference)と呼びます。

図6-1に推論の手順を示します。
以下の2つのファイルを用意します。

  1. fdtd.bin: FDTD法で出力されるfdtd.binと同じ書式で、 S行列に測定値または何らかの方法で作成されたものを代入したもの。 誘電率は不要なのでダミー(例えばすべて0)を代入する。
  2. fddl.pth: 前章までで作成されたモデルファイル

図6-1 推論の手順

推論を行うにはファイルfddl.pyを以下のように編集してください。

リスト6-1 推論の設定(fddl.pyの一部)


    # S行列ファイル
    fdtd_bin = 'fdtd.bin'   # S行列ファイル名

    # モデルファイル
    modelfile = 'fddl.pth'  # モデルファイル名
    load_model = 1     # modelfileを読み込むので1とする
    save_model = 0     # modelfileを保存しないので0とする

    # 計算パラメーター
    ndata = 1          # データ数(1以上、通常1)
    batch_size = 50    # バッチサイズ, 結果に関係ないのでダミー(50のままでよい)
    num_epochs = 0     # エポック数、反復計算をしないので0とする
    component = 1      # S行列成分, 1=S, 2=Re(S),Im(S), 3=Re(S),Im(S),S
    train_ratio = 0    # 訓練しないので0とする

推論を行うには下記のコマンドを実行してください。計算時間は一瞬です。

$ python fddl.py

推論結果を図形出力するにはplot.pyを下記のように編集した後、 下記のコマンドを実行してください。

_plot2d_labels((6, 5), 1, 1, labels, preds)
....
plotutils.contour(figsize, mx, my, mstep, p2, vmin, vmax, str_dif, 'pred')
$ python plot.py

図6-2に2次元モデルの図形出力例を示します。
3次元モデルのときは図4-7のような図が出力されます。

図6-2 推論結果(2次元モデル)