stMind

about Tech, Computer vision and Machine learning

TensorFlowのRun a TensorFlow demo modelでつまずかない

UdacityでTensorFlowを使ったディープラーニングの講義が始まりましたね。

www.udacity.com

遅ればせながらTensorFlowをインストールすることにしました。pipでインストールは問題なかったですが、手書き文字認識のデモを実行してみると、タイムアウトになってしまいました。GithubのIssuesによると、Yann Lecun教授の個人ページなので、アクセスしにくい状況になっているのではないかということでした。

github.com

同じIssuesにアーカイブサイトのURLが貼ってあって、convolutional.pyのSOURCE_URLをそちらに変えて再度実行してみると、デモが動きました!

SOURCE_URL = 'https://web.archive.org/web/20160117040036/http://yann.lecun.com/exdb/mnist/'

もし、同じ状況になって困っている人がいたら参考にしていただければ。

2016年にやりたいこと

気力と体力の充実

年齢を重ねるにつれて、心と体の充実があらゆる活動の基盤になっていることを痛感します。ランニングを習慣化したことで体調をコントロールできるようになったので、2016年も続けていきたい。運動不足で悩んでいる人には是非お勧めしたい。ランニング、いいですよ!

Taking action
  • 東京マラソン完走!
    10倍の競争率を勝ち抜いて初東京マラソンエントリー!フルマラソン2回目になるけど、前回は5時間40分で、完走はしたけど走りきることができなかったので、目標タイム5時間で完走できるように頑張りたい!!

  • 料理をちゃんとできるようになってレパートリーを増やす!
    料理をしてると言っても、困ったら炒めるとか、ピーマン買って入れるだけみたいな〇〇Doを使うだけでしかないのが今。確かに手軽で美味しいんだけど、自分の好みの味とは微妙に違うので、全行程を自分仕様で作るようにしたい!あと、炒め物だけじゃなくて、鍋とか煮物とかも作れるようにしたい。

  • ジムに通う or 社会人サッカーチームを探して参加する

快適環境構築

狭い部屋に5年以上(多分もっと長い)も住んでいると余計なものが増えてきたので、年末にかけて随分と処分したんだけど、まだまだ物が多すぎるので押入れの中を中心に処分していきたい。今は使えなくなったVHSビデオデッキとかアナログDVDレコーダーとかLinkPlayerを捨てれば結構スペースできそう...

Taking action
  • 押入れの中の不要品を処分して部屋のスペースを確保する
    これまでの大処分で自転車を置くスペースができたので、もう一つ小さなソファを置くスペースを確保して、ソファでプログラミングしたい!
  • 引越し!
    今住んでるところは日当たりも良くて角部屋で、場所も賑やかな場所からすぐの静かな地域にあってすごく気に入ってるんだけど(だから5年以上も住んでる)、唯一の欠点は部屋が狭すぎること。頑張って工夫しても、デスクは置けなかったりする。もっと広いところで、会社にももう少し近いところに引越ししたい!

エンジョイ習慣

昨年、毎日プログラミングの習慣化を目指してGithubのLongest streaksを更新するというのをやり始めて、ようやく86日まで来たので100日、200日と続けていきたい。

f:id:satojkovic:20160104234236p:plain

Taking action
  • 機械学習もしくはコンピュータビジョン系のアルゴリズムの自前実装
  • オープンソースへのコントリビュート
    すごーく前に二つほどPRを取り入れてもらう経験をしたけれど、同じようなコードでの貢献か、コードだけじゃなくても翻訳とかできることがあればやりたい
  • 英語の読み書き
    読む方は英語ブログ、英語ニュース、英語文献を毎日1件以上は読みたい。英語のライティングは、github.ioをhugoで作ったので最初は月一くらいで何か書いてきたい。

Misc.

  • 絵が上手くなりたい
  • 字が上手くなりたい
  • アーセナルの12年ぶりの優勝を現地で見たい
    優勝はまだ決まってないけど、可能性は日に日に高まっている。次はいつになるかわからないし(笑)、できれば現地で見たい。15-16の最後のホームゲームは5月15日。チケットを抑えるために、レッドメンバーになるかなぁ。

最後に

全てできたら素晴らしいけれど、あくまでもトライすることだと思っているので、できないものもあるはずだけど、それは上手くいかないものを見つけたと思って肩の力を抜いてやっていきたい。2016年もよろしくお願いします。

Stand on the words of giants

「世界」を変えろ!  急成長するスタートアップの秘訣

「世界」を変えろ! 急成長するスタートアップの秘訣

色々なスタートアップの創業者達へのインタビュー本。日本でも馴染みのあるFlickrやLinkedinなどは創業者の名前も知っていましたが、それ以外はサービス名自体が初めて聞いたような人ばかりで、少々イメージがしづらい所があります。 それでも、何かを成し遂げた人たちの言葉は、考え方の新しい指針になるような示唆に富んでいると思います。幾つかを紹介すると、

アイデアに取り掛かるのに一番良いタイミングは、その正しさが自明ではないときです。 リード・ホフマン, Linkedin 創業者  
失敗とは、取り組むべき問題を発見する過程の一部です。 
カテリーナ・フェイク, Flickr 創業者
古い間違いではなく、新しい間違いを犯すこと。 
アデオ, ザ・ファンデッド(TheFunded.com) 創業者

読んでみると、何かしら気づきがあるかも?

git add --patchをy or nキーのみで決定する設定

Stackoverflow demo at MIX09

stackoverflowは読んでるだけでも色々発見があります。

git add -pしたときにy or nキーのみで、Enterキーなしで決定できるようになる設定です。

$ git config --global interactive.singleKey true

「駐輪場」を検索する

no bikers

クロスバイクを初めて手に入れて、時間があったら自転車に乗って出かけたいと思ってます。そこで困ること第一位は、駐輪場。じゃあってことで、Googleで「駐輪場」と検索してみると近くの駐輪場がいくつか出てきます。よしっと思って行ってみると満車… しょうがないのでもう一つ別の場所に行ってみると、こちらも満車… また別の所に行ってみると平日のみの営業とか、既にサービス終了してるとか、一発で探し当てるのはなかなかハードです。

考えてみると、駐輪場の場所だけでは情報としては不十分で、空いてるかどうかを知りたいわけです。リアルタイムに空き状況を計測して利用者に提示する駐車ガイダンスシステム(Parking Guidance System)は車向けで既に使われてますが、自転車向けにもこういうのが欲しいですね。

海外ではどうだろうと思って調べてみると、ユトレヒトで世界で初めてサービスを開始したというニュースを見つけました。

Bicycle Parking Guidance System in Utrecht | BICYCLE DUTCH

P-route bicycleというシステムで、駐輪場に設置されたセンサーで空き数を計測し、ネットワークを経由して市内各所にあるデジタル掲示板に計測された空き数をリアルタイムに表示するシステムです。空き状況がリアルタイムでわかるし、駐輪場まで行かなくても空きが確認できるので、ほんとに便利そうです。日本にも導入されないかな。

kaggleのデータファイルをwgetで並列ダウンロード

kaggleのデータファイルをwgetで並列ダウンロードする方法を調べた。スクリプトを書いたりすることなく、コマンドラインで完結するのでお手軽。

1. pupでリンクアドレスを取得する

chromeデベロッパーツール等で確認、CSSセレクタを使ってアドレスを取り出す。baseのURLはawkで付け足した。

$ curl -s https://www.kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/data | pup 'tbody tr td a attr{href}' | awk '{print "https://kaggle.com" $1}'

結果はこんな感じ。

https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/dev_train_basic.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/cookie_all_basic.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/ipagg_all.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/dev_test_basic.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/property_category.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/sampleSubmission.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/id_all_ip.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/id_all_property.csv.zip
https://kaggle.com/c/icdm-2015-drawbridge-cross-device-connections/download/database.sqlite.zip

リダイレクトしてurls.txtに保存する。

2. ブラウザで手作業

ここは手作業で行う。
ompetition rulesを確認するのと、wgetで使うためのcookieを保存する。cookiechromeのextensionを使う。

こちらも参考に。

3. xargsとwgetで並列ダウンロード

xargsとwgetを合わせて使うと並列ダウンロードが出来る!

wgetのオプションで手作業では保存したcookies.txtを指定してあげる。

$ xargs -P 20 -n 1 wget --load-cookies cookies.txt < urls.txt

後はダウンロードが完了するのを待つだけ。

sampleSubmission.csv.zip        100%[======================================================>] 126.38K   336KB/s   in 0.4s   

2015-06-28 22:11:23 (336 KB/s) - 'sampleSubmission.csv.zip' saved [129409/129409]

dev_test_basic.csv.zip          100%[======================================================>] 713.96K   404KB/s   in 1.8s   

2015-06-28 22:11:25 (404 KB/s) - 'dev_test_basic.csv.zip' saved [731093/731093]

dev_train_basic.csv.zip         100%[======================================================>]   2.14M   473KB/s   in 4.6s   

2015-06-28 22:11:28 (473 KB/s) - 'dev_train_basic.csv.zip' saved [2248158/2248158]

property_category.csv.zip       100%[======================================================>]   2.96M   374KB/s   in 8.1s   s

2015-06-28 22:11:31 (376 KB/s) - 'property_category.csv.zip' saved [3109199/3109199]

cookie_all_basic.csv.zip        100%[======================================================>]  34.08M   848KB/s   in 40s    s

2015-06-28 22:12:03 (863 KB/s) - 'cookie_all_basic.csv.zip' saved [35739382/35739382]

ipagg_all.csv.zip               100%[======================================================>] 112.23M  1.05MB/s   in 2m 34s s

2015-06-28 22:13:57 (747 KB/s) - 'ipagg_all.csv.zip' saved [117684953/117684953]

id_all_ip.csv.zip               100%[======================================================>] 225.42M   876KB/s   in 3m 55s s

database.sqlite.zip               4%[=>                                                     ] 162.76M   738KB/s   eta 78m 35s2015-06-28 22:15:18 (982 KB/s) - 'id_all_ip.csv.zip' saved [236366458/236366458]

id_all_property.csv.zip         100%[======================================================>] 356.89M  1.53MB/s   in 4m 53s s

2015-06-28 22:16:16 (1.22 MB/s) - 'id_all_property.csv.zip' saved [374222833/374222833]

database.sqlite.zip             100%[======================================================>]   3.35G  1.59MB/s   in 39m 2s s
2015-06-28 22:50:25 (1.46 MB/s) - 'database.sqlite.zip' saved [3594725459/3594725459]

「The Platform : IT企業はなぜ世界を変えるのか」を読んだ

ザ・プラットフォーム:IT企業はなぜ世界を変えるのか?

ザ・プラットフォーム:IT企業はなぜ世界を変えるのか?

いつも思うことだけど、GoogleAppleFacebookTwitterがない世界を想像するのがもはや困難になってしまった位に生活の基盤になった。また、日本ではまだ定着したとは言えないけれど、AirbnbやUberなどのSharingサービスや、CourseraなどのMOOCも徐々に基盤になりつつある。日本ということで考えると、DeNAGREEなどのソーシャルゲームCookpadなどの料理検索、LINEやInstagramなどのコミュニケーションサービスもすでに生活の基盤になってる。 さてこれから先はどんなサービスが基盤になるのか?個人的には、ARやVRが情報可視化の基盤として定着するのではないかなと思ってる。使い勝手の良いウェアラブルHWが出ればという条件があるけれど。