grunt-contrib-tuning v0.0.0 リリース
grunt-contrib-tuningをリリースしました。
いろいろなパフォーマンスのチューニングをgruntから利用することができます。
grunt.loadNpmTasks 'grunt-contrib-tuning'
と登録して
grunt.initConfig tuning: test: params: alpha: range: [1, 100] beta: range: [5, 10] gamma: range: [10, 100] env: ()-> port = 10000 ()-> {port: port++} limit: 10 target: 0.3 command: (env, params, next)-> setTimeout ()-> next(null, Math.random()) Math.random() * 1000
とパラメタセット(params
)やら実際の施行(command
)を定義してから、
% grunt tuning
とshellを叩くとlimit
を施行上限回数として、target
以下になるまで、様々なパラメタで施行を繰り返し、最適な結果とその時のパラメタセットを得ることができます。
% grunt tuning Running "tuning:test" (tuning) task tuning: 1 cases, time: 1.132 sec best score: 0.06350546376779675 on: {"alpha":0.06564602116122842,"beta":9.134039804339409,"gamma":53.039238741621375} Done, without errors.
今現在は、ストラテジとしてランダムでの総当り状態なので非常に良くないですが、何点かgridで取得して、それを元に、一般線形モデルとか作って、ヨサゲなところを重点的に、とかってのもやりやすく作っています。
ストラテジのpluginとかも出来ればいいなとは思っていますが、おいおい。
とりあえず某異常値検知のチューニングとかにこれをぶち込んだりするといいことがあるんじゃないかと思ったりしています。
TODO
- commandで文字列を渡してshellコマンドを叩けるといいな
- strategyでパラメタ戦略を渡せるといいな(一般線形モデルとか)
- あ、grunt-pluginのテストよくわからなかったからまだ書いてない・・・