目次

6. 推論

6.1 推論

前章までで作成されたモデル(ニューラルネットワークと最適化されたパラメーターの組み合わせ)を用いて、 散乱パターンの測定値または何らかの方法で作成されたものから物体形状または電流分布を推定することができます。 これを推論(inference)と呼びます。

図6-1に推論の手順を示します。左は物体形状用、右は電流分布用です。
以下の2つのファイルを用意します。

  1. mom1.binまたはmom2.bin: モーメント法で出力されるmom1.binまたはmom2.binと同じ書式で、 散乱パターンを代入したもの。 物体形状または電流分布は不要なのでダミー(例えばすべて0)でもよい。
  2. dlfsp.pth: 前章までで作成されたパラメーターファイル


図6-1 推論の手順(左:物体形状用、右:電流分布用)

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

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


    # 計算パラメーター
    load_model = 1     # 1:modelfileを読み込む
    save_model = 0     # 0:modelfileは保存しない
    ndata = -1         # データ数, -1のときはすべてのデータ
    batch_size = 50    # バッチサイズ(=50:ダミー)
    num_epochs = 0     # エポック数(=0)
    train_ratio = 0    # 訓練データの割合(=0)

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

$ python dlfsp.py (ソースコード内でImode=2とし、datafileとmodelfileを指定する)
$ python dlfsp.py 2 datafile(ソースコード内でmodelfileを指定する)
$ python dlfsp.py 2 datafile modelfile

推論結果を図形出力するには下記のコマンドのいずれかを実行してください。

$ python post.py  (mom1.binを使用したときはImodel=1、mom2.binを使用したときはImodel=2とする)
$ python post.py 1 (mom1.bin(label1)を使用したとき)
$ python post.py 2 (mom2.bin(label2)を使用したとき)

6.2 推論のテスト例

テストデータとして、正方形、三角形、円の3個のデータを作成し推論を行います。
図6-2に物体形状の推論結果を示します。Ny=Nz=20とNy=Nz=30の2通りを示します。 3個1組で左から、正解、推定、判定です。


図6-2 物体形状の推論結果

図6-3に電流分布の推論結果を示します。Ny=Nz=20とNy=Nz=30の2通りを示します。 2個1組で左から、正解、推定です。


図6-3 電流分布の推論結果

正方形は似たデータが訓練データにあると思われるので正しく推論されています。 三角形と円は訓練データにない形状ですが、ほぼ正しく推論されています。
また、物体形状の解像度が上がるとより正しく推論できることがわかります。