ごはんと飲み物は紙一重

Pythonを中心とした、データ分析や機械学習・深層学習関連の記事を書いてます。あとは気まぐれで書く日記や大学のことなどなど・・・

沖縄ぬーやが でLT発表してきました!

沖縄ぬーやがに参加してきました

今回は id:anatofuz くんと共同で開催しました。京都.なんかにインスパイアされた id:anatofuz くんが「学科で開催するLT以外にも技術系LTしたいよね」っていうお酒を飲んだノリで企画したのがきっかけでした。

「なんか」というワードが沖縄風に「ぬーやが」になってる感じが非常に好きです。

というわけで募集したところ初回にも関わらずたくさんの方が参加してくれました。

f:id:ST_ha1cyon:20180224233922j:plain

私は今回「今流行りのGoogle Colaboratoryに触った話」という題目で発表してきました。

具体的にはGPU使えるし共有も便利だし、使い方や用途によってはとっても便利だよっていう話をしてきました。

それ以外にはalexaを使って漫才をする話や、論文の読み方、コードとして実行可能な画像を生成する等など分野は様々でとても面白い話を聞くことができました。

次回は5〜6月に開催予定なので、もしよかったら次は学生だけでなく社会人の方々もぜひとも参加してほしいですね。

Pythonのバージョンの違いに悩まされた

上記ツイートがすべてを物語ってゐる。

paizaってpython3.5.2なんですね。これまでバージョンの違いに悩まされたことなんてなかったので初めての経験に戸惑いが隠せませんでした。なので「ローカルは正解出力してるのに、なぜpaizaは不正解出力するのか」と脳が追いつかない状態が20分続きました。

次から.python_versionにversion固定します。はい。

半年ぶりにpaizaやった

半年ぶりにpaizaをやってみたらB問題でケアレスの連続。なんでこんなに間違うんだよと思ったら単純にテスト不足でした。

ここ最近論文書いたりデータ分析したりとコーディング力をあげることよりも、学術的なところの勉強に時間を割いていたせいでなかなか弱くなってしまっていた。

半年前より知識は増えて書けるようにはなってたけど、要望に添える答えを出せなきゃ意味がないよねということで、コーディング力もちゃんと鍛えましょうというお話でした。

P.S. 就活しないといけない雰囲気・・・

Ubuntuでのpythonモジュールのインストールについてふと

やっとの思いでJetson TX2にTensorflowをインストールできましたということで、色々とモジュールを入れていたのですが、どうやらubuntuはpip以外にapt-get install python-pandaのようにしてモジュールが入れられるみたいですね。

Macでずっと操作してきたので私はpip操作ですが、「へぇそんな方法もあるのか」って感じです。

モジュール導入が難航したときとかにでも触りましょうかね。

ところでJetson TX2って32GBのストレージ持っているとは言えTensorflow周りの環境構築するとあっという間に80%ほどストレージを埋めてしまうのですが、皆さんどんな風に訓練データを読み込んだり、学習したパラメータを保存したりしているんですかね?


2018/1/23 追記

外付けハードをNFTSでフォーマットして使用することにしました。mac側ではmountyを使用することでNFTSフォーマットでもR/Wができるみたいです。結局はMac側で対処するかUbuntu側で対処するのかそれだけの違いですね。一先ずは。

Jetson TX2 に JetPack 3.2 の上に Tensorflow を入れようとして挫折した話

はじめに

本記事ではJetPack 3.2でJetson TX2をインストールしようとして 失敗した話 を備忘録として書いています。決して成功した記事ではないので あしからず。Jetson TX2ではアーキテクチャx86_64ではなくaarch64であるため工夫してインストールする必要があり単純には行かない面倒なことになっています。

Jetson TX2のインストール環境

host環境

GPU環境

Virtual Box VMUbuntuをインストール

上記サイトからUbuntuのイメージをダウンロードしてVirtual Boxにいれます。インストールにシステム含め30GB以上使用するのでストレージは60GB以上取っていると安心できます。インストール後はsudo apt-get update && sudo apt-get upgradeしてパッケージを更新します。

次にUbuntu内のブラウザにてJetpackをダウンロードします。

VMUbuntuJetpackをダウンロード

https://developer.nvidia.com/embedded/dlc/jetpack-l4t-3_2

上記サイト(要アカウント登録)からJetpackの最新3.2をダウンロードします。ダウンロード後はターミナルにてJetpackのファイルの位置まで移動しておきましょう。

VMJetpackをインストール

途中のスクリーンショットあり

インストールには上記のサイトを参考にしました。

またインストール方法が2つありますが、前者はPCとJetsonが両方ネットワークに繋いでインストールをする方法。後者はPCを経由してインストールする方法となっています。お好みで選択できますが、ここでは私は後者を選択しました(後者はVMでインストールするとエラーが多発するらしい)。

f:id:ST_ha1cyon:20180122155313p:plain

(※画像は3.1の画像ですが、3.2でも同様の状態が現れます)

VMへのインストールが終わると次にJetson TX2へのインストールを行います。ここではVirtualBoxでUSBを認識させる必要があるので、その設定をする必要があります。設定には以下のサイトを参考にしました。

USBの接続設定をしたあとはTX2へのインストールを行います。インストールには時間がかかるので気長に待ちます。

インストールが終わってJetson TX2でUbuntuがインストールできれば下準備は完了です。問題はTensorflowのインストール・・・

Tensorflowのインストール

実はJetson 3.1なら以下のリポジトリに便利なスクリプトが存在しています。

スクリプトを通すことで

  • bazel
    • tensorflowをaarch64用にインストールするためのパッケージ作成に必要
  • tensorflow
    • 今回の最大目的であり、これをインストールしたい

の2つがインストールできます。上記スクリプトではうまくいきません。

tensorflowをインストールするにあたってぶち当たる壁(重要)

Bazelのインストールで躓く

BazelのインストールにはJDKのインストールが必須になるのですが、上記スクリプトではapt-get install oracle-java8-installerで行うとリンクが切れておりうまくいきません。なので手動でapt-get install openjdk-8-jdkをする必要があります。現時点(1/22時点)でBazelの最新は0.9.0なのですが、あまり安定しておらずいたるところで0.5.4を推奨しているところが多かったので0.5.4が良いのかもしれないです。

CUDAとcuDNNのバージョンが違う

スクリプトJetpack 3.1を対象にしているため、CUDA:8.0, cuDNN:6.0を対象としています。今回使用したJetpack 3.2では CUDA:9.0, cuDNN:7.0なのでそれぞれに対応させたインストールが必要になります。エラーは色々あったので書き留められなかった

つまるところ何が言いたいのかというと、上記リポジトリの設定ファイルのバージョン変えたりするだけではうまく行かなかった!(色んな所で悩まされる)

じゃあどうすればいいのか。

候補案1

  • Bazelのインストール
  • Tensorflowのインストール

をそれぞれ別でやっていく。もしくは既にJetpack 3.2で環境構築できた記事を待つ((((殴

候補案2

結局のところCUDA9.0, cuDNN7.0とマッチしたtensorflowのwhlができていればいいので探す。

この方法ならきっとbazel通さなくてもpipさえあればtensorflowがインストールできるはずなのでこっちのほうがうれしいですね。

悔しい・・・だが、これでいいッ!(開き直り)

結局大したことはしていないのですが、3.2でインストールできたらまた記事にしようと思います。今のところは使えることが第1目標なので仕方なく最新は諦めることにします・・・リベンジしてやる。


2018/01/22追記

Jetpack 3.1では oracle-java8-installer の 8u161がインストールできてた。なんでや。


2018/01/23追記

bazelがうまくビルドできない問題があったけどどうやら8u152ならできるらしい・・・?なんで新しいjdkに対応してないんじゃ。

結局Jetpack 3.1を入れて、既にパッケージされたtensorflow1.4のwhlをつかってインストールしましたとさ。bazelもjdkもじぇんじぇん関係ありませんでした。ちゃんちゃん。

あけましたおめでとうございました

どうも、久しぶりの更新でございます。あけましたおめでとうございました。

もちろんサボっていたわけではなく、何をしていたかというと、

学会の提出原稿の作成

をしてました。元々講義と並行した研究をしていたので、時間が全然足りず、実験と並行しながらひたすら原稿を書く日々を1ヶ月弱してました。流石にクリスマス過ぎたあたりからブログ書いている場合じゃねぇと研究室のボスに忠告され、一段落するまでは我慢していた感じです。

結果としては提出日に無事間に合い提出することができました。普段は平均睡眠時間6時間を確保しているのですが、この冬休みだけは生活リズムをボロボロにして原稿を書いたりしてました。いわゆるデスマーチってやつですね。

元々過密スケジュールになることはわかっていて、今回の学会に登録したのですが、締切を設けて自分を追い込むことも大切だと思ったが最後、こんなにも身を削ることになるとは思っていませんでした。

デスマーチとはいえやっぱり好きなことをやっている時間はとても楽しくあっという間で朝9時から夜3時まで平気でぶっ通しで作業しちゃったりしてました。好きなことに集中力を注げるのは大切ですね(目は大切に)

この原稿作成までのデスマーチのおかげで、自分自身の研究に対するモチベーションも戻ってきて結果的に良かったのではないかと思います。2ヶ月後が発表なのでそれまでにまた発表資料作成や追加実験などいろいろやっていこうと思います。 計 画 的 に。

1年を振り返りますよというわけで今年の振り返り

今年を自分の記事を通して振り返って行こうかと思います。

去年は振り返りもせず年明けてから更新みたいでした。

大方進行中の目標は達成できたのではないかと思います。特にPyConJPとFIT2017、そしてちゅらデータさんへのインターンは自分の進路を左右する重要な出来事になってくれました。

FITを一人で回るのはとても寂しかったので今度は教授と一緒に回りたいなんて思いました(切実)

そして1年の目標として設定した

  • 取捨選択をしっかり見極めて実行していく

ですね。これはできたかどうかでいうと50%ぐらいですかね。見極めて実行した分はちゃんと自分に成果として返ってきてますし、まだまだ周りに流されてしまっている自分もあったのでこれは今年に限らず来年も意識していきたいところですね。

さてこのブログを通して大きく変わったのはインターン後ですかね。圧倒的に技術的な記事が増えましたし、なにより継続してブログ更新できているのがとても素晴らしいなと感じています。夏休みに多くの社会人と顔を合わせる機会があったからこそですね。

来年の目標ですが、

報連相を意識する

ですね。当たり前っちゃ当たり前なんですが、これから先の1年というものは進路を決めたり、卒論を書いたりと、誰かに頼らなければ最終的な判断を下しきれない重要なイベントが控えております。そんなときに一人で抱えることなく事ある毎にいろんな人に報告・連絡・相談をしていきたいと思います。

というわけで簡単ですが今年の振り返りを終えたいと思います。あと大学生活も1年と少しなので、使える時間を精一杯色んな所に向けていきたいと思います。今年もこの私と関わってくれた皆様に感謝感謝です。ではでは。