私が現在取り組んでいるプロジェクトでは、一連の実験の設定を定義する宣言的な方法が必要です。
これまでのところ、このような解決策を見つけました。JSON を使用してデフォルト設定を公開するデータ構造がいくつかあります。
{
"trustRatio": 0.7,
"filter.coefA": 0,
"filter.coefB": 1,
"filter.coefC": 2,
"filter.coefD": 3
}
次に、実験を設定するには、実験の実行中に変更するフィールドを指定する必要があります。今、私はこのようにしています:
{
"path": "filter.coefA",
"values": [0, 1, 2, 3, 4, 5]
}
また
{
"path": "filter.coefA",
"min": 0
"max": 5,
"step": 1
}
次に、デフォルト設定と「グラデーション」設定の両方を辞書としてインスタンス化し、「パス」キーを使用して、デフォルト設定をボイラープレートとして使用し、値を実験マイルストーンとして使用して一連の実験設定を作成します。
このソリューションは、私が使用しているPythonまたはCSharpを使用して簡単に実装できますが、デフォルトと「グラデーション」設定を別々に保存するため、最適なものではありません. もう1つは、次のような階層構造を使用できないことです。
{
"trustRatio": 0.7,
"filter":
{
"coefA": 0,
"coefB": 1,
"coefC": 2,
"coefD": 3
}
}
これは、このソリューションを Python および CSharp で実装するときに辞書が課す制約のためです。
次のようにスポットで「勾配」を宣言することにより、実験設定の配列を取得できるPythonまたはCSharp(または少なくともFSharpのような他のCLR互換言語)ツールがあるかどうかは誰にもわかりますか?
{
"trustRatio": 0.7,
"filter":
{
"coefA": [0, 1, 2, 3, 4, 5],
"coefB": 1,
"coefC": 2,
"coefD": 3
}
}
?