verilog書く人

自称ASIC設計者です。どなたかkaggle一緒に出ましょう。

Rustでdefaultdict

RustでPythonのDefaultDictのようにデフォルト値を持ったハッシュマップを使いたい場合、 entry APIを使って、以下のようにすればよい。

    let mut normal_map = std::collections::HashMap::<i32, i32>::new();

    // normal_map[3]を呼ぶ。ただし、存在しなければmap[3] = 5とする。
    // println!("{:?}", normal_map[3]); はできないことに注意する。
    println!("{:?}", *normal_map.entry(3).or_insert(5));  // 5

    // normal_map[4]に1を足す。ただし、存在しなければmap[4] = 5としてから1を足す。
    (*normal_map.entry(4).or_insert(5)) += 1;
    println!("{:?}", *normal_map.entry(4).or_insert(5));  // 6

    // normal_map[5]を6とする。ただし、存在しなければmap[5] = 5としてから6を代入する。
    (*normal_map.entry(5).or_insert(5)) = 6;
    println!("{:?}", *normal_map.entry(5).or_insert(5));  // 6
続きを読む

競プロ向けのrustテスト/デバッグ環境を作った

最近競技プログラミングにはまっています。
数年前は「誰も使わないコードのためのコードなんて」と思っていたけど、今はスポーツ感覚で楽しめる心境になりました。
継続的に出ることで、小難しいアルゴリズムをバグなくスピーディーに組む力は上がっているのを感じます。

言語は、簡単な問題ではPython、計算量がありそうな問題ではRustを使っています。

Rustは速度が速いわりに、C++より楽にかけるのがよいです。
トッププログラマ達も使い始めていて、競プロ用言語として有望な気がします。

 

続きを読む

【雑記】最近rust試してるので感想

最近、rustで楽しく書いてます。

C++の古い部分、危険な部分をそぎ落とし、関数型言語の要素が入っているということで、これから新しくC++のプロジェクトを始めるならいっそrustで始めたらいいんじゃないかなと思いました。

 

まだrust歴二週間程度ですが感想まとめ。

続きを読む

caffeベースで配布されているネットワークをdockerで試す、Refinedetを題材に

caffe本家に含まれていない独自レイヤを使ったネットワークをcaffe実装で公開するとき、追加レイヤ分だけを含むリポジトリを作るのではなく、caffeごとforkして独自レイヤを足す形での配布が多いようです。

(というかそれしか手段がない?)

 

例えば、物体検出系で言うと、

あたりがそうですね。

 

これらをインストールしようとするとcaffeそのものをインストールされる以上、環境が汚れるのは必至、既存のcaffeとバージョンが衝突してどうしたものかなとなりますよね。

そんなときはdockerを使ってみようというお話。

 

続きを読む

リアルタイム物体検出向けニューラルネット、SSD(Single Shot Multi Detector)及びその派生モデルの解説

さて、昨年行ったGTC Japan 2017では物体検出のデモを行っているブースが多く、盛り上がりを見せている分野と感じています。
たしかに、物体検出のデモってすごくAI感(?)があります。

今回の記事はリアルタイム(~0.1sec)物体検出に使われるSSD及びその派生モデルのお話。

 

f:id:segafreder:20180310160240p:plain

 [1]SSD検出結果

続きを読む

FastRGFはじめました@rgf_python2.3.0

rgf_pythonですが、ありがたいことにPorto Seguro’s Safe Driver Prediction Competitionを中心にkaggleで使ったよ、という報告が増えてきました。

 

Safety in Numbers - My 18th Place Solution to Porto Seguro's Kaggle Competition – Joseph Eddy – Data scientist, teacher, debate coach

https://www.kaggle.com/scirpus/regularized-greedy-forest/code

 

RGF単体でXGBやLightGBMを越えない場合でも、アンサンブルのお供には有力な選択肢です。

さて、rgf_pythonは現在も継続的に更新を続けており、デプロイ方法の変更や、docker imageの配布、内部的な変更も大きい物がいくつか入っていますが、なんといっても最近ではFastRGFの導入が大きいでしょう。

今日はFastRGFについて書きます。

続きを読む