2017年2月12日日曜日

Installation of TesorFlow on windows10

基本メモなので、、、

Raspberry Pi、Mac ProにTensorFlowインストールので次は、Windows10
ただし、先にOpenCV3をビルドしてインストールした関係で、ひと手間必要

課題と解決

仮想環境を使わない開発も行いたいので、下記のような課題が出てきます。
OpenCV3をビルドする時に、MinGW64をインするトールしている。
その為に、MinGWのpythonと、Anacondaのpythonが競合する

従って、Anacondaインストール後に、環境設定でpathを変更する。

大まかな手順

1. Anacondaのインストール

2. 環境設定の変更

3. TensorFlowのインストール(仮想環境版)

4. 確認

1. Anacondaのインストール

インストールは、Anacondaのサイトからダウンロードして、ダウンロードしたファイルを実行します。
この時、インストール先は、Cドライブの自身のホームディレクトリーです
インストールは、インストールしたユーザ利用を選択してインストールします。
これにより、ユーザー環境変数として設定されますので、システム環境変数が優先します。

<注意点>
今回は、python(バージョン3.5)のAnacondaをインストールしました。
現時点(2017/2/10)では、Anaconda3-4.3.0.1が最新です。Pythonも3.6です。しかし、TensorFlowは3.6では動きません。その為にPython3.5のバージョンあるAnaconda2-4.2.0を使いました。また、下図のように、Python3.5.2へのupdateも画面にありますが、これをすると3.6にupdateされてエラーが発生して、再インストールが必要になります。


2. 環境設定の変更

ちなみに、Anadacondaの仮想環境だけで使う場合には、環境設定の変更は必要ないです。

OpenCV3をビルドする為にMinGWをインストールしました。その時にpython2.7もインストールしています。パスを変えないと、このpython2.7が優先されます。両方ともに使えるようにするために変更します。

Windowsの環境変数の設定パネルを使って、ユーザー環境変数に設定してあるAnacondaの値を、システム環境変数に設定しなおします。ユーザー環境変数の値は、削除します。

私は、anacondという変数をつくり、それにAnacondaの設定値を記述し、その変数をPATHの先頭に挿入しました。

システム環境変数にanacondaの変数を作成

システム環境変数にanacondaの変数の内容
ユーザ変数に設定していた値


設定後
 コマンドプロンプトを開いて、下記を入力して画面のイメージになれば設定変更は、成功です。

python -V



3.1 TensorFlowのインストール

最初に、Anaconda Navigatorを使って、仮想環境の構築をします。
tensorflowとして環境構築します。


その後、作った仮想環境からTensorFlowをインストールします。
仮想環境のtensorflowのらんの右に三角形の矢印があり、それをクリックすると、選択画面があり"Open Terminal"を選択します。


選択後、terminal が開きますので、下記のコマンドを入力してインストールします。

pip install tensorflow


上記のようになれば、インストールは成功です。

次に、下記のコマンドを入力して、0.12.1などのようにバージョン表示されたら成功です。

python -c "import tensorflow as tf; print(tf.__version__)"


4. 確認

確認はTensorFlowのサイトにある下記のプログラム(test.py)を実行させます。

import tensorflow as tf
import numpy as np

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.global_variables_initializer()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))


コマンドプロンプトでの実行して、下記の結果が表示されます。
python test.py


Peace !!

2017年2月9日木曜日

Installation of TensorFlow on Mac Pro

Anavondaは既にインストールしてあるので、超簡単(^^)

$ conda -V
$ conda create -n tf python=3.5
$ conda install -c conda-forge tensorflow

Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment /Users/phipo009/anaconda:

The following NEW packages will be INSTALLED:

    mock:       2.0.0-py35_0      conda-forge
    pbr:        1.10.0-py35_0     conda-forge
    protobuf:   3.1.0-py35_0      conda-forge
    tensorflow: 0.12.1-py35_1     conda-forge

The following packages will be UPDATED:

    anaconda:   4.2.0-np111py35_0             --> custom-py35_0            

The following packages will be SUPERCEDED by a higher-priority channel:

    conda:      4.3.9-py35_0                  --> 4.2.13-py35_0 conda-forge
    conda-env:  2.6.0-0                       --> 2.6.0-0       conda-forge

Proceed ([y]/n)? y

conda-env-2.6. 100% |################################| Time: 0:00:00 945.91 kB/s
anaconda-custo 100% |################################| Time: 0:00:00   2.69 MB/s
conda-4.2.13-p 100% |################################| Time: 0:00:01 209.70 kB/s
protobuf-3.1.0 100% |################################| Time: 0:00:02   2.89 MB/s
pbr-1.10.0-py3 100% |################################| Time: 0:00:00   7.52 MB/s
mock-2.0.0-py3 100% |################################| Time: 0:00:00  14.13 MB/s
tensorflow-0.1 100% |################################| Time: 0:00:10   3.36 MB/s

$ pip install keras


Peace!!

TensorFlowを試してみた

まず、最初はKurin

オカリナ、または、sweet potato らしい(笑)

さすがに厳しい、オシロスコープとは



みかんだけど、、、オレンジ






Bingo!  recreational vehicle



















レッドボーンクーンハウンド まぁ、そうかなぁ。。。






















レッドボーンクーンハウンド?
毛が無いからかなぁ、、、(笑)















パドルと来たかぁ。
う、、、toilet seatとは、、、

これは、どうだ!!





















meatloafだって、、、
アメリカには、カレーパン無いしね

さぁ、使い込むぞ

Peace!!

Installation of TensorFlow on Raspberry 3

いよいよ、TensorflowをRaspberry Pi3上でベンチマーク
Raspberry Pi3を、AIマシンに(^^)/
pythonは、Version3利用を前提です。

1.準備

Raspberry Pi3は、新しい物を使うので、raspi-configで設定、reboot直後の状態から。

ソフトウェアのアップデート

sudo apt-get -y dist-upgrade
sudo rpi-update
reboot

必要なソフトのインストール

sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev

TenseorFlowのダウンロードとインストール

$ 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のテスト

テストのpythonコードはこちら

# hello-tf.py
import tensorflow as tf
import multiprocessing as mp

core_num = mp.cpu_count()
config = tf.ConfigProto(
    inter_op_parallelism_threads=core_num,
    intra_op_parallelism_threads=core_num )
sess = tf.Session(config=config)

hello = tf.constant('hello, tensorflow!')
result = sess.run(hello)
print (result)

a = tf.constant(10)
b = tf.constant(32)
result1 = sess.run(a+b)
print (result1)


Kerasのインストールと環境設定

kerasとは、高水準のニューラルネットワークライブラリー

sudo pip3 install keras

mkdir ~/.keras
vi .keras/keras.json

cat .keras/keras.json
{
    "image_dim_ordering": "tf",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}

無事にimportできればOK
python3
>>> import keras

さらに追加

sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-h5py

OpenCVのインストール

これは、この投稿を参照して下さい。
contribも忘れずに(^^)
http://robot009.blogspot.jp/2017/01/installation-opencv-32-on-raspberry-pi-3.html

これで、準備完了!!

Peace!!

2017年1月17日火曜日

組織の知識ネットワーク:多次元Simulator

僕は、農業も、ロボットもしているけど、、、

さらに、「はたらき方改革」の仕事もしている。

どっちかというと、後者が一番得意かなぁ。

特に、方法論で実現する事が得意。

これは、前職で、外資系からこられた役員に言われたこと。

コンサルは、メソッドで価値を提供しろ。

同じ事は、ヘッドハンティングされた世界最大のコンピュータ会社の役員も言っていた。結局断ったけど、、、

だから、僕はメソッドで「はたらき方改革」を実現する。

このメソッドは、僕が開発した、すでに100社以上で実績のある方法論をさらに、バージョンアップしたもの


詳しくは、説明しないけど、、、

やっと、僕が目指す「メソッド」実現できるかも

Peace!!

video

2017年1月16日月曜日

stereo_matching of OpenCV320

Windows10上で問題なく、Eclipse+OpenCV320+msys2が稼働するのかと

で、ちゃんと動きそうなので、、、

ただ、msys2に関しては、もう少し詳しくみる必要があるかと、、、

stereo_matchを動かしながら、パラメーターのチェック

eclipseで下記のパラメータを変化させながら処理内容を確認

stereo_match left-image right-image --algorithm=sgbm --max-disparity=256  --blocksize=1


パラメータで、こんな感じに変化する。

楽しいね。(^^)


Peace!!


An Instllation of OpenCV 3.2.0 on Windows10 using msys2

これも自分用のメモなので悪しからず。。。(^^)
でも、これで、Windows PCだけでもロボット用の画像処理ができるので良かったです。(^^)

1.目標

Windows10上で、eclipseをIDEとして使って、OpenCV開発環境をつくる事
Windowsなので、Visual StudioをIDEとして選択できますが、僕の場合は、マルチプラットフォームで開発しているので、IDEとしてeclipseを使っています。
windowsだけしか使わない人は、Visual Studioが一番です。

2.手順

2.1 環境準備

2.1.1 msys2環境構築、開発環境をpacmanで導入する

pacman懐かしい。mingw32とmingw64の2つがセットアップされる。
実際は、minigw32は空っぽです。
Windowsの環境設定のPathは、C:/msys2/mingw64/binに設定。
下の様な感じで、Windowsの中でUNIX的に使えちゃマス。
アイコンが3つできます。僕は「MYSY2 MinGW 64-bit」を使っています。
msys2をインストールしてから、開発環境としてmingw64を設定する方法を実行しました。
基本的な環境設定は、これで終わり。あとは順次必要な物をインストールします。

$ pacman -Syu
$ pacman -S base-devel
$ pacman -S msys2-devel
$ pacman -S mingw-w64-x86_64-toolchain


2.1.2 vtkをインストールする

OpenCVの画面表示の機能などがvtkに依存しているのでインストール

$pacman -S mingw-w64-x86_64-vtk

2.2 ビルド準備、ビルド

2.2.1 opencvのダウンロードと展開

opencv.orgから、windows用の圧縮ファイルをダウンロードします。
展開すると、sourcesフォルダーがあります。この中にbuildディレクトリを作成して、ここで作業をします。msys2でコマンドラインで作業をする時は、buildディレクトリに移動して作業をします。
sourcesフォルダーと同じ位置にbuildディレクトリーがあります。これと上記のディレクトリを間違わないように、、、

2.2.2 cmake

sourcesのbuildディレクトリーを、出力先として設定して使います。
OpenCVのソース展開をしてbuildディレクトリを作成してConfigureする。
図のように赤い状態になったらエラーメッセージを読んで設定を変更する。
赤い部分が無くなるまで繰り返す。赤い部分が無くなれば、Generateして終了。



2.2.2 mingw32-make

もちろん、パスはmingw64/binなのでそのモジュール。
32という数字がややっこしい。i5のPCで35分くらい


2.2.3 mingw32-make install

cmakeの時に指定したディレクトリーにインストールされる。
cmake のデフォルト値は、buildの下のinstall
ここの下のx64を、sources/x64に上書きする。
ただ、IDEを使って開発する場合は、別に上書きしてもしなくても関係ないです。その時はWindowsのパスでは、ここで作成される「x64/mingw/bin」を指定する必要があります。忘れずに設定します。


2.3 eclipseで確認

eclipseの設定は、Includeと、Libraryです。
下のソースを実行すると画像のように赤い四角が出現。
これで、めでたしめでたし\(^o^)/



#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

int main(int argc, const char* argv[])
{
  // 幅320px、高さ240pxで赤色の画像データを生成
  cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));

  // 画像表示用のウィンドウを生成
  cv::namedWindow("red", cv::WINDOW_AUTOSIZE);

  // ウィンドウに画像を表示
  cv::imshow("red", redImg);

  // キー入力を待機
  cv::waitKey(0);

  // 作成したウィンドウを全て破棄
  cv::destroyAllWindows();

  return 0;
}

Windowsのpath設定(僕の場合)

c:\msys2\mingw64\bin
e:\dev\opencv\build/x64/mingw/bin

事件

vtkをインストール後に、、、
なんと、makefie等に、「C:/building/msys64」とハードコーディングされた
部分があり、これを下記のコマンドで検索し、手動で「C:/msys2」と自分の環境に変更した。
find ./ -type f -print | xargs grep 'building/msys64' > /tmp/qq.txt

qq.txtの内容を確認して、問題の記述があるファイルを特定して、秀丸エディターで読み込み、一括返還した。この対応をしながらbiludを数回繰り返し、、、
結局、丸一日。。。。

Peace!!