US Pycon2019 参加レポート

この度、us.pycon 2019に参加する機会があったのでそれについてのレポートです。基本的には英語力、どのくらい理解できたか、自分の気持などあくまで自分用です。pyconに参加するまでの経緯などは別記事で書いたのでいかにリンクを貼り付けておきます。

とある情報工学科生のus pycon参加録 - 出発前夜

4/30

観光とか様子見とかのために始まる前に現地入りしてました。 amtrakでbostonから来たのでclevelandには朝の3時くらいについたのですが、ターミナルで寝ていたら中国人の人に話しかけられて朝ご飯おごってもらって、Uberで最初のホテルまで送ってもらいました。本当にありがたい、、、、chicagoに住んでいるらしくて、観光地やおすすめのご飯から夜道の歩き方までいろんなことを教えてもらいました。ちなみにこの旅行のときには時間がなくて観光できなかったのですが、近くにamishと呼ばれる人たちの集落を教えてもらいました。今度アメリカ来るときに余裕があったら観光したい。

f:id:sakakendo0321:20190608221343p:plain

ちなみにこれがclevelandで一番?目立つ建物で1920~1930年代の超高層ビルブームのときに建てられて、完成時には世界で二番目に高い建物だったそうです。

5/1

us pyconの大まかなイベントは一コマ3時間のtutorial、1時間程度のtalk、development sprint,LT,食事会などがありました。tutorialやtalkは10個ほど受けたのでそのあたりで気になったことなどをここに記しておきたいと思います。 ちなみにpyconに登録するとメールが来て、スポンサーのブログや説明がいくつか流れてきたりしました。

The Pycon Blog

come meet microsoft at pycon 2019

Analyzing Census Data with Pandas

アメリカの国勢調査のデータをpandasを用いてヴィジュアライズ等をするチュートリアル。いまいち英語が理解できなかったので凄みも理解できなかった。jupyter labっていうのを使っていて、これはいいなと思った。政府がデータを公開しているホームページを見たのだけ率直にどかなり充実しているなと感じた。

5/2

Dog Classification using TensorFlow, Azure, and Visual Studio Code

azure mlとの出会い。サーバーやデータなどをpythonのcodeから扱えることがかなりいいと思った。

Spital Analysis Meets Data Science

個人的にはこのプレゼンが一番好きだったと思う。正直なところ技術的な詳細は全然理解できなかったけど、notebook上でいろいろなデモが走っていて、かっこよかったです。

Google Cloud Platform for Pythonistas

5/3

Terrain, Art, Python and LiDAR

pythonを用いた、標高情報があるデータの扱いや、そこから3Dプリンタに出力するという話だった。純粋に趣味として楽しそうだった。

Migrating Pinterest from Python2 to Python3

pinterestでのpythonの移行の話だった。print()がpython2にはないのでfutureからimportするといったことは割と有名な話で知っていたのだが、演算の例外の吐き方や結果に違いがあるということを知った。

Programmatic Notebooks wit papermill

netlifyの社員らしかった。netlifyは結構テックな企業で、いわゆる機械学習でユーザーデータを学習してレコメンドしているなんていう噂のレベルだけで知っていた。実際に話を聞いてみたところnteractに始まり、かなりのjupyter notebookに関するソフトウェアを出していることを聞いて関心を持った。このプレゼンでは今までのnotebookのバージョン管理やテストができないことといった、問題点を解決するためにpapermilというソフトウェアを出しているという話をしていた。自分もnotebookでコードを書いたときに不規則に一つの変数に上書きしていて、セッションが切れたときにどのセルを実行したら正しい実行結果が出るのかわからなくなってしまうと行った課題はあると思っていたので、これはぜひ使いたいと思った。

to GIL or not to GIL:the Future of Multi-Core (c )Python

Understanding Python's Debugging Internals

How to JIT: Writing a Python JIT from scratch in pure Python

jitを自分で実装するためにvirtual machineの話だったと思う。

Rock & Roll Hall of Frame and Museum Evening Dinner

pyconが主催している食事会に参加しました。場所は近くの博物館で机やらを拡げて、バイキング形式のような形で食事を取りました。自分の見た感じ人数は100人ほどいて円卓ひとつあたり10人くらいのようなまとまりでそれぞれ食事していました。英語がわからなかったのでさっぱり話にはついていけなかったのですが、同じテーブルにfacebookの社員がいたり、どこかのニュースサイトの社員がいて、内部のデータの保持が〜みたいな話をしていたのだと思います。ものすごいビッグネームな会社が、内部でどのような処理をしているかみたいな話をものすごい近くでしているのがとても新鮮で、これが本場なんだなぁと感じたりしました。

5/4

ルームメイトがいっぱい靴下とか集めているのに刺激されてこの日はひたすらブースに立ってる人に話しかけて、どんな会社なのかとかどんな技術使ってるのかとか頑張っていろいろ話を聞いて回ってました。このときは用意した質問で話をつなげているのが精一杯で、全然深い話ができなかったのが悔やまれます。ちなみにどこの企業も太っ腹でシールだけでなく、T-Shirtsや靴下、ハンドスピナーや飲み物のボトルを配っている会社がありました。ブースの中でプレゼンやプロダクトの使い方の説明をしているところもあって、マイクロソフトgithubのhands onを実際にやると追加でグッズをもらえるなんてことをやっていました。結構充実してたのでそのhands onで配っていたリンクをいかに貼っておきます。

https://github.com/Azure-Samples/azure-python-labs

5/5

Job fair, Poster

メインのカンファレンス会場でjob fairとposterの展示があったので一日中それを回っていました。ここでインターンや仕事の雰囲気を掴んだり情報収集をしるのがこの旅行の目的の一つだったのですが、結果としてはいくつかの会社から連絡先をもらったり、求人票をもらうことができてよかったです。実際に話したところ、自分のバックグランドなどのことについて聞かれたので正直に学校でコンピューターサイエンスを学んでいることやアルバイト、趣味でpythonを使った経験を話したら結構いいねみたいなリアクションがもらえました。あまり学齢は関係ないからとりあえずレジュメ提出してよみたいな感じのことを言われました。インターンもいくつかやっているとは聞いたのですが、アメリカはパフォーマンスが悪いとすぐ首をきられるという話や、参加してみてあまり英語力にも自信がなかったため一旦諦めてもっと会話力などを鍛えるなりしばらく様子を見る必要があるかなと言う感じでした。 親からインドの人はバイタリティがすごいなんて話を聞いていてなんのこっちゃわからなかったのですが、実際に俺はアメリカでなんとか就職できる道を探しているんだっていうと、ものすごい熱量で懇切丁寧に教えてくれる人はだいたいインドから来てる人でした。

この日ポスターセッションを見て回っているguidoさんがいたのでありがたいことに一緒に写真をとってもらえました。

5/6

Development sprints

pyconは世界中のpythonオープンソースソフトウェアの開発者が一堂に会して開発できるってところも重視していてこのようなイベントがあるみたいです。自分はmypyにcontributeしたいなと思っていたのですが、ブースを回ったりしたときの感触として全然ネイティブの英語力についていけないなと思って諦めました。ゆくゆくは本場であり、ソフトウェアが流れてくるもとのアメリカで開発ができるようにもっと開発のための英語がスムーズに話せるようになりたいと思いました。

pyconであった日本人の方と一緒に食事に行ってごちそうしてもらいました。自分以外にも日本人がいたのはかなり心強くて、ありがたかったです。

5/7

このあたりから(軽く英語力で挫折したのもあって)近くのcleveland university circleとか近くの観光をしました。 徒歩、バス圏内では湖、博物館、ボタニカルガーデン、カジノがあったし、建築物も一つ一つが西欧式で歴史を感じるかっこいいものが多く、散策には退屈しなかったです。

5/10

2019年アメリカ旅 第三章 ナイアガラへの旅立ちです。 いろんなことがあったのでまたブログにすると思います。  

費用

項目 金額 ($)
Student Regular Rate 125.00
Tutorial 150.00
食事会 45.00
T-Shirts 10.00
-- --
合計 330.00

朝、昼にご飯が提供されてコーヒーもスポンサー提供されていたのでだいぶそのあたりのお金は浮きました。それ以外は宿泊費、観光などにお金を使いました。自分が泊まったホテルはコインラウンドリーがなく、公衆のコインラウンドリーも近くで見つからなかったのでホテルのクリーニングに出す羽目になりかなりそれが高く付きました。個人差はあると思いますが、日本に比べると比較的食事にかかるお金は高くついたと思います。だいたいsubwayで昼食を食べると$10、Dunkin' Donutsでコーヒーとドーナッツを2,3個買うと$7~8くらいだったと思います。

グッズ、戦利品

boothでステッカーやTシャツ、靴下、ボトルとかを配っているところがあったのでひたすら気になったところに話しかけて集めました。ほかにはO'reillyでは小さな本を2冊もらったり、googleではドロイド君のちいさな人形と小さなバッグをもらったりしました。PyCharmやanvilというサービスは無料体験用のクレジットを配っていました。

シェアルーム

pyconのホームページでシェアルームメイトの募集があって、面白そうだったので申し込みました。幸運なことに相手も同じくらいの年齢で良かったです。なんか就職や大学の話を聞いたり、いろいろブースの回り方とかアドバイスもらったりしてとても優しくて、自分のつたない英語にも付き合ってくれて本当にありがたくて嬉しかったです。

総括・感想

やはり本場アメリカのカンファレンスということだけあって、食事の時にテーブルが同じだった人がフェイスブック勤務だったり、ブースで話していた人が名刺を見てみたらシリコンバレーでCEOをやってる人だったりして、とても刺激になりました。なんか食事の時に内部で情報をどう処理しているかみたいな話をしていたと思うのですが、英語が理解できなくてさっぱり吸収できなかったのでとてももったいない思いをしました。 やっぱり英語が使えなくても日常生活程度のことはなんとかなったけどやっぱりいっぱい喋れて理解できたほうが得られる情報量は多いなという感じはしたし、自分の今まで全く意識してこなかった英語の世界に実際に触れて、思った以上にそこの世界の広さを感じた。今のまま日本語だけで情報収集するのでは得られる情報量が圧倒的に少ないから、自分のペースでいいから少しずつ英語のテックニュースや、youtubeから吸収したり会話によって世界最先端のソフトウェアが生まれているところでどのようなことが起きているのかもっと追えるようになりたいなと思いました。来年のpyconの予定はもう公表されているみたいで、開催地はピッツバーグだそうです。自分は就職しているのでまだ参加するかはわからないですが、pythonにまだかかわれていて余裕があれば参加したいです。 https://www.python.org/psf/records/board/minutes/2017-07-25/#pycon-2020-21-pittsburgh-pa ブログに書いてみると、ものすごいお金かけて海外までカンファレンスに参加したのにさっぱり英語が理解できなくて、とりあえずフィーリングで必死で頑張ってみたみたいな感じでなんとも情けないなぁという感じがします。それでもなんとなく海外の熱を感じたり、実際に働いている人を感じたりして、自分もソフトウェアエンジニアとして働いている以上、ソフトウェアや文化が生まれる源流となる場所に関わりたいという思いがあるので、ここでのつながりや情報を大事にしてもっとチャンスを拡げていきたいです。

写真

pycon flickr

観光気分だったので、いっぱい写真撮りました。clevelandは重厚で歴史的な建築とかがとてもかっこよかったです。会場の雰囲気とかはtwitterinstagramで#pyconで検索するといい写真いっぱい出てくると思います。

とある情報工学科生のus pycon参加録 - 出発前夜

この度ゴールデンウィークアメリカで開催されるpycon 2019に参加することになりました。 そこで前々からアメリカに観光で訪れたい場所が何箇所かあったので2,3週間くらい確保してアメリカの気になってた場所に観光することにしたので、自分の旅行の指針とか考えとかを出発前夜のノリで書いておきます。(実際には出発前夜はドタバタしていたのでボストンで書いているのですが、、、)

見ておきたいもの、重きをおいているもの

  • 歴史

自分は歴史をたどったり重みを感じながら観光したり流れを感じながら自分はどこにいるのだろうと考えるのが好きなのですが、日本の内側からしか見たことがなかったので、海外からはどう見えているのかが気になりました。 国内を旅行するときには何となく神道や禅と言った落ち着いていてシンプルな思想が好きで神社を巡ったりするのが好きです。あとは城や武士道が純粋にかっこいいなと感じるのですが、そのあたりの感性の相違だとかが自分とアメリカだと似ているのか、どのあたりが興味を持たれているのかなんてことを知れたらいいなと考えています。

  • 自然

やはり日本で旅行をしていて松や桜などの美しさを感じるのですが、アメリカだとどのような樹木が生えていたりだとか、どのような景観をなしているかに興味があったので、アメリカらしい壮大な自然や国立公園を感覚として一度感じたいと思っています。

  • 大学

これから実際に社会に出るに際して海外の大学にはどのようなな人がいて、どのようなことをして、どのようなことを考えていて、どのような環境で勉強をしているかなどを知っておきたいなと思ったので大学のキャンパスの見学をしたいなと考えています。

  • 交流(エンジニア、非エンジニアかかわらず)

pyconだけでなくmeetup.comやfacebookなどを活用して地元のmeetupや交流の場に参加して話をしたりつながりを持てたら嬉しいなと考えています。 願わくは仕事がほしいけど、学位がないと難しいと言われているので、できれば長期インターンに参加するなどの話があっても嬉しいですが、それも厳しい気はするのでせめてどのくらい技術力のギャップがあって、どのようなレベル、人材が求められているのかなんてことを把握しておきたいです。

あとは実際に海外で生活をしてみることで実際にどのようなサービスやアプリなどが使われているかなどを多く知って今後のweb界隈やテック界隈の情勢を把握したり思索に励むための材料にしたいと考えています。

スケジュール

日付 滞在地 主な予定
4/24 boston boston到着
4/25 boston 未定
4/26 boston 未定
4/27 boston 未定
4/28 boston 未定
4/29 boston 未定
4/30 cleveland 未定
5/1 cleveland pycon
5/2 cleveland pycon
5/3 cleveland pycon
5/4 cleveland pycon
5/5 cleveland |pycon
5/6 cleveland pycon
5/7 cleveland pycon
5/8 cleveland pycon
5/9 cleveland pycon
5/10 cleveland pycon
5/11 niagara 未定
5/12 niagara 未定
5/13 niagara 未定
5/14 boston 帰国

主に訪れたいと考えている場所

pyconが東側だったということもあるのですが、エンジニアといえばシリコンバレーというイメージがつきまとっていたためあえて観光の拠点は東側にしました。日本からの直行便が出ていてclevelandに近いところだとニューヨークやシカゴも選択肢に遭ったのですが、大学や美術館が多かったり、なんとなくイギリスからの移民が最初に開拓舌土地でアメリカの歴史が深いイメージがあったのでそこからボストンに絞り込みました。 boston, niagaraの予定はほとんど未定になっていますが、実際にはMIT,Harvardなどの大学巡り、freedom trailの散策や街歩き、ミートアップ、ナイアガラの滝や周辺の自然の探索とかをしようと思っています。あとはpyconではLTのような登壇イベントだけでなく、みんなで湖畔散策したり食事会、ポスター展示などがあるので英語力で挫折していないうちは積極的に交流していきたいなと考えています。

今はボストンのホテルで記事を書いているのですが、治安もよく、とても居心地も良いので、布教も兼ねて今後も一段落するたびに追加で記事を書いて記録していきたいと考えています。 以上、出発前夜(に書きたかったこと)編でした。

北海道 自転車旅行

確か2年くらい前に北海道旅行に自転車旅行をしたときの記録。確か行ったときはまだブログに残すという文化がなかったので残していなかったが今年は時間もありそうだしリベンジしたいという気持ちも込めてここに記しておく。

計画当初はとしては海、山、湖が見たいという思いが強く支笏湖や小樽、留萌の方を通って稚内まで行きたかったのだが、時間や予算も限られていたので結果として後述するような内陸部を走るルートになった。多少思ってたよりコンパクトになりすぎた感じもしたが、それでも広大で豊かな北海道らしさを感じることができてとても感慨を受けた。特に富良野、美瑛あたりでは丘の起伏がとても気持ちよく途中のフラワーランドでは長めが良いところでのほほんと落ち着いた雰囲気でじゃがバターを食べたことは今になってもとっさに思い出して感慨に浸ってしまうことがある

それでは画像や、stravaのログとともに述懐していこうと思う

できる限り荷物は小さくして課題は気合で解決していく短期決戦スタイルを意識したので後ろのバッグ2つに収まっている。テント用のマットのバランスが悪くパタパタした。

f:id:sakakendo0321:20190317231742p:plain

できる限り荷物は小さくして課題は気合で解決していく短期決戦スタイルを意識したので後ろのバッグ2つに収まっている。テント用のマットのバランスが悪くパタパタした。

f:id:sakakendo0321:20190317233218p:plain

輪講してるときの様子、荷物がひたすらおもすぎた。ただでさえ重い自転車を掛けてひたすら持ちにくいバッグを左右の手で持つ必要があった。つらすぎた。今度は北海道まで荷物は先に宅配するみたいなお金で解決するテクニックを使っていきたいとおもったが、まぁ一応まだ若いうちだしもう一回くらいやるかという気持ちも出てきてしまっている。

  • 8/25 自宅〜フェリー乗船

f:id:sakakendo0321:20190317234102p:plain

大洗まで30分ぐらいのところだと思うのだが、すでに広大な大地を感じて感動してしまった。

  • 8/26 フェリー〜恵庭

f:id:sakakendo0321:20190317235147p:plain

フェリーから見る日の出はどんなもんだろうと思ってわざわざ徹夜してたのに雲で視界が全然開けていなかった

f:id:sakakendo0321:20190317235258p:plain

やっぱり海はデカかった。これがいいたかった。

f:id:sakakendo0321:20190317235456p:plain

よい、こんなことがやりたかった

この日は朝、北海道に上陸してとりあえず北上しようと思ったので、とりあえずちょうど良さそうなキャンプ場を検索して走った。空港があったりで、北海道にしてはそれなりに人がまだ多そうな地域ではあった。

f:id:sakakendo0321:20190317235747p:plain

日の出とともに目が冷めた。感動した。

f:id:sakakendo0321:20190317235906p:plain

日本で一番長い直線道を走ってみた。思っていたより住宅街っぽい地域で期待してた眺めの良さは正直あまり感じなかった。

f:id:sakakendo0321:20190318000113p:plain

一番食べたかったものの一つ。一人だととりあえず肉を載せて、載せ終わる頃には最初に載せた肉は焦げ始めてるし、焦げた肉をお皿に移して、そしたらまた肉を載せてでひたすら忙しかった。カオスだった。あんまりいい写真も取れなかった。でもとにかくジューシーだしで美味しかった。今度は誰かと一緒に食べにきたい。

f:id:sakakendo0321:20190318000420p:plain

滝川から北に少し行ったところだと思われる。いわゆる北海道っぽさが出てきた

f:id:sakakendo0321:20190318000644p:plain

カムイの杜公園。休憩してたときに地元に住んでるらしい人におすすめしてもらったところ。よいところだった。キャンプ場としても広かったし、きれいなトイレと水場があって、遊具があって子供が楽しそうだった。

f:id:sakakendo0321:20190318000916p:plain

キャンプ場から近くの温泉にちょっくら行こうと思って自転車に乗っていたら出くわした。 こんなに近い距離感で鹿がいるなんて。やっぱり北海道はすごい。

f:id:sakakendo0321:20190318001213p:plain

食った。おいしかった。

富良野あたりの方に行きたかったので、とりあえず恵庭からラーメンとかご飯がありそうな旭川あたりまで北上した。 北広島あたりに向かっているときに足や腹部にしびれをかんじた。この朝近くにコンビニがなかったのでカバンに積んであったパンを2つくらいしか食べなかったのが問題らしくハンガーノックというらしい。人生で初めて引っかかった。近くのコンビニも数十キロ(正確な時間は覚えてないけど30分以上はかかった気がする)あり救急車を本格的に意識した。カバンに一応ストックしてあったブラックサンダーこんにゃくゼリーに命を救われた。旭川は食べるところも多く、人も多かったのでなんとなく安心感があった。駅の周りは直線的で平坦だったがキャンプ場に行くまでに一山越えないと行けないという地形がなんとなく面白かった。鹿がいたりカエルがいたり、なるほどこれがここでは当たり前なのかと感じた。自分が住む関東ではかつてはそんなときもあったのかもしれない、ここでもそれがいつか「かつて」になるのだろうかなんて考えたりした。それはなんとも寂しいなと感じた。人間には人間の世界があって、丘の林の中では鹿の世界があって、芝生を覗くとカエルの世界があって、それぞれが互いに意識をしあいながらも、しかし一定の距離を持っていることになんとなくの尊さを感じた。これがカムイの杜なのかなぁなんてしったかぶったわけのわからないこともふと思った。

f:id:sakakendo0321:20190318002710p:plain

ラベンダー畑。季節が違った。

f:id:sakakendo0321:20190318002748p:plain

よい

f:id:sakakendo0321:20190318002803p:plain

よい

f:id:sakakendo0321:20190318002830p:plain

よい

f:id:sakakendo0321:20190318002850p:plain

よい

f:id:sakakendo0321:20190318002955p:plain

よい

f:id:sakakendo0321:20190318003019p:plain

よい

f:id:sakakendo0321:20190318003135p:plain

富良野から旭川へ帰る道。すこし下り坂になっている。1,2時間くらいずっとこんな景色で走っていた。止まっても慣性で進むし、ペダルは回るし、地平線まで転げ落ちていくのかと思って、怖い夢を見てるみたいだった。

f:id:sakakendo0321:20190318003432p:plain

旭川の駅からキャンプ場に戻るところで偶然目にかかった日の入り、燃えるような夕焼け、雲の躍動感と山の峰の凛々しさが相まってとても感動した覚えがある。なんとなく画像が濁ってる感じがするのがもったいない

この日はキャンプ場にキャンプを張ったまま最低限のみ持つだけ持って、知り合った人に推めてもらった富良野・美瑛あたりを散策した。雲がかかっていない状態で雄大な大地と山嶺、青空の写真が撮りたかったが天気が悪かったのが何より残念だった。ただそれでも北海道らしさをとても楽しめた感じはする。丘が脈々と連なっていて、地平線まで見える道を進んで丘を登ればまた雄大な丘が見えて、またひたすらにまっすぐ走ればまた雄大な新しい景色がみえた。 秋に近づいていたこともあってセミの鳴き声はどことなく切なかった。道が平坦でないからか地平線までの距離は短く、地平線の彼方から電車の揺れる音が聞こえた。住んでる人も少なく、車や人もほとんど通っていなかったので、電車の音と鳥と虫の鳴き声だけが響き渡っていた。

f:id:sakakendo0321:20190318003833p:plain

この日は朝方テントを撤収して旭川あたりを散策していた。駅のうらにはちょっとした公園があったりしてとてもきれいだった。近くにコーチャンフォーがあるみたいだったのでせっかくなので寄ってみた。本を買った。昼頃に自転車を畳んで青春18きっぷを使って電車で苫小牧まで戻った。行きは自転車できた道を電車で帰るという粋なことをしてみたかった。電車で本を読んだ。

  • 8/30 苫小牧〜大洗

f:id:sakakendo0321:20190318005722p:plain

大洗にて

  • 8/31 大洗~自宅

終電に乗り切れなかたので夜中の2時過ぎに自転車を組み立てて2,30kmくらい走った。 やっぱり都会は信号が多かった。北海道に帰りたくなった。

総括

もう2年も前のことだったが、書き始めてみるとかなり勢いがついて結局500字ほど書いたみたいだった。ところどころ数字に記憶違いがあるかもしれない。ただひたすら体力勝負の若い旅だったなぁという感じはする。今後もまた行くことがあったらこんなハードな冒険もいいが、のほほんとご飯を食べて、海のきれいなところをぼーっと走るのもいいかななんて言う気持ちもある。モバイルバッテリーの容量とか、摂取カロリーだとかでいろいろ気になるところがあったがそのあたりはもうバイトも始めたのでどんどんお金で解決していきたい。 とにかく自転車を肩にかけてバッグを両手に持つというスタイルがつらすぎた。特に大洗の駅からフェリーターミナルまでの距離が微妙だったのが扱いづらかった。今度はは車に自転車を積んで快適ライフを送りたい。基本的に天気が悪かったのが心残りだったので、また天気がいい季節を狙ってきれいな山の写真を取れたらいいなと思う。それとなんか写真が基本的にぶれてたり、霞んでたりでひどい気がする。今度はいいカメラ持って行きたい。

NVIDIA Jetson TX2でCUDA driver version is insufficient for CUDA runtime versionが出たので解決した。

Jetpack を使用してCUDA Toolkitをインストールして、cupyを動かそうとしたときに出たエラー。 以下に実際にでた様子。 インストール時にはエラーが出ないのに、いざ、pythonからcudaを使おうと思ったときにでてたちが悪い。

$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cupy
>>> a=cupy.arange(9).reshape(3,3).astype('f')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/cupy/creation/ranges.py", line 55, in arange
    ret = cupy.empty((size,), dtype=dtype)
  File "/usr/local/lib/python3.5/dist-packages/cupy/creation/basic.py", line 20, in empty
    return cupy.ndarray(shape, dtype, order=order)
  File "cupy/core/core.pyx", line 150, in cupy.core.core.ndarray.__init__
  File "cupy/cuda/memory.pyx", line 517, in cupy.cuda.memory.alloc
  File "cupy/cuda/memory.pyx", line 1064, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 1084, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/device.pyx", line 19, in cupy.cuda.device.get_device_id
  File "cupy/cuda/runtime.pyx", line 165, in cupy.cuda.runtime.getDevice
  File "cupy/cuda/runtime.pyx", line 137, in cupy.cuda.runtime.check_status
cupy.cuda.runtime.CUDARuntimeError: cudaErrorInsufficientDriver: CUDA driver version is insufficient for CUDA runtime version

結論としては、すでにインストールされているCUDA driverに対してJetpackでインストールしたCUDA Toolkitのバージョンが高すぎたことが問題だったみたい。 以下のJetpack Arciveからl4tのバージョンを見て対応しているものを使ってインストールしなおせば動くようになるはず。 l4tのバージョンは head -n 1 /etc/nv_tegra_release でわかるはず

所感

動いた、Jetsonかっこいい(小並感)。そのうちやったこととかまとめたい。

とりあえず最新版ではだめなのか、、、

参考資料

JetPack Archive | NVIDIA Developer

  • NVIDIA® CUDA™ Architecture Introduction & Overview

http://developer.download.nvidia.com/compute/cuda/docs/CUDA_Architecture_Overview.pdf

google colaboratoryにsshd,http(flask) サーバーを建てる方法

google colabにdarknetを使用した画像処理サーバーを建てる方法 - sakakendo0321のブログ

上記の続編。 google colabをipynb形式だけでなくterminalから扱ったりhttp serverとして使いたくなることもあるだろうとスクリプトを書いた。 いずれも実行すれば動作するはず。sshd serverのほうはngrokのauthtokenが必要なはずなので https://ngrok.com/sign upする必要がある。

flask server

sshd server

手の傾きを検知して動くローバーを作った

だいぶ時間がたってしまったが学校の課外活動で製作したローバーについてのまとめ。以下に実際に制作したものの動画を貼りました。leapmotionを使用しているので手の傾きを検知して制御することができます。後部にはled matrixがついていてブレーキランプっぽい挙動をしてくれる。 (ワイヤレスでの制御をこだわっていたのだが、デモの時にちょうどモバイルバッテリーの電源がなくなってしまったので人に持ってもらっている。。。)

youtu.be

構成・設計

全体の概観を以下に示す

f:id:sakakendo0321:20181203222459p:plain

リポジトリは以下

github.com

gpioの制御にraspberry pi 3bを使用、gpioの制御ライブラリは pigpio library を使用した。 leapmotionのrespberry pi上での実行はサポートされていないようだったので母艦pcを別で用意してudpでモーターのpwm値を送り付けるようにした。guiからの制御をするためにtkinterを使用している。母艦側ではtkinterのlistenerとleapmotionのlistenerがブロッキングであったためthreadを二つに分けている。raspberry pi側でもudp serverとmotorの制御をそれぞれ無限ループで回しているためthreadを二つ用意している。ハードウェアは基本的にアマゾンで購入したタミヤの工作キットをベースにしている。

総括

チームメンバーは4人で初めてのプロジェクトマネージャーの経験であった。少人数での開発だったので課題が勝手に解決するなんてことはなく、ちゃんと動くものを作るためにはとにかく問題点を洗い出して一つ一つ片づけていくことが大切だと感じた。言ってしまえば当たり前のようでもあるが、このプロジェクトに関して言えばスレッド間でデータの共有、母艦とraspberry pi間の通信ラグなどの問題に突き当たってだいぶ苦しい思いをした。特に母艦の処理の速さにラズパイの処理能力が追い付かずキャパを超えてしまい処理待ちのデータが溜まっていくなんて言う問題があった。本質的な問題はpythonのライブラリが解決してくれたけど副次的な問題のほうが根深いなぁなんてことを思ったりした。そういうつらさもあって自分で一からものを作り上げれた達成感ことはとてもよかった。ただ気負いすぎていたところもあるようで実際にはハードウェアやleapmotionの制御などの自分があまりわからないところはチームメンバーに解決してもらってとても感謝している。

写真

せっかくなので開発中に撮影して気に入った写真を置いておく

f:id:sakakendo0321:20181203220904p:plain

f:id:sakakendo0321:20181203220940p:plain

f:id:sakakendo0321:20181203220402p:plain

f:id:sakakendo0321:20181203220428p:plain

google colabにdarknetを使用した画像処理サーバーを建てる方法

導入

google colab 偉大です。
ブラウザでpythonの実行ができて、共有リンクが発行できて、主要な機械学習系のライブラリが一式インストールされているだけでなくgooglegpuリソースで計算することもできます。 しかしせっかく画像認識ができても認識用の画像を上げるにはボタンを押してエクスプローラから選択する方法ではスクリプトから実行することはできないし、google drivedropboxから読み出す方法ではファイルアクセスの時間がかさばります。 そこでhttp requestで画像を受信してdarknetを実行した結果を返してくれるipynbとscriptを書きました。

構成・実行方法

以下のリポジトリのdark.ipynbをgoogle colabで読み込んですべてのセルを実行してください。 app.pyがserver sideで実行されているpython のscriptで client.pyがclient sideでのサンプルのpython scriptです。 github.com

http serverはflask,portのトンネリングにngrokを使っています

.
+ - dark.ipynb 
                #load this notebook from ipynb and execute all cells
+ - app.py 
                # flask server script
+- *.cfg
+- *.weights
+- data/
        +- *.jpg
+- client.py
                # sample script for client side
+ ....

パフォーマンス

あとで書く

結論

結局サーバーにアクセスする時間があまりに長くて使い物にならなかった印象。やはりローカルの環境を使うべきなのであろうか。jetson tx2が欲しい。 今後はipynbを介さずローカルでdarknetを使おうかなと思っていますがpull request,issue,fork来たらうれしいのでどんどん対応すると思います。ちなみにこういった使い方にgoogleは24時間ごとにインスタンスの初期化をして対応しているみたいです。
google colab 偉大です。

関連リンク

pypi.org

medium.com

medium.com