動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.1.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
学習コードv0.1 http://qiita.com/7of9/items/5819f36e78cc4290614e
http://qiita.com/7of9/items/feeae410f3931e6d0fd0
の続き。
概要
This article is related to ADDA (light scattering simulator based on the discrete dipole approximation).
- TFRecordsを読込んで学習する
- input: 5 nodes
- output: 6 nodes
- サンプル数: 223,872
- 学習データ: ADDAにより計算した値
- #input
- x,y,z: dipole position
- refractive index: real and imaginary part
- #output
- initial values for linear equation solution for (x,y,z),(real,imaginary)
出力層の変更
6つの値を出力層にとってネットワークの学習をしていたが、1つの値だけを出力層にして様子を見ることにした。
6つの値をそれぞれ学習した時のlossの経過は以下。
EXRだけlossの減少が見られない。
EXRの値
EXRの値の例。
表示されたものでは、プラスマイナス0.2程度の値になっている。
(左が学習元、右は学習結果)
EXR * 4.0の学習
EXR(や他の値)に関して平均と分散を計算して、データの標準化をした方がいいのかもしれない。
とりあえず4.0倍(適当に決めた)したEXRで学習をしてみた。
EXRに関してもlossが減少するようになった。
TODO
学習に用いるTFRecordsファイルを読み取り、EXR, EXI, EYR, EYI, EZR, EZIそれぞれの平均と分散を計算する。平均と分散を用いてデータを標準化し、それをoutput layerに用いて学習する。