- threecourse
- 2857
- 0
- 0
- 0
SpMVの高速化 -疎行列の大きさがL2キャッシュに載りそうなくらい(AtCoderのジャッジサーバーはSkylake-SPかCascadelake-SPのどちらかがランダムで割り当てられる、どちらもL2は1MiB/core)なので、AVX512も使えるし結構頑張れるはず -手元にAVX512対応の計算機が無いのでデバッグがしんどいと思った
2021-05-31 08:46:39-クラウドで対応CPUが使えるインスタンス借りても良かったとは思う -アイデアの枯渇しているときにやっておけば、その後の手札を増やせるので結構やっておくべきだった度が高い気がする
2021-05-31 08:48:53クラウドで大量にCPUを借りて大量のケースを回す -統計上有意に良くなったか確かめるのは、かなりたくさん回す必要がある -今回は自宅の計算機クラスタをぶん回した -性質上、EC2借りるよりlambdaに投げると良さそう? -これでoptuna回したりするとものすごい勢いでお金飛ばせそう -環境構築だるそう
2021-05-31 08:58:34やってみたけどあんまり上手く行かなかったこと 隣接辺の重みの差をペナルティにするのではなく、ダミー辺との重みの差をペナルティにする -M=2のときに全然上手く行かなかった -M=1のときもスコアの分散が大きくなっただけであまり改善されず -辺ごとの重み推定を捨てて、行ごとにしたらいいのかな?
2021-05-31 09:02:40まったく高速化しなかったわけではなく、get_uncheckedとかtarget_features("avx2")はやって結構効いた(これ"fma"にすべきだっだのでは?)
2021-05-31 09:10:04#AHC003 自作ヴィジュアライザ1つ目 自分のベストスコアと今回で良くなっているkを青に悪くなっているkを赤く表示。 outputもここから入手できるように。 stremlitとbokehのPythonのみで作成。 途中、ヴィジュアライザを作るのが目的になってしまった時があったw pic.twitter.com/Y71NCYGNFs
2021-05-31 09:45:51#AHC003 自作のヴィジュアライザ2つ目 道のコスト更新をヒートマップで確認。 右が正解。 これ見てようやく問題文の入力生成が理解できた。 bokehのヒートマップ理解できなくてseabornを利用。 これもPythonのみで作成。 seed,kの状態全てをsqliteに入れようとして怒られたので、seed毎に作成。 pic.twitter.com/TrCywDKbLk
2021-05-31 09:57:20twitter.com/threecourse/st… からまってても、同時にハイパーパラメータ100個ぐらいでも、推定できてくれないと、個人的にはつらいですが。。。(今回、16個のハイパーパラメータつっこんで最適化させてました)
2021-05-31 10:49:36@nzw0301 ありがとうございます まさにこれです 探索の途中で保存できない気がしていましたが,よく考えるとoptimizeを何回も回して都度セーブすれば良さそうです
2021-05-31 11:06:27あと、最良ケースの周辺を探索できるようにしたい要望はあまり無いのだろうか Xが現状最良パラメータ、dが範囲で、(X-d,X+d)の範囲で探索するとか
2021-05-31 13:07:54optuna 実行部分 github で公開しました github.com/btk15049/atcod… 中で呼んでる compile や simulate はここにあります github.com/btk15049/atcod…
2021-05-31 17:58:17github.com/btk15049/atcod… パラメータはこの辺 trial 毎にコンパイルをしていて、ビルド時の環境変数をパラメータに埋め込んでいる 提出時とかは else のほうが読まれるのでそのまま出せる
2021-05-31 18:02:45今になって AHC を振り返ってみると, ・ソルバ: C++ ・ビジュアライザ: TypeScript ・ジャッジプログラム: Rust (official を改造) ・バッチ: Python と,かなり色々使いました.
2021-05-31 20:09:26あと,これも紹介し損ねていました. M=1, M=2 の判別方法です. 直線ごとの辺の重み推定値分散の盤面全体の平均が,クエリ回数ごとにどう動くか統計を取って,ロジスティクス回帰で M=1 or 2 の判別用閾値を求めました. 精度は微妙なんですが,無いよりはいくらかマシでした. pic.twitter.com/5cRNR3B9JN
2021-05-31 20:15:43@cute_na_piglets ありがとうございます。私がやりたいのとはちょっと違ったかも…? 例えば0100 0110に対してn=3(1-based)を指定したら、0100 0000 あるいは6(0-based)が欲しいということでした。
2021-05-31 20:26:09@cute_na_piglets んん、これで実現できるんですね。 試してみたら期待通りの値が取れました。 値の側をmaskにするというところまで頭が回らなかったようです。ありがとうございます…!
2021-05-31 21:12:08機能ではないけど、マラソン向けのOptuna解説記事が欲しいです🙏 スコアを取得するときにテストケースをいくつ実行するかで実行時間と精度を調節できるけれど、これをどうするのが良いのかが分からない。 twitter.com/not_522/status… twitter.com/not_522/status…
2021-05-31 21:12:36AHCも始まったし、マラソン向けにOptunaの解説書きたい twitter.com/kusano_k/statu…
2021-03-15 09:40:25#AHC003 参加記を書きました AHC003 参加記 - takumi152の競プロ日記 takumi152.hatenablog.jp/entry/2021/05/…
2021-05-31 21:43:14統計や機械学習の知識がない人でも、それなりにとても楽しめるよー、ということで はてなブログに投稿しました #はてなブログ #AtCoder #AHC003 AtCoder Heuristic Contest 003 - Toy と帽子と ADP BE mdstoy.hatenablog.com/entry/2021/05/…
2021-05-31 22:29:00optunaで使われているTPE、「Kaggleで勝つデータ分析の技術」で結構丁寧にアルゴリズムを説明したのでお持ちの方は見てみて下さい
2021-05-31 22:36:21