Chromebookでゼロから作るDeep Learning(Cloud9)
以下の本を買ってみました。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
私のスキルですが、
・Python 触ったことありません。
・機械学習 なにそれ?
・Chromebook 持ってる
という状態です。
なぜこんな本に手を出したかって言うと、衝動です。
さて、この本をパラパラめくると、最初に開発環境の構築があり、Anacondaというものの準備が必要そうです。
Chromebookでできるんですかね?
Linux環境を整えるとまぁできそうですが、今回は挑戦という意味でCloud9でやってみたいと思います。
基本要件としては、
Python3
NumPy
Matplotlib
というものが必要らしいです。
本書ではこれをまとめて入れるためにAnacondaというものを使用するみたいです。
さて、早速環境の構築ですが・・・。
例のごとく、基本的に人様の情報に頼ります。
上記の方のご指示通りにコマンドなどを実行すると、Anacondaのインストールまではサクサク進むはずです。
バージョン確認を行ってみます。
~/workspace $ python --version
Python 3.5.1 :: Anaconda 4.0.0 (64-bit)
pythonもAnacondaも問題なく入っているようですね。
念のため、NumPyのテスト
>>> import numpy as np
>>> x=np.array([1.0,2.0,3.0])
>>> print(x)
[ 1. 2. 3.]
>>> type(x)
<class 'numpy.ndarray'>
続いてMatplotlibのテスト
>>> x=np.arange(0,6,0.1)
>>> y=np.sin(x)
>>> plt.plot(x,y)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 3147, in plot
ax = gca()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 928, in gca
return gcf().gca(**kwargs)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 578, in gcf
return figure()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 527, in figure
**kwargs)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 46, in new_figure_manager
return new_figure_manager_given_figure(num, thisFig)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 53, in new_figure_manager_given_figure
canvas = FigureCanvasQTAgg(figure)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 76, in __init__
FigureCanvasQT.__init__(self, figure)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4.py", line 68, in __init__
_create_qApp()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 138, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
ってエラーが出たのでとりあえずAnacondaのアップデートをしてみます。
conda update conda
エラー解消せず。
matplotlibの再インストール
pip install matplotlib -I
で状況変わらず。
よく見たらDISPLAYが設定されてないって、そりゃCUI環境じゃグラフの表示は無理か。
ってことでCloud9にGUIを導入してみますかね。
GitHub - noobkilervip/cloud9-vnc: Running X11 in a Cloud9 Workspace
ってことで続きはまた今度。
SAMSUNG Chromebook Pro
本当に発売されるのであれば非常にほしいです。
はっきりいうと、Chromebook Flipの性能は貧弱です。
特にAndroidアプリを使用する前提であれば、非常に動作が重たい場合があります。
(Kidleとかは顕著)
本当にブラウザだけを使用するには困らないんですがねーー。
爆弾バッテリーでないことを願うばかり・・・。
(読了)未来型国家エストニアの挑戦 電子政府がひらく世界 ラウル・アリキヴィ/前田陽二
時間はかかったけど読み終えた。
前回の続き
後半の内容はスタートアップ企業に注目して、どのようなスタートアップ企業があったか、またなぜスタートアップ企業が多いのかの解説
エストニアでのスタートアップ企業の一例として、Skypeの説明から入る。
Skypeってエストニアだったのかという驚きもありつつ読み進めると、
スタートアップ企業が多い理由として、
- 会社の設立が容易
- 国民のITに関する理解が高い
- 国民の英語理解度が高い
とかがあって、
会社の設立に関しては、国民番号を利用したWEBシステムや情報公開基盤が整っているからということで、最短で10分かそこらで、筆者の実体験だよ18分やら30分で法人の設立が出来たらしい。
二点目は国民番号を利用したサービスが社会の基盤になっているからで、その利便性は誰もが知っていることだから
三点目は、本の前半でエストニアの教育に関することも書いてあって、義務教育で高校卒業までに3ヶ国語の外国語教育を受けるそうな。(英語、ロシア語、(ドイツ語、フランス語、日本語)
上記三点に加えて、エストニアは人口が少ないからこそ、IoT等を事業とするスタートアップ企業がテストを行う土地として活動がしやすく、まずエストニアでテストされ、成功した企業はより広いマーケットを求めてアメリカ等に行くということらしい。
最後に、エストニアの事例を踏まえたうえで、日本のマイナンバーはどうあるべきか、という結論をおいているが、内容は透明性を意識したうえで、基盤の構築を行うこと、あと認知の拡大。
当然のことを記載しているけれど、日本が政府としてIoTを支援するための必要十分条件としては是非とも期待したいところ。
・・・
ただ、やっぱりサービスというものは体感をしないとその利便性は認識しづらいものなので、・・・エストニアに援助付きで済ませてくれないかなぁと思ってみたり。
(読中)未来型国家エストニアの挑戦 電子政府がひらく世界 ラウル・アリキヴィ/前田陽二
Kindle Unlimitedで読んでいて、すっごく面白かった本のご紹介
未来型国家エストニアの挑戦 電子政府がひらく世界 (NextPublishing)
- 作者: ラウルアリキヴィ,前田陽二
- 出版社/メーカー: インプレスR&D
- 発売日: 2016/01/29
- メディア: Kindle版
- この商品を含むブログを見る
ってまだ読んでる途中ですが。
マイナンバー制度の対比として、アメリカのSSNと同じぐらい登場するエストニアの国民番号制度。
この本の中ではサービス内容、歴史、基盤など、エンジニアにも為になる内容が丁寧に記載されています。
特に基盤の内容については、よく出来たシステムだなー。と思いました。
個人情報の保護方法や他システムへの情報連携のための共通基盤の仕組みなど。
うろ覚えですが、日本のマイナンバー関連の共通基盤よりも洗練されているような・・・。
特に驚いた記載として、
「エストニアでは、電子政府構築のための情報基盤の整備が進んでいることから、電子政府のアプリケーションサービスの開発費用を低く抑えることができる。たとえば、インターネット投票システムの初期投資費用は30万ユーロ(約4000万円)程度である。」
って4000万円で開発できるんですか・・・。
物価も違うのだと思いますが、日本で作ったらいくら掛かるやら・・・。
続いて、
「エストニアの電子政府サービスの開発の特徴は、一度作ったあとは作りっぱなしではなく、利用者の声を反映させ、改良を重ねていくところにある。」
素晴らしいですね。
当然の話だろって思うのもわかりますが、当然のことをやるのってすごく難しいのです。
エストニア・・・移住しようかな。笑
croutonでUbuntu導入(ほぼ人様のブログ紹介)
以前、見事にChromebrewのインストールに失敗し、じゃあ開発環境作るならクラウドIDEかcroutonかと書いたのですが、今回はcroutonを入れてみます。
さて、重要なcroutonのインストールについてですが、私が実施したのは以下です。
2.croutonインストール
3.crouton integrationのインストール
4.日本語化
すべて人様のブログ頼りなので、紹介させていただきます。
人によって、インストール時のコマンドや、デスクトップ環境が違いますので、多少コマンドのアレンジは必要ですが、逆に言うとそれだけです。
先人の方に感謝。
2.croutonインストール
※私の場合、途中で放置しすぎてスリープになってしまったせいか、
一回インストールに失敗しました。
ただ、中途半端にインストールがされてしまったようなので、-uをつけて、コマンドを再実行したらうまく行きました。
3.crouton integrationのインストール
4.日本語化
※途中、画面表示で文字化けの豆腐がたくさん出ますが、きにせずに続行。
再起動した時にはちゃんと日本語環境です。
以上。
(読了)なぜ、あなたの仕事は終わらないのか スピードは最強の武器である 中島聡
以前、一章を読んだ本、一気に読んでしまいました。
色々なテクニックが書かれていましたが、やっぱり大事なのは
・とりあえずやってみる(作ってみる)
・やるときは全力でやる。
・ラストスパート思考をやめて序盤で8割型片付ける
ってことだと思います。
こう書いてみると薄っぺらくて、簡単そうですが、なかなかできません。
・内線電話がどんどんかかってくる
・自分の内線じゃなくても、周りに人がいないとピックアップしないといけない
とか、全力で仕事をするには集中できる環境が必要です。
それを作るためにってことでやはり朝活ってところに行き着きます。
朝早く出社すると
・周りに人が少ない
・電話・メールがならない(はず)
・帰る時間を固定することで仕事にメリハリができる。
(ダラダラとゴールの見えない残業をしない)
ってメリットがありますね。
メリハリがあったほうが仕事に対するパフォーマンスも上がりますからね。
あと、非常に良い話が序盤にあったのですが、
あるパーティーに花を用意するという仕事を与えられたとき、何をすべきかということです。
もちろん、花屋さんに予約の電話をすることは必要だと思いますが、予約した結果、花屋さんに不測の事態が起きて花を用意することができなかった場合、これは自分が仕事を達成できなかった理由として通用するのでしょうか。
「与えられた仕事はあくまで花を用意することで、花屋に電話をすることではない」
ってことですね。
仕事の目的をしっかりと考えれば、対処法を予め検討することができますが、普段何気なく仕事をしていると、花屋に電話することで満足してしまいがちです。
(例えば、会議向けの資料を作成するのに、資料を作成することが目的となってしまって、会議の場では使いにくい資料となってしまう。。。など
「しっかりと考えて」「とっととやる」
とりあえず、僕が今すべきことは、明日のために寝ることですね。
(本の最後には寝る前にこれをやれってことが書いてありますので、それが終わったら)
Chromebook FlipでChromebrewが使いたかった
持ち運べて、かつ快適な環境を手に入れると、いろいろ遊べるプログラミング用の開発環境が欲しくなっていろいろ調べました。
ChromebookならやはりクラウドIDEとかを使うべきだと思いますが、やはりローカルに環境があったほうが便利そうだし、なんか落ち着くし(?)で、Chromebrewというものに行き着きました。
インストールするにはこちらの記事を参考にさせて頂きました。
まずはデベロッパーモードにして・・・・。
(ローカルのデータや、インストールしたAndroidアプリも消えますが、再インストールすれば良いだけなので、潔くやります。)
記事をよく読まず、Ctrl+Dが合計3回ほど必要なのに、必要なタイミングで押さなかったため、何回かただのリセット作業になってしまいました。
さて、早速、shellと打ち込み、Chromebrewのインストールコマンドを・・・。
そうですか・・・。
こうなったらさっぱり諦めましょう。
他にcroutonを使用してUbuntuを入れるなり、NitrousというクラウドIDEもあるらしいので、のんびり模索します。