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] =</i32,>…

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

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

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

最近、rustで楽しく書いてます。 C++の古い部分、危険な部分をそぎ落とし、関数型言語の要素が入っているということで、これから新しくC++のプロジェクトを始めるならいっそrustで始めたらいいんじゃないかなと思いました。 まだrust歴二週間程度ですが感想…

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

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

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

さて、昨年行ったGTC Japan 2017では物体検出のデモを行っているブースが多く、盛り上がりを見せている分野と感じています。たしかに、物体検出のデモってすごくAI感(?)があります。 今回の記事はリアルタイム(~0.1sec)物体検出に使われる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 …

chainer GUI designerを使ってchainerのコードを生成してみる

皆さんこんばんは。Chainer Advent Calender 2017の9日目の記事です。 (Advent Calendarに不慣れで、空の記事を公開していました、すいません、) 今回の記事は拙作のGUIクライアント(非公式)でネットを構築してchainerのコードを生成してみようというのが趣…

CupyとNumpyのパフォーマンスを比較してみた

GPUで、Numpy互換のAPIで行列計算ができるCupyは活発に更新されています。 sortやinv、最近はsparseまで、numpy(とscipy)の機能の多くをカバーするようになってきて、numpyの代用になりえるものになってきたと思います。 そこでどれだけの機能がサポートされ…

ChainerWing、インストールから画像分類まで

自作したchainerGUIクライアントの日本語のマニュアルが作れてなかったので、ようやくこの記事で公開です。 サンプルプロジェクトを叩くのもいいと思います。 動かないとかあったら、コメントでも投げてください。

自作しているChainer GUIクライアントを、画像分類に対応させました

以前ブログで発表した、chainerの自作GUIクライアント、ほそぼそと開発進めています。 画像分類対応に意外とかかってしまった。 GitHub - fukatani/ChainerWing: GUI deep learning IDE based on chainer. 今までどおり、GUI上で、ドラッグアンドドロップで…

【Python】jsonで自作クラスを含んだデータをシリアライズ/デシリアライズする

オブジェクトをファイルに保存したい時、JSON便利ですよね。 パフォーマンスが欲しい時はprotobufやpickleを使いますが、そうでもない時はJSONやxml。 私的にはJSONが一番見やすいので、断然JSONを使います。 今日はJSONで自作クラスを保存したい時の話です。

rgf_python2.0.0をリリースしました

以前の紹介記事はこちら。 改良点 pip install rgf_pythonだけでインストールできます。(C++コンパイルはやってくれる) memoryオプション(メモリ節約する代わりに遅くなる)の追加 n_classes > 2の時のパラレル学習 gridsearchを並列実行した時に動かなくな…

ディープラーニングフレームワーク開発競争に見る、ライブラリ国際競争の本質

数ヶ月前、chainerがガラパゴスである、という文言をインターネットで見たchainer信者である私は衝撃だった。 だってchainerは公式ドキュメント全部英語じゃん!githubで全世界に公開してるじゃん!コードレビューだって英語でやってるじゃん!英語のgoogle …

chainerでVAT(準教師学習)

準教師学習とは一部のデータにのみ正解ラベルがつけられていて、残りはラベルがないという状態で、学習を行うことです。 ディープラーニングに必要な1クラスあたり数千のラベルを用意するのは大変なので、準教師学習の応用範囲は広いと考えています。 全ての…

零細OSSでセカンドコントリビューターを得るには

一行のPRを送ってくれる人も非常にありがたいのだが、コードを読み込めて理解して機能提案してくれる有力コントリビューターがいるとプロジェクトにも技術者としての自分にも非常にいい影響がある。 例えば、 ■コード、ドキュメントの量が増える。二人で書く…

chainerで作ったDeep Learningモデルのハイパーパラメータチューニングを自動化してみる

ディープラーニングは各層の種類、活性化層の種類、オプティマイザの種類、オプティマイザのハイパーパラメータ、などなどたくさんあり、手で最適化していくのは大変です。 そんなとき、 1. グリッドサーチ:パラメーターの候補の組み合わせパターンを全て調…

エイプリルフールなので、chainerのGUIクライアントを作った。

GitHub - fukatani/ChainerWing: GUI deep learning IDE based on chainer. ※一応動きます。 こんな感じ。 ぽちぽちやってるとニューラルネットが組みあがります。chainerベースです。 めちゃ機能が少ないですが、今後充実する予定。たぶん。

【PFIセミナーまとめ】chainerMNはなぜ速いのか、今後の提供は?

先日このグラフで世界を驚かせたchainerMNの中身の話をchainerMNによる分散学習 - YouTubeでやっています。 chainerは分散ディープラーニングフレームワークとして現在世界最速だそうです。 視聴したのでメモ。おもしろかったです。 語り手はchainerMNの作者…

numpyやchainerでのベクトル、行列、テンソルの積関連演算まとめ

年末年始にテンソル積と格闘しわけがわからなくなったのでメモ。 numpyのいわゆる積と呼ばれるAPIには、 numpy.multiply, numpy.dot, numpy.vdot, numpy.inner, numpy.cross, numpy.outer, numpy.matmul, numpy.tensordot, numpy.einsumとまあ結構たくさんあ…

C++からPythonを叩きつつ、boost.numpyを使ってC++とPython間でndarrayをやりとりする

C++メインで作られているシステムからchainerだったり、scikit-learnだったりを使って機械学習をしているPythonモジュールを呼び出しとデータをやりとりさせたいとします。 すると、C++の入力データ(n次元array)をnumpyに変換してPythonに渡し、Pythonからnu…

物体検出用の画像アノテーション正解データ生成に便利なツール

RCNN (Regional Convolutional newral networks)などの機械学習モデルを使って画像から物体検出するには、"どこ"に"なにが"あるのか、すなわちバウンディングボックスの四角の座標(x, y)および正解ラベルが画像とセットで必要となります。 10000枚単位の画像…

scikit-learn 0.20からクロスバリデーションの使い方が変更される模様

機械学習をやるときに結構良く使うところだなと思っていた、クロスバリデーションのスプリッター系モジュールのインターフェースが変わることに気づいたのでメモ。 scikit-learnの従来のクロスバリデーション関係のモジュール(sklearn.cross_vlidation)は、s…

Kaggle KernelでRegularized Greedy Forestがサポートされました

以前 【機械学習】Regularized Greedy Forest(RGF)で多クラス分類を試してみました - verilog書く人 の記事で紹介させていただいたRegularized Greedy Forest及びそのwrapperであるrgf_pythonがKaggle Kernel (旧Kaggle Scripts)でサポートされました。 Kagg…

Microsoft Azureでサインアップしてからkaggleデータで機械学習するまでのメモ

kaggleの本番コンペはデータが大きくて、AzureやAWSなどのクラウドサービスで、メモリ数十GBのモンスターマシンの力を借りたくなることがあります。 この前参加したデータ分析ハッカソンなどで、Azureの使い方をおぼえて来たのでメモ。 Azureは本家のチュー…

Travis CIでscipyを使うときの四苦八苦

Travis CIでscipyをインストールして使うとき、pipでもapt-getでもインストールできなくて、Travis CIのログがエラーだらけになったのでメモ。 調べてみると、 (1)minicondaを使う(2)addons.apt.packagesを使う の二つの選択肢がありそうでした。

scikit-learnモデルのVotingとキャッシング

先月末まで、Shelter Animal Outcomes | Kaggleに参加していました。 同僚の力も借りつつ、なんとかTOP2%に入り込む結果になりました。 トップはほぼパーフェクトに近いスコアの方もいたり、leak多すぎて実態がよくわからん、という印象。 データの前処理は…

chainerにコミットして学んだこと、学ばなきゃいけないと感じたこと

先日大型OSSへのコミットという自分の中での一つの目標を達成することができました。 といってもまだまだ変更は小規模ですが、小さなコミットでも考えさせられる事があって収穫は大きく楽しいので習慣にしたいと思ってます。 コードレビューも丁寧にやってい…

【機械学習】Regularized Greedy Forest(RGF)で多クラス分類を試してみました

RGFとは 中身 インストール 実行ファイルの入手 Perlのインストール Wrapperのインストール 多クラス分類に使ってみた 手早くチューニングしたいとき RGFとは RGFはランダムフォレストや勾配ブースティングのように多数の決定木(Forest)を使った分類/回帰の…

スタッキングのキホン、実践編

【機械学習】スタッキングのキホンを勉強したのでそのメモ - verilog書く人の続きです。 実践、モデルのバリデーションなどについてです 。

【機械学習】スタッキングのキホンを勉強したのでそのメモ

そもそもスタッキングとは 機械学習において、単一の学習器をそのまま使うのではなく、複数の学習器を組み合わせることで、予測エラーを小さくする手法をアンサンブル学習といいます。 アンサンブル(混合学習手法の)には複数の学習器の平均や多数決を取るvot…