• 矩形切り出しツール「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から。

  • 【続】技術書典に参加したら出版社から販売することになった

    先月25日の「技術書典」で頒布した「TensorFlowはじめました」は現在、Amazonにて予約を受付けています

    Next Publishing版表紙

    有山 圭二 の TensorFlowはじめました 実践!最新Googleマシンラーニング (NextPublishing) を Amazon でチェック!

    タイトル TensorFlowはじめました 実践!最新Googleマシンラーニング
    判型 A5 → B5
    ページ 64ページ
    価格 1,620円(Print On Demand), 1,080円(電子書籍版)
    発行 インプレスR&D

    変更点

    これまでお知らせしていた内容からの大きな変更点に『判型』があります。

    前回はA5とお伝えしていたのですが、A5では横幅が足りずプログラムリストが読みにくくなってしまうため、同人誌版と同じB5版に変更しました。

    また、Kindleをはじめとする電子書籍(EPUB)版は固定レイアウトではなくリフローでの提供になります。

    そのため、お使いになる端末や、設定する文字の大きさによっては読みにくくなる場合がありますのでご注意ください。

  • 技術書典に参加したら出版社から販売することになった

    このエントリには続報があります。

    再販情報

    技術書典で頒布した「TensorFlowはじめました」について、このたび、インプレスR&D社さんからPOD(Print On Demand)と電子書籍(リフロー)として販売できる運びとなりました。

    tensorflow_ird

    タイトル TensorFlowはじめました 実践!最新Googleマシンラーニング
    判型 A5
    形式 POD, 電子書籍(リフロー)
    発行 インプレスR&D

    POD(Print On Demand)または電子書籍での販売になります。一般書店では手に入りませんのでご注意ください。

    また、具体的なページ数や販売価格などは現在調整中です。

    今月中に予約が開始できるよう進めていますので、続報をお待ちください。


    以下、6月25日に秋葉原で開催された「技術書典」の感想エントリです。

  • 技術書典でTensorFlowの本を頒布します

    このエントリには続報があります。

    6月25日に秋葉原通運会館にて開催される「技術書典」に、サークル「めがねをかけるんだ」として参加させていただくことになりました。

    「めがねをかけるんだ」では、最近取り組んでいるTensorFlowに関する冊子を頒布いたします。

    tf-book

    タイトル TensorFlowはじめました CIFAR-10奮闘記
    ページ数 64p(本文墨刷)
    頒布価格 1,000円
    発行 個人サークル「めがねをかけるんだ」
  • 【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について検討したが、上手くいかないと判断している(出力フィルタの枚数を減らすことができないため)。

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

  • TensorFlowでGPUが使えない

    あわせて読みたい

    概要

     GPUマシンでTensorFlowを実行する際、CUDAもcuDNNも正常にセットアップできているのに、TensorFlowがGPUを認識しない(CUDA_ERROR_NO_DEVICENo GPU devices available on machine.が表示される)場合、正しいディスプレイカード・ドライバがインストールされていない可能性があります。

     筆者の環境では、既存のドライバーをアンインストール(sudo apt-get remove –purge nvidia*)して、NVIDIAのサイトからドライバーをダウンロード・インストールすることでGPUを認識するようになりました。