MAC でTensorflow
https://deepage.net/tensorflow/2017/02/14/tensorflow-docker.html
Mac
まずは、以下のリンクをクリックしてください。
Get started with Docker for Mac
Download Docker for Macという節に、下の画像のような場所があるはずです。左側の安定版をクリックしてダウンロードします。
ダウンロードが終わったら、クリックしてインストーラーを開き、クジラのようなDockerのアイコンをApplicationフォルダにドラッグ・アンド・ドロップします。
ドラッグ・アンド・ドロップすると、アプリケーション一覧にDockerアイコンが表示されているはずです。こちらを開きます。
色々とダイアログが出てくるので、内容を確認して許可します。最後に、以下の画像のようなウィジェットが出てくればインストール成功です。
TensorFlowのコンテナを実行する
TensorFlowのDockerイメージは4つあります。
Dockerイメージ | 説明 |
---|---|
gcr.io/tensorflow/tensorflow | CPU安定版Dockerイメージ |
gcr.io/tensorflow/tensorflow:latest-devel | CPU開発中のDockerイメージ |
gcr.io/tensorflow/tensorflow:latest-gpu | GPU安定版Dockerイメージ |
gcr.io/tensorflow/tensorflow:latest-devel-gpu | GPU開発中のDockerイメージ |
お使いの環境に合わせて、選択してください。
まずは、tensorflow/tensorflow
のDockerイメージを実行してみます。
$ docker run -it -p 8888:8888 tensorflow/tensorflow
すると、tensorflow/tensorflow
イメージがダウンロードされて、Jupyter Notebookが起動されました。ターミナルの出力の最後にURLが表示されていると思うので、ブラウザからアクセスしてみます。
MNISTや簡単なチュートリアルの解説付きのJupyter Notebookが表示されているはずです。
TensorFlowのサンプルを実行してみる
以下のコードをsample.py
というファイル名で保存してください。
Dockerfileを書きます。同じディレクトリにDockerfile
という名前で以下のコードを保存します。
Dockerイメージをビルドしてみます。-t
オプションで、タグ名を付けることができます。
$ docker build -t docker:sample .
これで、実行してみます。
$ docker run --rm -it docker:sample python /tmp/sample.py
Hello, TensorFlow!
42
Hello, TensorFlow!と、42が出力されるはずです。
AI用語メモ
-
畳み込みニューラルネットワーク[編集]
畳み込みニューラルネットワーク (Convolutional Neural Networks: CNN) とは、全結合していない順伝播型ニューラルネットワークの一種。特に2次元の畳込みニューラルネットワークは人間の視覚野のニューロンの結合と似たニューラルネットワークであり、人間の認知とよく似た学習が行われることが期待される。結合がスパースであるため、全結合しているニューラルネットワークに比べて学習が高速である。
1979年に福島邦彦が発表したネオコグニトロンから発展し、1988年に Homma Toshiteru らが音素の認識に[15]、1989年に Yann LeCun らが文字画像の認識に使用し[16][17]、1998年に LeCun らが発表した LeNet-5 へと続き、2012年に ILSVRC での物体カテゴリ認識で優勝したアルゴリズムも深層畳み込みニューラルネットワークである[18]。ネオコグニトロンの時から深層であったが、近年は深層であることを強調するため、深層が頭につき、深層畳み込みニューラルネットワークと呼ばれる事もある。自然言語処理に対する応用もなされはじめた。
学習方法のコンセプトは簡単で、間違えたらwの値を後述の式により更新していき、間違いがなくなるまで更新を続ける。学習データの系列を下記のように定義する。
ここで、誤分類された学習データの集合を下記のように表記する。
クラス1のデータに対し、f(x) > 0,クラス2のデータに対し、f(x) < 0となるような重みwを求めたい。この場合、教師ラベルt={+1,-1}を用いると、全てのデータは下記を満たす。
正しく分類されたデータに対し、誤差0を割り当てるような下記の誤差関数E(・)が考えられる。
これを最小化する(0になる)ように、wの値を設定すれば、上手く分類できる。
この最小化する手法として、確率的勾配降下法を利用する。
確率的勾配降下法は誤差関数が今回のE(w)のようにデータ点の和からなっている場合、データnが与えられたとき、下記の計算によりwを更新する。
上記から、下記のように更新式が導出できる。
wの値次第で、データが誤分類されてしまうような領域内では、tの値が+1のときでも-1のときでも、誤分類されたデータの誤差E(w)への寄与は線形関数となる。
また、wの値次第で、データが正しく分類される領域内ではデータの誤差E(w)への寄与は0である。
したがって、E(w)は区分線形関数である。
そのため、E(w)の勾配は下記のように計算されている。
Deep Learningのための数学的なメモ
もう長い間、数学はやっていない、まず言葉だけでもまとめて会話できる必要がある。
- Σ:シグマ
記号シグマは、和を表すΣXn=X1+X2+....Xn
- Π:パイ
記号パイは、積を表す。ΠXn= X1*X2*.......Xn
- EXP:エクスポネンシャル
記号EXPは、自然対数の底e=2.718を用いた指数関数を表す。次はeのX乗を表す関数になる。EXP X= E^X
指数関数の和の積は、引数のわに変換される。
Πe^Xn=e^X1*.....e^Xn=exp{ ΣXn}
Deep Learningのための数学的なメモ
もう長い間、数学はやっていない、まず言葉だけでもまとめて会話できる必要がある。
- #: Σ:シグマ
- 和を表すΣXn=X1+X2+....Xn
- Π:パイ
- 記号パイは、積を表す。
- ΠXn= X1*X2*.......Xn
Tensor Flowの用語メモ
関数メモ
- matmul
行列の掛け算を行う関数
- train.reshape
Array変数を行列の形を並び替えた形にする。
- tranin.AdamOptimizer().minmize(loss)
Tensorflowが提供するトレーニングアルゴリズムの1つです。与えられたトレーニングセットから誤差を計算して、その勾配ベクトルの反対方向にパラメータを修正するという処理を実施するものですが、学習率ε(イプシロン)に相当するパラメータを自動的に調整する仕組みを持っている。比較的に性能がよく、学習率を手動で調整する必要がないために、ディープラーニングでよく利用されるアルゴリズムである。その後のMinmize(loss)というメソッドでは、先に定義したLossを誤差関数として、これを最小化するように指示を出している。
(かくりつてきこうばいこうかほう、英: stochastic gradient descent, SGD)とは、連続最適化問題に対する勾配法の乱択アルゴリズム。目的関数が、微分可能な和の形である事が必要。バッチ学習である最急降下法をオンライン学習に改良した物。
enumerate関数でインデックスつきループを行う
ループ処理を行うときにenumerate()を使うと、要素のインデックスと要素の両方を同時に取得できます。
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print i, v
...
0 tic
1 tac
2 to
Tensorflowのインストール
- Tensorとは
- TENSOR FLOW overview
Reference:https://space-ichikawa.com/soralab/2016/02/tensorflow-typeerror/
TensorFlowのインストール方法には、①Pip install、②Virtualenv install、③Docker installがありますが、今回は、Virtualenv installを選択しました(インストール時点のバージョンは、0.6.0)。
PIP install :
Install TensorFlow on your machine, possibly upgrading previously installed Python packages. May impact existing Python programs on your machine.
Virtualenv install:
Install TensorFlow in its own directory, not impacting any existing Python programs on your machine.
Docker install:
Run TensorFlow in a Docker container isolated from all other programs on your machine.
インストール
1.PythonのPIPと開発系と、仮想環境をインストールする。
$sudo apt-get install python-pip python-dev python-virtualenv
2.仮想環境からTensorflowをインストール
$ virtualenv --system-site-packages ~/tensorflow
3.TensorflowをActive
$ source ~/tensorflow/bin/activate
4.Install
(tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.6.0-cp27-none-linux_x86_64.whl
----------------------------------------------------------------------------------------------------------
Tensorflowを利用するとき
$ source ~/tensorflow/bin/activate
で、仮想環境を有効にする。
参考文献:
インストール関係