読者です 読者をやめる 読者になる 読者になる

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


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

UML クラス図を作る

前回はステートマシン図を作成したので今回はクラス図を作成します。
※astah*を使用して作成しています。

アプリケーションとしては、ファイル読込→動画の表示とシンプルなものなので
クラス図もシンプルです。(悲)

f:id:Takunoji:20170408110241p:plain

メインクラスにメインメソッド(今回は省略しました。)Qtを使用して作成する予定なのですが「どの言語でも作成できる様に設計する」ためにQtの部品などは記載しておりません。。。
そして、String, Listを使用するので<<include>>を上部に記載しております。

【キモになる部分】
MainClassより関連線が伸びております。これは、MainClassで関連先のクラスを保持
Java的に表現するなら「フィールド」、C++的に表現するなら「メンバ変数」(Javaでもその様に呼びますが。。。)

共通部品に関して、使用するフレームワーク、ライブラリ部品があるので記載はしませんが、ノート(青だか、紫だかわかりませんが(笑))で触れておきました。

UML ステートマシン図を書く

前回はオブジェクト配置図を書きましたので、今回はステートマシン図を書きました。
ズバリ、処理フロー図です(笑) 「状態マシン」とかいろんな言い方が書籍でありましたが、まとめると上記の様に解釈しました。

やっぱりこれも技術なので、「習うより慣れろ」の世界だと思います
細かい部分は調べればすぐにわかると思いますのでサンプルとして...

f:id:Takunoji:20170407230800p:plain

はじめに開始状態「●」が来るのですが、アプリケーションの起動=ラズパイの起動
を想定しているため開始状態にスイッチオン状態を記載しております。
起動トリガーが走り、設定ファイル読込。。。と処理が走ります。
図だけではビミョウ。。。とか感じたら「ノート」を使用します。(ピンク色)

割と詳細に近づいてきたかな?といった感じです。処理概要としては見やすいと思いました。