head

2018年1月12日金曜日

tensorFlow/機械学習 関連まとめ

人工知能系ライブラリのtensorFlow ,その他 機械学習 開発まとめになります。
IoT連携、活用事例等を記載予定です。



# google colaboratory お試し編
http://knaka0209.blogspot.jp/2018/03/google-colab-1.html



# IoTデータから scikit-learnで線形回帰。
https://knaka0209.hatenablog.com/entry/sklern-1



# IoTデータ学習して chainerで時系列予測を出力する。
https://knaka0209.hatenablog.com/entry/chainer-1



# IoTデータから LSTMで時系列予測を出力する。keras+ tensorflow版
https://note.mu/knaka0209/n/nc4bc651439e2


# IoT + tensorFlowで未来予測値を表示するwebサービスを追加する
http://knaka0209.blogspot.jp/2018/01/tensorFlow-3.html


#IoTセンサー値から tensorFlowで予測値を計算する機械学習サービスを設置する
http://knaka0209.blogspot.jp/2018/01/tensorFlow-2.html


#IoTセンサー値から tensorFlowで未来予測値を計算して、GOOGLEHOMEで読み上げる
http://knaka0209.blogspot.jp/2018/01/tensorFlow-1.html


#IoTセンサー値から、TensorFlowの線形回帰で未来予測値を計算する。機械学習の入門編
https://note.mu/knaka0209/n/nc154ef7e2fe8







2018年1月7日日曜日

IoT + tensorFlowで未来予測値を表示するwebサービスを追加する

前回続き、tensorFlow/機械学習の関連となります。
IoTセンサー値から、tensorFlowを使った予測値の GoogleHome読み上げ機能に、
webサービス管理機能で、グラフ表示、データ表示等の機能を追加しました。

*) 構成的には 前回の予定と同じで、
当初予定していた部分の開発の最後になります。

# 構成
php 5.6
cakephp 2.10
mysql
その他


# チャンネル一覧


# フィールド一覧:  予測/実績 グラフ
*) 室内の温度を、数箇所測定しています。

青: 実績
黄: 予測




# ファイールド詳細
最新実績
予測 :1時間後 /6時間後







# 機械学習結果/tensorFlow、出力履歴



# モバイル
レスポンシブにしました。




# まとめ
前回の、バックエンドの機械学習/演算処理の負荷は気になるところでしたが。
定期更新された、予測係数を使って表示機能を実装すると。
ストレスなく表示できました。
GoogleHome機能に加え、気になるデータの視覚確認ができたり
利便性が向上した気がします。
見直し中ですが、改良を続けたいと思います。



# 関連、
tensorFlow/機械学習 関連まとめ
http://knaka0209.blogspot.jp/2018/01/tensorflow-matome.html


2018年1月4日木曜日

IoTセンサー値から tensorFlowで予測値を計算する機械学習サービスを設置する

前回続き、tensorFlow/機械学習の関連となります。
IoTセンサー値から、tensorFlowを使った予測値の GoogleHome読み上げ機能を前回公開しましたが、
定期的に、最新のtensorFlow結果を更新する為に
機械学習の演算処理や、server更新処理を Lan上の機械学習serverで行っていましたので
python server実装あたりの内容となります。



# 予定している構成
前回と同じ構成、機械学習処理は、
web-APIを使って
IoTから更新されるセンサー値を読み込み
tensorFlow結果を更新する処理を追加しています。

*) ボードPC(nano Pi NEO 51MB)に、機能を追加
python 2.7



# Linux version
>uname -
Linux NanoPi-NEO 4.11.2 #266 SMP Thu Jun 29 17:46:10 CST 2017 armv7l armv7l armv7l GNU/Linux



# code ,python 2.7 、 一部分ですが。
main 処理

tensorFlow処理、実績取得/更新の呼出など。 定期実行



# systemctl でサービス起動の設定
*) 下記の cronに変更しています。

service ファイルを追加して、
rasPi/BLE serverと同様に、起動処理を追加。

参考 の設定方法:
http://knaka0209.blogspot.jp/2017/07/raspi-6-BLE.html





### update :2018/01/19
常駐サービスの連続稼動テストした結果
tensorFlow 1.1で、メモリーリークが見られましたので、
cron起動に一旦変更しています。
*)最新 tensorflow -version は、対策されているかもです。
(nanoPi /rasPi インストール不可能みたいですが)

調整方法は、変数をdel 処理と、gc呼出で。
メモリ領域の削除で対応予定していたのですが、
なかなか消費メモリ量が減らず。。 cronに変えています
この変更のデメリットは、1サイクルの実行終了前に、次の実行処理が
二重に起動される可能性がありますので、起動間隔をあけておく必要があります。

設定例:
cron設定の確認
> sudo crontab -l
cron設定  (nanoで設定しました。)
> sudo crontab -e

例ですが、下記を追加しました。毎時10分に起動した場合です。
10 * * * * /usr/bin/python /home/pi/work/tensorflow/yosoku_update/yosoku_update_one.py

*)上記の呼出コードも、修正しています。
cronから呼ばれ
ループ無しの、単発実行 => 終了になります。




# 関連、
 tensorFlow/機械学習 関連まとめ
http://knaka0209.blogspot.jp/2018/01/tensorflow-matome.html


*)IoT側はBLE使用しています
device:
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html
nano Pi gateway:
http://knaka0209.blogspot.jp/2017/07/nanoPi-2.html




2018年1月3日水曜日

IoTセンサー値から tensorFlowで未来予測値を計算して、GoogleHomeで読み上げる

tensotFlow/機械学習の関連となります。
前の、IoTセンサーから、tensorFlowによる予測計算のアプリ側の組み込みが、少し進んだ為
全体的に見直し中ですが、メモしたいと思います。
今回は、GoogleHome(AI スピーカー)の連携部分を追加し、
問合せに対して、
指定場所のセンサー値、予測値を音声出力する機能を追加しました。


# 前の記事
IoTセンサー値から、TensorFlowの線形回帰で未来予測値を計算する。機械学習の入門編
https://qiita.com/knakaqi/items/d3699d15053e884dcac0

# 動画



# 予定している構成案

全体的に分散ぎみですが
IoTデバイスからのセンサー値は、管理serverにデータ送信。保存しておき
tensorFlowの機械学習サーバ機能を設置して、
定期的にセンサー値を読み込み、機械学習で線形の係数近似値を計算、
管理serverに更新。
GoogleHome=>webhook から、呼ばれた際に、必要な値をAPI経由で取り出し、
音声出力の、文章を組み立てて、ユーザーに出力。
実績更新と、予測に必要な計算も平行に実行更新する構成としています。

*)tensorFlowの機械学習処理は、重たい感じで。
低スペックPCで各センサー処理分を連続して実行すると、時間はそれなりにかかりそうです。
LAN上のボードPC(nano pi 512M)で実行しています。


# tensorFlow install
nano Piに、tensorFlowをインストール時に、
通常のLinux版は、インストールできなかったため、苦戦しました。。
https://www.tensorflow.org/install/

rasPi にインストール事例はありそうなので、参考にしました。
参考: Raspberry PiとTensorFlowを使ったディープラーニングの開発環境構築
http://karaage.hatenadiary.jp/entry/2017/08/09/073000

環境:
python 2.7
tensorFlow1.1
*) 約30分ほど、かかりましたが。
以前の、数本のpython3.5のコードも修正無しで動作できたました


# 前回と同じ、線形回帰による。
計算方法とし、予測値を計算しています





# code python2.7
webhookで、指定場所の分岐処理、実績/予測値の取得 まわりの処理
 


# まとめ
今回は構成の面で、機械学習の演算処理を負荷が重いため、
通信処理は追加となりましたが独立させて、
定期更新する方法を検討しました。
予測精度の改善や課題はまだ多いので。調査を進めたいと思います


# tensorFlow/機械学習 関連まとめ
http://knaka0209.blogspot.jp/2018/01/tensorflow-matome.html

# 関連、IoT側はBLE使用しています
device:
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html
nano Pi gateway:
http://knaka0209.blogspot.jp/2017/07/nanoPi-2.html



google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social