前章までで作成されたモデル(ニューラルネットワークと最適化されたパラメーターの組み合わせ)を用いて、
散乱パターンの測定値または何らかの方法で作成されたものから物体形状または電流分布を推定することができます。
これを推論(inference)と呼びます。
図6-1に推論の手順を示します。左は物体形状用、右は電流分布用です。
以下の2つのファイルを用意します。
推論を行うにはファイル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)を使用したとき)
テストデータとして、正方形、三角形、円の3個のデータを作成し推論を行います。
図6-2に物体形状の推論結果を示します。Ny=Nz=20とNy=Nz=30の2通りを示します。
3個1組で左から、正解、推定、判定です。
図6-3に電流分布の推論結果を示します。Ny=Nz=20とNy=Nz=30の2通りを示します。
2個1組で左から、正解、推定です。
正方形は似たデータが訓練データにあると思われるので正しく推論されています。
三角形と円は訓練データにない形状ですが、ほぼ正しく推論されています。
また、物体形状の解像度が上がるとより正しく推論できることがわかります。