• さよならMac

     ぼくは有山圭二。Macユーザーだ。

     MacBook AirでMacに入門し、すぐにMacBook Proへ。以降、ずっとMacを使い続けてきた。

     iOSアプリを開発する関係でMacから離れられなかったわけじゃない。ぼくの本業はAndroidアプリの開発だ。Androidアプリの開発環境はmacOSに加えて、Windows、Linuxでも動作する。実際、Macの前はUbuntuを使っていた。

     ぼくは、Macが好きだから使っている。

     いや、好きだった。

     6年間、ぼくを公私ともに支えてくれたMacと、お別れすることにした。

  • 「さくらの高火力」でTensorFlow

    このエントリは「TensorFlow Advent Calendar」の12日目の記事です。

    これまで僕は、モデルの訓練には「GeForce GTX960」を積んだデスクトップマシンを使ってきました。

    この「GeForce GTX960」は、GPUだけあってちゃんと使えばCPUより格段に速いのですが、最高の性能というわけではありません。

    機械学習に取り組む中で、科学技術計算などを行う汎用目的(General Purpose)GPUや、複数のGPUで計算を並列化する「マルチGPU」に憧れがないと言えば嘘になります。

    しかし、GPUの1枚の価格や電気代、排熱の処理を考えると現実的でないと言う結論に落ち着いていました。

    今回、さくらインターネットの高火力コンピューティングが試用できたので、やってみたことをまとめます。

  • 矩形切り出しツール「Region Cropper」を公開しました

    時間を見つけてはTensorFlow関係のあれこれをちまちま続けています。

    先日は「なにわTECH道」で、TensorFlowを使ったイラスト顔検出について発表しました。

    データセットの作成

    これまで、機械学習に使う画像(データセット)の作成にはMacの「プレビュー」を使っていました。

    1枚ずつ画像を読み込んでクロッピング(トリミング)していたのですが、1枚の画像に複数の顔があるときや、あとで領域を微調整(特に領域を拡大)したいときが面倒でした。

    良さそうなツールがないか、少しばかり探してみたのですが、僕の思い描くような操作性のものがありませんでした。

    なければ作れば良い。

    そんなわけで、自分で画像の切り出しツールツール「Region Cropper」を開発しました。

    1人で使うのももったいないので、GitHubで公開します。

    Region Cropper

    GitHub: https://github.com/keiji/region_cropper

    set_region

    GUIのフレームワークに、使い慣れたSwingではなくJava FXを使いました。

    そのため、Java 8のUpdate40以降でしかきちんと動きません。

    以下、Region CropperのREADME.mdから。

  • 【WIP】TensorFlowのExerciseをがんばっている

     僕はいま、Google I/O 2016参加で渡米するにあたり、時差ボケ予防のために徹夜でこの記事を書いています。

    概要(忙しい人向け)

     TensorFlowのチュートリアルにある課題(エクササイズ)に挑戦した。Softmaxの適用については比較的簡単だったが、Fully connected層をLocally connected層に変える課題については難航し、解決していない。

     Locally connected層は、重み共有をしない畳み込み層である(cuda-convnet)。

    そこで、チュートリアルのモデルのFully connected層をConvolution層に置き換えたところ、学習が正常に行われなくなった。

     TensorBoardを通じてモデルの状態を確認したところ、conv2層で勾配消失が起きていることがわかった。さらに調査を続けると、conv2層のweightsの初期値がcuda-convnetに記載されている値と異なっており、修正することで正常に学習できるようになった(数値の食い違いが意図的なものかは不明だが、修正をPull Requestしている)。

     「重み共有(Shared weights/Tied weights)」をしないというLocally connectedの条件をTensorFlowでどのように実現するかは現時点でわかっていない。depthwise_conv2dについて検討したが、上手くいかないと判断している(出力フィルタの枚数を減らすことができないため)。

     エクササイズについては、今後も調査を続けていく。

  • Nexus 5Xが届いた今こそ adb tcpip が見直されるべき

    今朝、Nexus 5Xが届きました。指紋センサー搭載の憎いやつです。

    R0004876-small

    で、このNexus 5X。接続端子がUSB Type Cなんです(Nexus 6Pもですが)。

    つまり、これまで使っていたMicro USBケーブルは使えません。

    さらにNexus 5Xの場合、Type Cのケーブルしか同梱されていないのでAmazonで事前にType C-Aのケーブルを購入したりしていたわけです。

    そうは言ってもUSB Type Cは、まだまだ特殊なケーブル。何本も持ち歩くわけにはいきません。

    そこで昔懐かしのネットワーク経由のadb接続をすることにしました。

    ネットワーク経由で接続すれば、端末にUSBケーブルを繋ぐのはデバッグを始めるタイミングに限定できるのでいちいち取り出す必要がなくなります。また、複数人数で開発するときにケーブルを何本も用意しなくてもすみます(もちろん再起動したら同じ作業をする必要がありますが……)。

    ハッカソンなどのイベントでケーブルを忘れたときにも便利ですね!

  • 有山家の買い物メモ

    あけましておめでとうございます。本年もよろしくお願い致します。

    僕は年末から正月にかけて、実家に引きこもっていました。

    冬休みの自由研究

    引きこもってる間、何か出来ることはないかと考えていました。

    普段はAndroidアプリばかり作ってるし、かと言って執筆とかミスをできない仕事をする気にもなれず、なにか気軽に、新しいことをしようと思い、久しぶりにWebシステムに手を出してみました。

    そうして作ったのが「有山家の買い物メモ」です。

    Screen Shot 2014-01-13 at 12.38.00 PM

    機能

    このシステムは、事前に登録したAmazonの商品を定期的に確認。価格が変動して、かつ所定の金額以下(または以上)になれば、メールで知らせます。

    Screen Shot 2014-01-13 at 12.38.48 PM

    その名の通り、我が家の家族(主に母)に向けて作ったシステムなので、他の人が使うことを想定していませんが、せっかくなので公開します。

    もちろん、何か不都合があればすぐに公開を止めます。あっさりです。

  • 新しい"Draw 9-patch Tool"を公開しました。

    最近、「有山さんはもうMakersの方に行っちゃったんだね。Androidはもうやってないんだよね」「いやいや、もちろんやってますよ。Android」と言う会話があったので。

    Android SDKに同梱されている”Draw 9-patch Tool“を、SWTをベースにリライトして、Eclipseのプラグインにしたので公開します。

    このプラグインを使えば、開発者は、Eclipseの中だけで9-patch画像の作成や編集が出来ます。

    Screen Shot 2013-02-10 at 3.43.04 PM

    これまでは、Facebook/Twitter/Google+で、知り合い向けに公開していたのですが、もう少し公開範囲を広げることにしました。

    開発してまだ日が浅いので、Windows/Mac/Linuxの違い、Eclipseのバージョンの違いなどによって、不具合がある可能性があります。
    不具合を見つけた方は、是非ともフィードバックしてください。

    フィードバックは、Facebook/Twitter/Google+、その他どんな手段でも構いません。宜しくお願いいたします。

    ダウンロード&利用方法

    draw9patch tool for Eclipse plugin (MD5: 09b952ceea11d9d59984ad5d004b422d)

    https://github.com/keiji/draw9patch2/blob/master/bin/Draw9PatchPlugin.zip

    zipを展開して、pluginsの中の”Draw9PatchEditor_*.jar”を、お使いのEclipseのpluginsディレクトリにコピーして下さい(Eclipseの再起動が必要です)。

    Eclipseの再起動後、パッケージエクスプローラーから、pngファイル(_e.g. “res/drawable-hdpi/iclauncher.png”)をダブルクリックすると、”Draw 9-patch Tool”が起動します。

    Screen Shot 2013-02-10 at 4.00.32 PM
    この画像中のモザイクは、
    Pixelmatorで処理しました。
  • 雨の日のArduino – UNO

    はじめに

    僕の会社が入居しているビルは、主要道路に面している、いわゆる表店(おもてだな)にあります。

    また、駅からもそれほど離れておらず、比較的良い立地と言えるでしょう。

    僕はここを気に入っていて、かれこれ6年程、ここでお仕事をしているのですが、もちろん、不満がないわけではありません。今回はそんな話です。