Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

TensorFlow Getting Startedを実行する

前回は、インストールのドキュメントにあるソースを実行してみました。
今回からは、「Getting Started」を始めます。
その前に、「テンソル」っていうのは下記参照で。。。

テンソル - Wikipedia

機械学習などあまり知らない、全く知らない人向けに良いガイドになる様だ
有難い。

・ 0テンソル(a rank 0 tensor)を表現するとき → (何も書かない)
・1テンソル( a rank 1 tensor)を表現するときは       → [1., 2., 3.] # [3]
・2テンソル( a rank 2 tensor)を表現するとき     → [[1., 2., 3.], [4., 5., 6.]] # [2, 3]
・3テンソル( a rank 3 tensor)を表現するとき   →[1., 2., 3.,, 7., 8., 9.,] #[1, 2, 3]

どうやら、 ノードを作成する処理が以下になる

node1 = tf.constant(3.0, tf.float32)
node2
= tf.constant(4.0) # also tf.float32 implicitly
print(node1, node2)

そして、ノードからセッション内で計算グラフ(computional graph)を作成する処理が
以下の様になる様だ…

sess = tf.Session()
print(sess.run([node1, node2]))

 処理法はなんとなくわかったが…

つまり、なに?という疑問が消えない

なので、ちょいとアプローチ方法を変えて考えて見ようかと思います。

 

Minecraft in ラズベリーパイ

Minecraftをラズパイでやるための手順です。

1.ラズパイをインストー

www.raspberrypi.org

ダウンロードしたファイル(NOOBS)を解凍してSDカードに展開します。

2.LANケーブルを挿して電源を入れてやります。

3.メニューからゲームで既にインストールされています。
Scratchもインストールされていて良い

そして、ゲームパッドでマイクラをやるために以下のコマンドを叩きます。
$ sudo apt-get install joystick

$ sudo apt-get install joystick jstest-gtk
こちらのサイトを参考にしました。

上記コマンドで、ゲームパッドをラズパイに認識させることができます。

そして、マイクラで使用するためにはゲームパッドのボタンにキーボードのボタンを
対応させます。

追加で以下のコマンドを叩く

$ sudo apt-get install software-properties-common

リポジトリの追加コマンド

 

そして、対象のアプリを落とします
$ sudo add-apt-repository ppa:ryochan7/antimicro
$ sudo apt-get update
$ sudo apt-get install antimicro

下記のサイトを参考にしました。

gcnqf306.cocolog-nifty.com

Docker OSについて

前回は、Dockerコンテナの構築を行いました。
そして、OSについては触れませんでした。。。なので今回は調べます。

docker infoコマンドで以下の様な情報を確認しました。

f:id:Takunoji:20170506203457p:plain

選択している部分はOS名を示しています。
だけど前回はその部分に触れていませんので。。。

・dockerコンテナに移動する(ターミナル使用)
>docker exec -it コンテナ(image)名 bash (bash使用時)

f:id:Takunoji:20170506220038p:plain

今回はnginxのコンテナに移動してみました。docker info でnameが「webserver」だったので以下の様にコマンドを入力しました。

f:id:Takunoji:20170506220910p:plain

f:id:Takunoji:20170506221328p:plain

上記の結果から、1コンテナにつき1OSで起動しているのかな?と仮説を立てます。
理由は、docker infoではalpine linux だったが今回のOS名はGNU....
なので起動しているコンテナと、dockerが起動している仮想OSが違っているのでは?と思った次第です。

調査の結果、起動しているAlpain Linuxに関してはMacOS Xで使用しているOSの様だ
詳細に関してはわかりませんでしたがとりあえずは問題もない様です。
そして、今回のGNU Linuxに関しては起動しているコンテナのOS....
→ベースになっているOSとnginxが起動しているOS(コンテナ上のOS)が違うということは「複数のOSが起動しているであろう」という仮説です。
詰まる所、コンテナを作成しそれを配布するのが自分のやろうとしていることになりました。→まだ仮説の領域は出ていません。。。


なので、次回はコンテナの作成を行おうと思っております。

2017/05/08 追記
desuga,Dockerコンテナを使用するなら単純にVMを使用してイメージファイルを
共有する方が便利だと思ったのでDockerはTendorFlowでの実行環境用にしようと思います。。。。

Docker コンテナ構築

前回は、DockerをMacにインストールしました。

今回はDockerのコンテナ(起動するアプリケーションの基本になるもの)を構築します。
参考にしたサイトはこちらです。

qiita.com

早速、コンテナの構築を始めます。
まずは、インストールした、Dockerを起動します。(Dockerデーモン起動)
起動確認をしておきます。
ターミナルを起動して、「docker info」コマンドで確認します。

f:id:Takunoji:20170506201429p:plain

そして、「nginx(エンジンエックス)」のイメージを取得します。

以下のコマンドを入力
>docker pull nginx:latest

f:id:Takunoji:20170506201725p:plain

イメージの取得確認
>docker images

f:id:Takunoji:20170506202034p:plain

「nginx」が存在していることを確認します
そして、起動します。

>docker run -d -p 8080:80 --name webserver nginx

f:id:Takunoji:20170506202552p:plain


localhost:8080」にアクセス

f:id:Takunoji:20170506202532p:plain

これでウェブサーバーを起動できました。

そして、DB(PostgreSQL)のイメージを取得します。
参考にしたサイトは以下のサイトです。

qiita.com


docker pull postgres

f:id:Takunoji:20170506210531p:plain

インストール確認

f:id:Takunoji:20170506212725p:plain

起動してみます。

>docker run -it --name postgres -d postgres:latest

f:id:Takunoji:20170506213736p:plain

起動確認
>docker ps

f:id:Takunoji:20170506213848p:plain

「nginx」と「postgres」が起動しています。
次回は、OSの起動について確認します。

Dockerのインストール mac

前回はソースを眺めました、その他にTensorFlowの書籍、チュートリアルを読んでみましたが。。。結局何もわからず(笑)
数学の勉強を始める気にはなりませんで。。。

仕方ないので、とりあえずDockerのインストールをします。チュートリアルにも書いてたし。。。まぁTensorFlow & Dockerというところで(笑)
※Dockerを使用した方が簡単に使えるという情報をゲットしたためインストールすることにしました。

Dockerのインストールにはこちらを参照しました。

・Dockerのインストール、下記のサイトよりダウンロード(マックなのでりんごの方)

www.docker.com

f:id:Takunoji:20170505212729p:plain

自宅のネットワークスピードが遅いからなのか、結構時間がかかります。。。
というか、何も反応がないように思ったので手段を変更します。
以下のサイトを参考にします。

docs.docker.com

今回はStableの方をダウンロードします。

f:id:Takunoji:20170505215725p:plain

インストール完了

f:id:Takunoji:20170505215855p:plain

アプリケーション起動、以下の様な画面が出てきます。

f:id:Takunoji:20170505220303p:plain

しばらくすると、上部が緑色に変わります。

f:id:Takunoji:20170505220337p:plain


どうやら、上記の画面が出ている状態が「デーモン」(PCの裏側で動くプロセス)
が起動している状態を示していて「docker info」コマンドで以下の様な表示が行われる
1. ターミナルを起動する
2. docker infoコマンドを入力

f:id:Takunoji:20170505222555p:plain

とりあえずは、Dockerのインストールが完了⭐︎

TensorFlow Pythonに慣れる

前回は、インストールを行いました。その他にグラフィック用のAPIもあるらしい


今回は、pythonからTensorFlowにアクセスして起動します。
一応、macでターミナルを起動して実行しています。
./tensorにTesorFlowをインストールしましたので起動するのは
./bin/activateでした。

Pythonファイルを「test.py」で作成し以下の様に記述しました。

f:id:Takunoji:20170425221915p:plain

使用したエディタは「vi」毎度お馴染みですが一応以下を参照しました。

viエディタの使い方

tensorflowを変数「tf」で使用する様に宣言:1行目
node1を作成 :3行目

node2を作成:4行目

node1, node2をコンソール出力:5行目

テンソルフローのセッションを取得:7行目

node1, node2の配列を実行する → 詳細はよくわかりませんでした。

node1, node2からnode3を作成:10行目

node3を表示:11行目

node3を実行:12行目
【実行結果】

f:id:Takunoji:20170425222705p:plain

 

詳細部分はまるでわからないが、とりあえず座標を出力しているのかな?
詳細だけでなく全くわかりませんでした。

わかったのはtensorflowで「run」「add」をした値を表示すると上の様に出力されるということだけ(笑 )

 

TensolFlow 開発編〜プログラムでテンソルを動かす〜

この記事は以下のサイトを参考にして実行しています。

Getting Started With TensorFlow  |  TensorFlow


前回
の続きです。インストールしたTensolFlowを起動するところから始めます。
以下のコマンドを叩きます。
>source 「virtualenvのインストールしたディレクトリ」/bin/activate

f:id:Takunoji:20170423204130p:plain

くどい様ですが、「(tensol)」が表示されていることを確認します。

そして、今気がつきましたが、インストールは完了していませんで。。。。
以下の処理を行います。
pythonのtensorflowをインストールする

>pip install tensorflow

f:id:Takunoji:20170423213005p:plain

エラー文言が出ましたが、とりあえず無視(pipのバージョンは新しいため)f:id:Takunoji:20170423213253p:plain

これもエラーが出力されました。。。。
読み進めると「エラーが出たらこっちをやってね❤️」と記載があります。

1. pipのアップグレード
>sudo easy_install --upgrade pip

>sudo easy_install --upgrade six

2.tensorflowのインストール(pip用)
>export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl # 環境変数を設定する

>pip install --upgrade $TF_BINARY_URL

しかし、またエラーが。。。

自己解決しました。
1.tensorflowをアクティブにする

2.上記の処理を再実行
>pip install 。。。。と上記のコマンドを入力

そして起動確認(参考にしたサイトに「Validate Install」と書いている部分に記載あり)

f:id:Takunoji:20170423221106p:plain

なんか「command not found」と出ていますが、tensorflowが動いているので
とりあえず無視します。→後に戦うことになるでしょう(笑)

どうやら、仮想空間(actibvateした状態)が起動していないと読み込みができない様だ

 

 

人工知能 TensolFlowのインストール

以下のサイトを参考にして実行しています。

Installing TensorFlow on Mac OS X  |  TensorFlow

MacOsXへのインストール方法になります。
①-1ターミナルを立ち上げて以下のコマンドで「pipコマンド」をインストール
Pythonのインストールです。
>sudo easy_install pipf:id:Takunoji:20170422214940p:plain

①-2 virtualenvのインストール
>
sudo pip install --upgrade virtualenv

f:id:Takunoji:20170422215021p:plain

 

②virtualenvの作成(指定のフォーマットで。。。詳細は分かりませんでした。)
>virtualenv --system-site-packages targetDirectory(対象ディレクトリ)

f:id:Takunoji:20170422215050p:plain

③virtualenvのアクティベート(activate)

>source 「virtualenvのインストールしたディレクトリ」/bin/activate
もしくは
>source 「virtualenvのインストールしたディレクトリ」/bin/activate.csh
※使用できるもので良い(csh or tcsh)
実行後に以下の様な表示が出ればオッケ⭐︎

f:id:Takunoji:20170422220632p:plain

自分の実行結果は以下のとおり

f:id:Takunoji:20170422220601p:plain

f:id:Takunoji:20170422215951p:plain

もし「pipコマンド」が2.7とか3.??の場合はアップグレードして最新版にしてください


④「(tensol)」が表示されている状況がtensolflowの実行状態
終了するときは、以下のコマンドを実行する
>deactivate

⑤アンインストールはインストールディレクトリを削除する

その他。。。バイナリも(ウィンドウズで言う所の「exeファイル」)あるらしい
詳細は参考元のサイトをご参照されたし(笑)

Macでマインクラフトを起動する 

前回、ダウンロードしてきたマインクラフト(マイクラ)を起動してみます。

f:id:Takunoji:20170416105229p:plainこの様なアイコンがアプリケーションフォルダにありました。

クリックすると....こんな感じで起動処理が走ります。

f:id:Takunoji:20170416105425p:plain

そして、ログイン画面が開きます。

f:id:Takunoji:20170416112147p:plain

ここからログイン時のアカウントの作成が必要になるのですが。。。
Minecraftサーバーを立てるのにもアカウントの作成が必要なのだろうか?
フリーで提供するときは大体ユーザー登録などを要求するものですが(ユーザーを増やすといいことがあるからです)
ここは深く考えずに行くか?ちょいと調査してから判断しよう⭐︎

マインクラフトのインストール for mac

マインクラフトのインストールをやります。
ここのサイトからダウンロードします(無料版) Macでも可能みたい⭐︎

download.cnet.com


downloads.tomsguide.com

そして、Mincraft Forgeをインストール

files.minecraftforge.net

 

一応確認、起動するためにはJavaが必要になります。
現在自分の端末にはJDK1.8が入っています。

javaのダウンロード、及びインストールについては、こちらを参照ください

Java SE ダウンロード 最新版は英語のサイトから落とします(笑)

さらにjavaのバージョン確認を行います。

ターミナルを立ち上げて「java -version」と入力してenter keyを押下

f:id:Takunoji:20170415234310p:plain

上記の様にバージョンが確認できます。

実際にはJDK1.6(javaSE6)が必要だったので下記のサイトからダウンロードしました。

ダウンロード - Java for OS X 2015-001


次回は、マインクラフトを起動してみます。