[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度と移し替えて温度を調整し,湯滴を慎重に慎重に…

根津 芋甚

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

お手軽線形補間クラスの実装

うちの研究室では組み込み開発の占める割合がすごく大きいので,自分も含めてメンバはSTLだったりboostだったりC++0xだったりに馴染んでいない.それが研究室全体の生産性を妨げている部分があるなーと感じていたので,修論が終わってから研究室内でC++講座…

一人暮らしの男性はまずスパチュラを買うのがいいかも

ひとり暮らしの男性は○○を買えシリーズ。ひとり暮らしの男性に、電気フライヤーのススメ ひとり暮らしの男子にはシリコンスチーマーがぜったいにおすすめ - Future Insightスチームケース、良いですよね。ウチでもジャガイモを皮ごと蒸してピュレにしたり、…

Javaとスマホ開発の素人がAndroid SDKを触ってみた.初日.

本日,こういうイベントに参加してきました.上層テスト技術者に贈るAndroid開発入門講座 : ATND自分はJava分からないし,iPhoneユーザーだし,上層テスト技術者でもないというか社会人ですらない.全てを間違えました.なんというか申し訳ありません….先日…

msysgitでssh接続時にid_rsaのパーミッションエラー

環境再構築中に出た症状.msysgitでssh接続を試みたところ,以下のようなエラー. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

Hello, Android

「どうせ研究室にしかいない」という理由で昨年秋から自宅の固定回線を解約していましたが,修論も無事に終えて研究室に行く理由が消えた今となっては不便でしかないので,これを機にe-mobileと血の契約を交わしてきました.買ったのはこれ.テザリング公認…

LokiのGenScatterHierarchyを継承して使う

Lokiのタイプリストを使ったGenScatterHierarchyというやつは結構面白いんですが,それを継承したクラスでFieldヘルパを使おうとすると(VS2010では)コンパイルが通らない. template <class T> struct Foo { std::vector<T> value_; }; template <class TList> class Bar : public Lok</class></t></class>…

クラスの継承関係をコンパイル時に検出する

Modern C++ Designから. template<class T, class U> class Conversion { typedef char Small; class Big{ char dummy[2]; }; static Small Test(U); static Big Test(...); static T MakeT(); public: enum { exists = sizeof(Test(MakeT())) == sizeof(Small) }; }; int mai</class>…

はてなのプライベートダイアリに修論のメモを書き散らす

便利. ダイアリに修論の進捗を書いておくと いつでもどこでもアクセス・編集できる 書き散らした思考の断片をタグで整理できる([疑問][あとで考えろ][ToDo][嵌り所]…) 参考になったWeb上の資料にリンクを貼れる プライベートにしておくと メモの効率がす…

最近読んでいる本

Read or Die.最近は機械系学科所属だというのに咳を切ったようにソフトウェア関係の本を買い漁っている*1.記録のためにここ1,2か月で読んだソフトウェア周りの本まとめ. *1:逆にM2の今の時期に専門領域の教科書を買いまくっていたら,よりダメですが…

MacBookAir欲しい日記改めSpinを使ったモデル検査入門

明けましておめでとうございます.今日はMacBookが欲しいので日本語の情報がちょっと少ないので,修論関係で触っているモデル検査ツール,Spinについて軽くまとめてみます. モデル検査とは 厳密さに欠ける言い回しでアレですが,「間違いなく正しく動くソフ…

引数を参照とポインタのどちらで渡すか

C++

暫く触っていないとすぐ忘れるのでメモ.クラスを関数の引数に取るとき,参照で渡すかポインタで渡すか?結論をさっさと書くと,constなら参照,非constならポインタをデフォルトとする.constポインタはconst参照の使用が合理的でない場合に使える.非const…

.NETでVisioクローンを作りたい

C#

Visio的なUIを持ったフォームアプリケーションを作りたい,ということでOpendiagramというオープンソースの.NET用ライブラリを使ってみた. Open Diagram - Homeちょっと木構造を書くくらいなら簡単で,こんな感じに書けばVisio的なパレットの上に移動,拡大…

「地球外生命体らしき」信号はグリーゼ581由来ではなく,16700光年先の球状星団から

ホットエントリに入っていたので反応. オーストラリア・ウエストシドニー大学のラグバー博士の調査・研究により、遥か銀河の彼方から、地球外知的生命体らしき存在からのパルス信号が発信されている事が明らかとなった。地球外の文明による信号の可能性があ…

論理性と創造力に関する発表を行ってきました

と書くととっても偉そうというかアレですが,「創造性工学プロジェクト」という集中講義に参加して,その中の1プロジェクトの成果発表を任されたので,10分ほど喋ってきました.スライドを置いておきます.論理性と創造力育成プロジェクトView more presenta…

ネバダ,ロケット,宇宙兄弟

去る9月11〜20日の間,ネバダ州のブラックロックという砂漠で開催されたARLISS2010コンペに参加してきました.その時のことを少し日記にします.ちなみに途中宇宙兄弟の11巻ネタバレを含みますので注意.あとむやみに長くてごめんね. ちなみにここに載せた…

メモリパフォーマンスに関連するレジストリまとめ

「Windows 高速化」なんてワードでググるとそれっぽいサイトが大量に出てくるわけですが,「とにかくここのレジストリをこう変えると高速化!」みたいな感じで,あまりにもブラックボックス.意味もわからずレジストリをいじくり回すのはなんだか気持ち悪い…

簡単なICで90%効率のリチウムイオン充電器を構成する

リチウムイオン電池は爆発物.爆発物を安全に充電するために,ふつう充電電圧と電流をコントロールできる専用のICを使う.充電方式は以下のように分類される: CCCV充電方式 スイッチング充電方式 ダイオード整流式 同期整流式 リニア充電方式 パルス充電方式…

Make01 すべてをデータロガー化するシリアル接続用ターミナル

C#

組み込み系の開発をやっていると,今でも電源装置やマイコンやオシロとPCをシリアル接続して,データのやり取りをすることがあります. 相手機器が吐き出してくるデータは,ターミナルソフトでログを取り,それを後から欲しい形に加工したり視覚化したりする…

H8で画像認識&追尾

H8-3069で赤いものを追いかけるテスト. 使ったもの 秋月H8-3069ボード シリアルカメラモジュール COMedia C328-760(Sparkfun,サイレントシステム等で取扱い) サーボ GWS PICO(秋月で売ってる) シリアルカメラモジュールは80×64〜640×480までの解像度でJPE…

宇宙用太陽電池を衛星に貼り付ける

2か月ぶりに日記.誰向けなのか分からないマニアックな話を展開する. 宇宙用太陽電池とは 人工衛星に使う太陽電池は何よりも面積あたりの発電量(=効率)が命.よく使われるのがガリウム砒素,GaAsを使った太陽電池で,よくあるシリコン系の倍以上,30%ほ…