[C++]deep learningのC++11実装を良い感じにした+解説文つけた

C++

以前CNN(畳み込みニューラルネット)の実装を公開して放置していたら、じわじわstarが溜まってきた。(みんなCaffe使ったほうがいいんじゃ…)と思いつつも、少し前からコードを整理して少し良い感じにしたので、改めて宣伝。 nyanp/tiny-cnngithub.com 良い感じ…

子供が生まれた

3月に1人目の子供が生まれた。 里帰り出産していた妻がGWに戻ってきたので、3人暮らしを始めて3週間ほど経ったところ。子供の成長はほんとうに早く、こちらが笑うとつられて笑ってくれるようになったり、怖い夢を見て泣くようになったり、眠いときに目を手で…

ドメイン駆動設計読書会、第4回のメモ

DDD

【限定募集:第1回の申込者のみ、参加登録可能】第4回ドメイン駆動設計読書会@大阪 - ドメイン駆動設計読書会@大阪 | Doorkeeper 第1章後半~第2章アタマあたりまで読んできた。この勉強会、ペースは非常にゆっくりだけど、ユビキタス言語ってどういう意味…

[C++]C++でeval(), それWandboxでできます

C++でevalできないなんて誰が言ったのか。C++,JavaScript,C#,perl,python,ruby,mruby,Erlang,haskellぜんぶC++から簡単にevalできます。 書いたもの https://github.com/nyanp/frisbee 200行弱で書けてしまった。コンパイルにはboost,実行にはcurlが必要。ev…

ドメイン駆動設計本の読書会に参加してきた

DDD

エリック・エヴァンスのDDD本、大阪で読書会が開催されているというので行ってきた。【限定募集:第1回の申込者のみ、参加登録可能】第2回ドメイン駆動設計読書会@大阪 - ドメイン駆動設計読書会@大阪 | Doorkeeper勉強会はまだ1章途中、自分で読んだのもま…

ウィンドウサイズに依存しないMin-Max Filterの実装

C++

背景 1次元のデータ列に対して、近傍Wでの最大値/最小値を求めたい。たとえばW=3で以下のようなmin3,max3を計算したい。 input: 9,2,8,3,1,3,2,0 max3: 9,8,8,3,3,3 min3: 2,2,1,1,1,0画像処理では膨張収縮、オープンクローズフィルタなんかによく使われてい…

寝付けない時にやってること

なんだか寝付けない時に昔から実践している方法がある。 全身の力を抜く 頭の中に黒い球体をイメージする 沸いてくる考え、言葉をその球体にすっと吸い込ませる。これを繰り返す ブラックホール的なものに考えを吸い込ませて、何も考えてない状態をつくる。…

「C++のためのAPIデザイン」読んだ+ちょっとした補足

C++のためのAPIデザイン作者: マーティン・レディ,Martin Reddy,三宅陽一郎,ホジソンますみ出版社/メーカー: ソフトバンククリエイティブ発売日: 2012/11/02メディア: 大型本購入: 4人 クリック: 106回この商品を含むブログ (9件) を見る どんな本か この本…

MinGWでも使える、gcovの出力をhtmlに整形するツール書いた

gcc

なにこれ gcovが出力するテキスト形式のファイル(*.gcov)をhtmlに変換して、インデックスページを付けるツールです。 nyanp/gcovh · GitHubようするに劣化lcovですが、Windows(MinGW)でも動きます。 使い方 まずgccでカバレッジを有効にしてビルドし、 gcc -…

たたみ込みニューラルネットをC++11とTBBで実装

C++

動機 PRMLと参考文献読んで、たたみ込みニューラルネットが気になった。世の中の実装を探してみたんだけど、CUDAが必要だったり実装が怪しかったりしたので、勉強がてら自分で書いてみた。 たたみ込みニューラルネットとは PRML5.5.6に出てくるアレ。1998年…

バイトニック経路版の平面巡回セールスマン問題

巡回セールスマン問題(TSP)は有名なNP完全問題だが、ユークリッド平面におけるTSPは経路がbitonic tourであるという制約をつければ動的計画法で簡単に解けるようになる。以下そのメモ。 巡回セールスマン問題 - Wikipedia bitonic tourとは bitonic tourとは…

ヘッダ1つでgoogle testっぽくテストが書けるpicotest書いた

C++

以下に修正BSDライセンスで公開しておきます:nyanp/picotest · GitHub一応VC10/VC11(Win7),gcc4.6.2(Ubuntu)で動作確認。 これは何? C++向けのユニットテスティングフレームワークです。ちょっとしたコードに対してテストを書きたいなー、でもわざわざテス…

C#でEval

C#

CSharpCodeProviderを使うとC#プログラム上でC#のコードをコンパイルして動作させる,要するにEvalみたいなことができる.で,アセンブリ参照に自分自身を指定してコンパイルすることで,Eval先から自分のpublic classを参照することができる.ということは…

doxygenのソースコードに手を加えて自前のフォーマットで簡易データ出力

C++

今更説明するまでも無いような気もするけど,doxygenは多言語に対応しているソースコードのドキュメンテーションツール.出力フォーマットはhtml,LATEX,RTF等に対応しており,コード中のコメントを元にいい感じのドキュメントを生成してくれる. しかし高機…

p-Stable LSHをC++11でさっくり実装

C++

高次元の特徴量を持ったベクトルの集合に対して,与えられたクエリベクトルに似ているものを探し出すという問題を,近傍探索とかいう.旧来のkd-treeあたりを使った探索ではなく,近似的に近いベクトルを探す近似近傍探索が流行っている(らしい).近似近傍…

名前を知るということ「コンピュータ・ジオメトリ」

最近仕事のほうでは組み込み環境で動かす画像認識のようなものをやっております.はてなインターンに参加したりもしつつ,何だかんだで大学では電気電子を中心にやっていたので,学生の気分で情報科学に入門中.入門中とはいっても業務は待ってくれないので…

VBAの個人的な嵌りどころ

必要に迫られてVBA入門中.ちょっと嵌ったところをメモ.間違っていたら誰か指摘してください… 小数→整数への暗黙変換は,最近接偶数に丸められる 小数部が0.5未満のときには切り捨て,ちょうど0.5のときは最も近い偶数に丸められ,それ以外のときには切り上…

2進数リテラルが欲しいときのまとめ

C

たとえば組み込みで,2進数っぽい文法で数値を扱いたいときがある.ドットマトリクスに顔文字アイコンを表示させるときに set_icon_data( 0x0a, // 1 1 0x0a, // 1 1 0x00, // 0x11, // 1 1 0x0e // 111 ); みたいにベタ書きなのはあまりにも悲しい.顔文字…

画像のアルファ合成

cvLoadImageは読み込む画像のアルファチャネルを無視するので,画像を重ねあわせるときに不都合.opencv内で何かしらのマスク画像を生成し,そいつを使って重ねあわせる(参考:opencv.jp - OpenCV: コピーと充填(Copying and Filling)サンプルコード -)…

メンバ関数の戻り値に対応したアニメーションを描画

オブジェクトの状態をOpenCVのウィンドウ上に色々な方法で表示させたい.たとえば, class Foo { public: int foo() const; const std::string& bar() const; double buzz() const; private: int foo; std::string bar; double buzz; }; こういうクラスが有…

最近読んでいる本

地頭の悪さに呻いてるだけでは始まらないので,きちんと地に足の付いた思考展開をするために.GCJ2011のためでもある.アルゴリズムの設計と解析手法 (アルゴリズムイントロダクション)作者: T.コルメン,R.リベスト,C.シュタイン,C.ライザーソン,Thomas H. C…

Boost.勉強会に参加してきた

資料はここに全て上がってる. Boost.勉強会 #5 名古屋 - boostjpBoostはごく一部しか使ったことがなかったけど,MSMとSpiritは使ってみたいなー.

マイコンのプログラミングでよく使うビット演算など

すべてnは0始まり,xはunsignedと仮定. nビット目が1かどうか判定 if(x & (1 << n)) ビットに1をセット x |= 0xF0; // 10100110 -> 10101111 下位nビットを1で埋めるなら,これでも. x |= (1 << n + 1) - 1; あるいはnビット目だけを1に. x |= (1 << n); …

OpenCVで遊んだ

同期とOpenCVやらARToolkitやらの環境を構築して遊んでみた.以下はWebカメラから動画を取り込み,リアルタイムに顔検出するコード.参考:カメラ利用の基本形 - OpenCV@Chihara-Lab. opencv.jp - OpenCV-1.0:CV 物体検出(Object Detection)リファレンス …

test what you fly, fly what you test

ここでは特に触れていなかったのですが,大学院を卒業し,4月から大阪で新社会人として働いています.Aerospace出身で精密機械系のとこで働くってのは,はてなインターン生的には異色なのかもしれませんね.そこらへんの「中途半端にあれこれ首突っ込んで,…

はてなダイアリ見出しのlt,gtが消える?

先日書いたこの記事.vector&lt;bool&gt;を使ってはいけない - Lagrangian point L2ページ内ではタイトルが意図したとおり表示されているけど, 記事一覧で見ると… "vectorを使ってはいけない"ひー,めっちゃ大胆なタイトルになっとる…! iPhone版,Web版と…

人工衛星を作るときに気を付けること

人工衛星の設計って,ふつうの機器の場合と何が違うの?という質問をたまにされるので,具体例を思いつくまま挙げてみます.一般論というよりも自分の経験による部分が大きいので,JAXAやNASAの衛星ではこの限りではないかも. 宇宙環境の3大強敵 宇宙で動く…

vectorを使ってはいけない

Effective STL 第18項より. vectorがSTLのコンテナとして悪い点は2つしかない.第1に,STLのコンテナではない.第2に,boolの値が格納されない.この2つを除けば,異議を唱える理由はない.(中略) vectorは疑似コンテナであり,実際にbool型の値を格納して…

湯島 タイズ

東大病院の出入り口,竜岡門からすぐにある喫茶店.静かで薄暗い店内だったので写真は自重.バーカウンターの向こうには珈琲器具がならぶ.注文すると,その器具で豆を挽き,お湯をポットからポットに3度,4度と移し替えて温度を調整し,湯滴を慎重に慎重に…

根津 芋甚

暖かくなってくると,散歩がしたくなる.東大からすぐの根津は谷中・千駄木と並んで下町風情を残す地域で,ぶらぶらするのに最適.飲食店も焼き鳥「小松」,うどん「根の津」「釜竹」,焼酎「駅馬車」など充実している.もはや文京ではないけど上野桜木まで…