sannp.propの書式

sannp.propのテンプレートは、 sannp --temp で出力できます。

行頭が#または!の行はコメントとして扱われます。

restart
デフォルト:

0

0の場合、最初から学習を実行します。1の場合、ニューラルネットワークの情報をsannp.datasannp.data_eまたはsannp.data_qから読み込み、学習を再開します。

insituTest
デフォルト:

0

1の場合、学習中の各epochで、テストデータに対するRSMEを計算して出力するin-situテストを行います。0の場合、in-situテストを行いません。

withCharge
デフォルト:

0

電荷の計算を行う(1)か行わない(0)かの指定です。

withHDNNP
デフォルト:

1

系全体のエネルギーを教師データとするHDNNP法を使う(1)か、各原子に分割したエネルギーを教師データとするSANNP法を使う(0)かの指定です。

withLJlike
デフォルト:

0

LJ-like力場とニューラルネットワーク力場を組み合わせたΔ-NNPを使う(1)か使わない(0)かの指定です。ReaxFFを用いた Δ-NNPとは併用できません。 withClassical 1 でも withLJlike 1 と同じ設定になります。

withReaxFF
デフォルト:

0

ReaxFFとニューラルネットワーク力場を組み合わせたΔ-NNPを使う(1)か使わない(0)かの指定です。ReaxFFを使う場合、パラメータ定義ファイルffield.reaxが必要です。LJ-like力場を用いた Δ-NNPとは併用できません。 withClassical 2 でも withReaxFF 1 と同じ設定になります。

rcutReaxFF
デフォルト:

5.0

ReaxFFを用いた Δ-NNPで、ReaxFFのカットオフ半径(Å)を指定します。

rateReaxFF
デフォルト:

0.5

ReaxFFを用いた Δ-NNPで、エネルギーと力を計算する際のReaxFFの寄与(混合率)を指定します。

directSF
デフォルト:

-1

対称関数の正規化をミニバッチ内で行う(1)か、サンプル全体で行う(0)かの指定です。負の値を指定した場合、Behler対称関数ならサンプル全体、Many-Body対称関数ならミニバッチ内になります。

regularElem
デフォルト:

1

教師データ中の元素名の後に文字が続く場合(例:Fe1、Fe2)、学習時に同じ元素として扱う(1)か、別の元素として扱う(0)かの指定です。

maxForce
デフォルト:

10.0

教師データに含まれる、力が大きすぎる外れ値を除外するための閾値(eV/Å)です。0以下の値を指定した場合、除外を行いません。

minEDev
デフォルト:

0.5

原子のエネルギーの正規化に使う分散の下限値(eV)を指定します。

maxEDev
デフォルト:

10

原子のエネルギーの正規化に使う分散の上限値(eV)を指定します。

minQDev
デフォルト:

0.1

原子の電荷の正規化に使う分散の下限値(e)を指定します。

maxQDev
デフォルト:

10

原子の電荷の正規化に使う分散の上限値(e)を指定します。

symmFunc
デフォルト:

chebyshev

対称関数を指定します。behler、chebyshev、many-bodyが指定できます。

elemWeight
デフォルト:

1

重み付き対称関数を使う(1)か、使わない(0)かの指定です。Behler対称関数、Chebyshev対称関数で使用可能です。

tanhCutoff
デフォルト:

1

カットオフ関数f_c(R_{ij})としてtanhを使った関数を使う(1)か、cosを使った関数を使う(0)かの指定です。

m2
デフォルト:

100

Many-Body対称関数のパラメータ M2 です。

m3
デフォルト:

10

Many-Body対称関数のパラメータ M3 です。

rinner
デフォルト:

0.0

Many-Body対称関数のパラメータ Rinner (Å)です。

router
デフォルト:

6.0

Many-Body対称関数のパラメータ Router (Å)です。

numRadius
デフォルト:

50

Chebyshev対称関数の動径成分の数を指定します。

numAngle
デフォルト:

30

Chebyshev対称関数の角度成分の数を指定します。

rcutRadius
デフォルト:

6.0

Chebyshev対称関数の動径成分のカットオフ距離 Rc (Å)を指定します。

rcutAngle
デフォルト:

6.0

Chebyshev対称関数の角度成分のカットオフ距離 Rc (Å)を指定します。

models
デフォルト:

16

指定した数のニューラルネットワークモデルを作り、同時並行で学習させます。力場として使う際は、各ニューラルネットワークが出力したエネルギー・力の平均値を力場の出力とします。1を指定すると、1つのニューラルネットワークモデルで力場を定義する従来の手法になります。

layers
デフォルト:

2

ニューラルネットワークの隠れ層の層数です。

nodes
デフォルト:

40

ニューラルネットワークのノード数です。

activ
デフォルト:

twtanh

ニューラルネットワークの活性化関数です。asis(使用しない)、sigmoid、tanh、twtanh(twisted tanh)、eLU、GELUが指定できます。

lbfgs
デフォルト:

32

学習時の最適化アルゴリズムの指定です。0を指定すると、Adam法を使用します。1以上の値を指定すると、その値を履歴数とするL-BFGS法を使用します。

lineSearch
デフォルト:

more-thuente

L-BFGS法で使用する直線探索のアルゴリズムです。more-thuente、armijo、wolfe、strong-wolfeが指定できます。

lineSteps
デフォルト:

32

L-BFGS法で使用する直線探索の試行回数の最大値です。

batchs
デフォルト:

0

学習時のミニバッチサイズです。0以下の値を指定した場合、ミニバッチは使用せず、フルバッチ(サンプル全体)で学習を行います。

epochs
デフォルト:

500

学習時の繰り返し回数(epoch)の上限です。

epochsStore
デフォルト:

1000

学習中にニューラルネットワークのデータをファイルに保存する間隔を設定します。0以下の値を設定すると終了時のみ保存します。

epochsOnlyE
デフォルト:

250

学習時の繰り返し回数(epoch)がこの数字より小さいうちはエネルギーのみを使って学習を行います。それ以降はエネルギーと原子に働く力の両方を使って学習を行います。

epochsApproxF
デフォルト:

500

エネルギーから原子に働く力の誤差を計算する際、繰り返し回数(epoch)がこの数字より小さいうちはDouble Backward法による近似的な微分法を使います。それ以降は厳密に微分を計算します。

superEpochs
デフォルト:

0

教師データを複数のサブセットに分割して、各サブセットを使った学習処理を順次実行するSuper Epoch法の設定です。

分割するサブセット数(=Super Epochの数)を指定します。0以下の値を指定した場合、geomsEpochを元に自動的に値が設定されます。

geomsEpoch
デフォルト:

500(GPU版 sannp_gpu では2500)

Super Epochあたりの教師データ数を指定します。0以下の値を指定した場合、または教師データ数よりも値が大きかった場合は、自動的に教師データ数と同じ値に設定されます。

sqrtLoss
デフォルト:

0

損失関数のスケール係数を絶対値で設定する(1)か、2乗値で設定する(0)かの指定です。

renormLoss
デフォルト:

0

損失関数の正規化を行う(1)か行わない(0)かの指定です。

approxForce
デフォルト:

0

エネルギーから原子に働く力の誤差を計算する際、epochsApproxFを使って近似的な微分と厳密な微分を切り替える(0)か、常に近似的な微分法を使う(1)か設定します。

rmseEnergy
デフォルト:

0.01

学習が収束したか判定するためのエネルギー残差(RMS)の閾値(eV/atom)です。

rmseForce
デフォルト:

0.10

学習が収束したか判定するための力の残差(RMS)の閾値(eV/Å)です。

rmseCharge
デフォルト:

0.01

学習が収束したか判定するための電荷の残差(RMS)の閾値(e)です。

coefEnergy
デフォルト:

1.00

エネルギーの損失関数のスケール係数(1/eV または 1/eV2)です。

coefForce
デフォルト:

1.00

力の損失関数のスケール係数(Å/eV または (Å/eV)2)です。

coefCharge
デフォルト:

1.00

電荷の損失関数のスケール係数(1/e または 1/e2)です。

learnRate
デフォルト:

1.0e-4

学習率の初期値です。

learnRateFinal
デフォルト:

1.0e-4

学習率の下限値です。

learnRateDecay
デフォルト:

0.9999

学習率の減衰率です。

adamBeta1
デフォルト:

0.9

学習時のハイパーパラメータ(Adam法のβ1)です。

adamBeta2
デフォルト:

0.999

学習時のハイパーパラメータ(Adam法のβ2)です。

classicalTry
デフォルト:

64

Δ-NNPで使用する古典力場を最適化する際の繰り返し回数の上限です。

classicalLower
デフォルト:

-50.0

Δ-NNPで使用する古典力場を最適化する際、ここで指定した値(eV)よりも小さいエネルギーが現れにくくなるように、ペナルティ関数を適用して最適化します。

gpuThreads
デフォルト:

256

(GPU版)CUDAのブロック当たりのスレッド数です。上限は1024(CUDAの仕様)です。32(ワープサイズ)の倍数を推奨します。

GPU上で生成するスレッドに関する設定で、CPUのスレッド並列(OpenMP並列)とは関係ありません。

gpuAtomBlock
デフォルト:

512

(GPU版)対称関数をGPUで計算するときに、ここで指定した数の原子ごとにまとめて処理を行います。

endProperty

以降のファイル内容はコメントとして扱われます。