がべーじこれくしょん

技術系とかいろいろ

Raspberry Pi3にTensorFlowを入れてMNISTする

現在ARM用のTensorFlowは公式配布されていないので、有志によるRasPi用TensorFlowプロジェクトのものをつかってインストールします。

github.com

環境

項目
端末 Raspberry Pi 3
OS Raspbian Jessie With PIXEL (Kernel 4.4)

OS標準でPython2とPython3が入ってますが今後の事も考えてとりあえず3でいきます。

インストール

$ wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v0.12.1/tensorflow-0.12.1-cp34-cp34m-linux_armv7l.whl
$ sudo pip3 install tensorflow-0.12.1-cp34-cp34m-linux_armv7l.whl

TensorFlowは、インストール後のmodule関連エラーが絶えないライブラリとして個人的に有名です。

RasPi版TensorFlowも、mockというライブラリの関係でimportに失敗するとのことなので、予め一旦アンインストールしたのちインストールします。

$ sudo pip3 uninstall mock
$ sudo pip3 install mock

これにて準備完了です。

MNISTモデルの学習と実行

MNISTのコードに関しては、TensorFlowの公式チュートリアルに則って作成しました。

MNIST For ML Beginners - Tensorflow Tutorials

実行した結果、このようになりました。

$ python3 mnist.py
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
100 times   accuracy: 40.7499998808 %
200 times   accuracy: 89.4800007343 %
300 times   accuracy: 90.3100013733 %
400 times   accuracy: 90.7400012016 %
500 times   accuracy: 90.3699994087 %
600 times   accuracy: 91.2500023842 %
700 times   accuracy: 91.5000021458 %
800 times   accuracy: 91.6199982166 %
900 times   accuracy: 91.7599976063 %
1000 times  accuracy: 91.6599988937 %

RasPiでもTFが動く…感動。

MNISTモデル程度の簡単なタスクなら思ったより時間はかかりませんでした。ただ、CIFAR-10等のカラー画像等になってくるとちょっと怪しいかもしれません。

いずれにせよ、カメラを使ったいろいろなことや、RNNを用いた自動対話Botなんてのもこれで作れちゃいますね。

創作の幅が広がってよきかなよきかな。

GitHubアカウントがBANされた話

ある日、僕はいつものようにGitHubにログインした。

すると妙なメッセージが。

f:id:musaprg:20170203015915p:plain

Your account has been flagged.

え?

つまりBANされたってこと?

別に何もしてないのに?

今日も元気にクソワンライナーコードをGistにあげてるだけだったのに…

ググってみると被害者は僕だけじゃないようです。

a-habakiri.hateblo.jp

What does FLAGGED mean? - FLAGGED Definition - Meaning of FLAGGED - InternetSlang.comによるとWhat is FLAGGED? FLAGGED is “Banned” などと物騒なことが。

え、こわ…

とりあえず上記サイト様を参考に運営にクレームを送ります。

Hello, Mr, or Ms.

I don't know why my account has been flagged.
Would you tell me what to do now?
I'm waiting your response.

Thank you very much for your support.

musaprg

こんな感じ。

翌朝確認すると以下のようなメールが運営から届いていました。

f:id:musaprg:20170203102440p:plain

どうやら解除されたよう。よかったです。

さいごに

どうやらこの案件に関してはかなりあるようです。何かあった場合は慌てずに冷静に対処するようにしてください。

Python3(Anaconda)をDockerコンテナとして入れたUbuntu上で使う

実行環境

OS: MacOSX 10.12.2 Sierra

作業コンテナ: Ubuntu 16.04 LTS ( on Docker Version 1.12.5 (14777))

おしゃべりbotを作ろうとして、Python3やらMeCabやらを入れようとしたらMacの場合エラーが大量にでて困り果ててしまいました。

Dockerの操作になれるという意味でもいい機会なので、Dockerコンテナ上で環境構築してみます。

Ubuntu 16.04のDockerコンテナをDockerHubから入手

# docker pull ubuntu:latest
# docker run --name ubuntu -i -t ubuntu:latest
# docker exec -it ubuntu /bin/bash

これでコンテナのシェルに入れます。

pyenv + Anaconda版Python3をインストール

DockerコンテナとしてpullしてきたUbuntuは基本的なコマンド以外ほとんどインストールされていないので、必要なものだけ途中で適宜インストールしていきます。

# apt-get update
# apt-get install git aria2 curl wget bzip2
# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# source ~/.bashrc

aria2, curl, wgetは最低限pyenvでpythonをインストールするのに必要なものです。curlwgetはいずれかが入っていれば大丈夫です。

Anaconda版Python3インストール

Anacondaとは、Pythonの環境設定と、Pythonによるプログラミングにおいて比較的使われるモジュール(ライブラリ)等を一気にインストールしてくれるものです。

Continuum Analytics 社 が提供している Python と conda というパッケージマネージャーを含む Python ディストリビューションです。 qiita.com

公式のPythonでは、多くの場合環境設定で詰みます。そのため、特別なことがない限りはPyenv+Anacondaによるインストールをおすすめします。

# pyenv install -l | grep ana
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1
...
  anaconda2-4.0.0
  anaconda2-4.1.0
  anaconda2-4.1.1
  anaconda2-4.2.0
...
  anaconda3-2.5.0
  anaconda3-4.0.0
  anaconda3-4.1.0
  anaconda3-4.1.1
  anaconda3-4.2.0
# pyenv install anaconda3-4.2.0
# pyenv global anaconda3-4.2.0
# pyenv rehash

基本的にPython3を入れておけば間違いありません。ライブラリの多くが未だに2系に依存してはいますが、今後のことを考えると3系で開発することをおすすめします。

参考サイト

qiita.com

Markdownのススメ

この記事は、 みす51代 Advent Calendar 2016 - Adventar の7日目の記事です。

アナログの時代は終わった

アナログの時代は終わりました。時代はデジタルです。

A/D変換とか面倒です。最初からデジタルなら何も心配はいりません。 ― 友人K(18)

最近はノートをEvernoteなどでとっている学生も多く見受けられます。

デジタルでノートをとるメリット・デメリット

デジタルでノートを取るメリットは、大きく分けて3つあります。

  • 検索ができる
  • がさばらない
  • かっこいい

”検索ができる”

これやったのいつの授業だっけ…てかこんなことやったっけ…やってないよな…うん、やってない。 ― 友人S(23)

なんてことになることはよくありますね。

そんなときでも、デジタルなら検索機能を用いて目的のノートを一瞬で探せます。

もうすでにアナログとの差が開いてしまいました。もう今すぐにデジタルにするしかないですね。

"がさばらない"

重いノートを持ち、毎日通学路を走っていたヲタク男子大学生が、いつしか山の神となって箱根駅伝を制すまでを描く漫画です。 ― 「勤勉ランナー」公式HPより

夢は捨ててください。現実を見ましょう。

重いノートを持ち歩くメリットは皆無です。今すぐデジタルにしましょう。

デジタルにした場合、あなたが持ち歩くべきなのはタブレットスマホ一台のみです。

種類 重さ
B5ルーズリーフ300枚 900 g
iPhone7 *1 138 g
iPad mini 4 (Wi-Fi) *2 298.8 g
Nexus7 *3 340 g

*1 iPhone7 仕様 - Apple *2 iPad mini 4 仕様 - Apple *3 Nexus7 仕様 - ASUS

上記を見ればおわかりの通り、ノートを持ち歩くよりも圧倒的にタブレット等を持ち歩くほうがよいですね。

かっこいい

阿部「ところでこのiPadをみてくれ。こいつをどう思う?」 道下「すごく・・・かっこいいです・・・」 ― すごく・・・かっこいいです・・・ - ニコニコ大百科

やっぱりかっこいいですね。

Markdown事始め

すべてがシンプルに。そう、markdownならね。 ― ぼうけんのしょ

快適なノートライフのために、Markdownは必須です。

Markdownを覚えるメリットは、

  • ボタン一つでHTMLに変換できる
  • 文法が簡潔
  • GitHubやQiitaなど、あらゆるサイトがMarkdown記述に対応している

といった感じです。

具体的には、いくつかタグのようなものを覚えてもらうだけですぐに書けるようになります。

Markdownの記述に関しては、Hack.mdというサービスが便利です。

手軽にmarkdown文章が作成・公開できます。

それでは、実際にやってみましょう。

(以下最小限のもののみ紹介します。詳しい文法についてはHack.md上のヘルプを参照ください)

見出し

見出しは、#で表記します。#の数がそのまま階層番号になります。 階層番号は、階層の深さを表します。 一般に、以下のように呼ばれます。 h1 : 大見出し h2 : 中見出し h3 : 小見出し

例: Markdown

# 大見出し(h1)
## 中見出し(h2)
### 小見出し(h3)

強調

特定部分の文字を太くすることによって内容を強調する感じです。

例: Markdown

**俺をみろ**

打ち消し線

こんなやつです

例: Markdown

~~こんなやつ~~

リスト

  • あんなこと

  • こんなこと

したいよね? 例: Markdown

- あんなこと

- こんなこと

番号付きリスト

  1. 起きる

  2. アラーム止める

  3. 寝る

例: Markdown

1. 起きる

2. アラーム止める

3. 寝る
(実は頭が数字であれば連番にしなくても動きます。保守性考えるとすべて1.とかにしたほうがいいかも)

アンカー(リンク)

BE MY BABY - niconico 例: Markdown
[BE MY BABY - niconico](http://www.nicovideo.jp/watch/sm28073785)

Markdownを書くために有用なツール

エディタ

ネットサービス

いかがだろうか。

ひととおりこのくらい知っていればmarkdownで記事がかけます

ブログやGitHubアカウントをお持ちでない皆さんも、Hack.mdを使えば記事がかけます

Advent Calendarに参加できます

優勝

さいごに

みなさん、よいmarkdownライフを!


次回の担当は、G2さんです。

かるぼうどんのはなし

この記事は、 musa Advent Calendar 2016 - Adventar の5日目の記事です。

カルボ+うどん=超絶極旨西洋風卵牛乳汁麺風日本的極太麺

学食でクリスマス限定メニューのカルボうどんなるものが販売されていた。

限定メニューに弱い私は遠目にそれを見つめていたつもりが、それはいつの間にかトレーの上にのっていた。

「ンンッ…これはうまい。濃厚なsourceが舌に絡みつく。まるでスパゲティコードのようだ。」

普段忌み嫌いその存在を否定し続けたスパゲティコードだが、今日限りは動きさえすればいいと思えるくらいカルボうどんは美味だった。

今日はその作り方について調べてみたいと思う。

ミューピー3分クッキング

はい。では簡単超お手軽カルボナーラ…うどんのレシピをご紹介したいと思います。

材料

作り方

  1. お湯をどん兵衛に注ぎます。
  2. どん兵衛ができるまで待ちます。
  3. 3分後、どん兵衛にパスタソースを入れ、温泉卵を載せます。

完成です。簡単ですね。

みなさんもぜひいかがでしょうか?


6日目の担当は、musaprgさんです。