194_php_photo (Google Cloud Vision APIを勉強)

phpでファイルのアップロードします。
passをうまく伝えて、AI(google vision API)を動かすため。
ここを参考にしました。
http://www.php-labo.net/tutorial/php/upload.html
まずは 20170318_photo.html を作成し、以下のHTMLを書きます。
共用サーバなので、場所は、
/php_photo_20170318
のディレクトリを作成してここに保存
(=/home/dasudasu/wwwに作るのと同じ、、懐かしい。。。)
なので、
http://dasudasu.sakura.ne.jp/php_photo_20170318/20170318_photo.html
がアドレス
コードは、
======================
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>sample</title>
</head>
<body>
<form action=”upload.php” method=”post” enctype=”multipart/form-data”>
ファイル:<br />
<input type=”file” name=”upfile” size=”30″ /><br />
<br />
<input type=”submit” value=”アップロード” />
</form>
</body>
</html>
======================
うまくまずは表示OK!
(図1)

193_Google Cloud Vision APIを勉強

Google Cloud Vision APIを勉強
Google Cloud Vision APIを使って画像解析を試してみた(with PHP)

Google Cloud Vision APIを使って画像解析を試してみた(with PHP)


を参考に(っつうかそのまま)試してみます。すみません。

プロジェクトの作成
まずは、下記URLへアクセスか。。
https://console.cloud.google.com/home/
(図1)
「vision-project」で新プロジェクトを作成。
(図2)
おお、数秒したら、確かにプロジェクトできたワ!
(図3)
Google Cloud Vision APIを使用可能状態にする、、か。
検索ボックスに「vision」と入力。すると候補として「Cloud Vision API」が出てくるので選択
「有効化」をクリック!
(図4)
うーーーーん、課金情報を入れないと進まないのか。。今日はここまでにしよ!冷静になって。。
以上。

192_AI挑戦_h20ai (3)_続き_やってみた ・でもNG

さらに。。。多分データを追加して精度を上げたのかと思う。。。。
「日経平均のデータだけでなくいろんな国の指標を入れたら上手くいった(かも)
という感じでしたので、真似してみます。」
私はさらにそのマネ。。。。すみません。。。
データの準備
ダウンロードしたのは「日経平均、香港、Dow、FTSE 100」の四つ 。。。と。
あれ???どこからDLするんだろ????
ちょっと。。今日はここまで。。。。
(多分、同じ日付データを何種類か年月日でvlookマージして同じように確率をとるのかな。。。。????)
以上
本当(できなくて)すみません。。
—————————————————————
なので、、、、、、
データもサンプルをそのまま使わせていただいて、同じ事をやってみます。
(すみません。。。)
4情報のマージファイルは、そのまま。。。
「20170306_kabu_4data」
これを読み込みます。(すみません)
(図1)
 
parseします。
(図2)
 
さらに、setup perseします。
(図3)
 
jobでviewをします。
(図4)
 
splitします。
(図5)
 
createします。
(図6)
flame0.75を使う。
(図7)
 
Build Modelを選択します。「Deep Learning」を選択
(図8)
 
おなじように、

活性化関数 : RectifierWithDropout

  • 隠れ層 : 50,25
  • epoch(=学習回数?) : 1000
  • input_dropout_raito : 0.1
  • l1 : 0.001
  • l2 : 0.001
を設定して、Build Modelを押下
(図9)なんか時間かけてやっとる。。。。
 
viewを見る。
(図10)
 
結果。。。。
 どなんだろ?????
以上

191_AI挑戦_h20ai (2)_ファイル分割から

では続き!
①プロンプト
> cd Downloads\h2o-3.10.4.1
> java -jar h2o.jar
②Web
http://localhost:54321
C:\Users\h1729\Desktop\20170305_data_nkx_d
をインポート
parse
job
view
まで来て再度!続き!!!
「ファイルを分割」、、から
インポートしたデータを学習用のデータとテスト用のデータに分けます。
splitボタンを押して。。。と。
createを押す
(図1)
分割された。。。らしい。。
(図2)
学習にはframe_0.75を使う。。。らしい。。。
5.学習モデルの準備
Build Modelを選択
(図3)
で、DeepLearningを選択!
(図4)
・traning_frame(=学習データ)にframe_0.750を
・validation_frame(=テストデータ)にframe_0.250を
・responce_column(=予想したい列)にHighLowを
と。(そのまま。ごめんなさい。)
ハイパーパラメータの設定、、がややこしいらしい。。
合わせて、そのまま、、
活性化関数 : RectifierWithDropout
隠れ層 : 50,25
epoch(=学習回数?) : 1000
input_dropout_raito : 0.1
l1 : 0.001
l2 : 0.001
とします。(まったくなんのことやら????)
(図5)
で、BuildModelを押す。らしい。。。。
(図6)
何やら、結果が出たらしい。。。Viewを押します。
(図7)
上が「学習データ」における結果・下が「テストデータ」における結果。。。らしい???
(図8)
(私も)全てHighと予測されました
正解率は
学習用データで約53%?
テスト用データで約53%?
となりました。????
Webの先生も大失敗(多分データの精度の事?)、、と言っているので、私も失敗なのでしょう。
でも、私もツールの使い方は何となくわかりました。!
以上

190_AI挑戦_h20ai (1)_H2Oaiインストール

【プログラミング不要】ディープラーニング(h2o.ai)で株価予測をやってみた
を参考に、いよいよAIに触れてみる。
http://andoo.hatenablog.com/entry/deeplearning_kabu
「一通りの流れを自分でやってみたい」に賛成で、そのまま習って手順通りに。
データの準備
1.データのダウンロード
データが無いと何も始まりませんので、データを準備します。
今回はこちらのURLから日経平均のデータをダウンロードしました。
株価データ倉庫の無料データダウンロードページ
http://www.geocities.co.jp/WallStreet-Stock/9256/data.html
2.データ整形の考え方
上でダウンロードしたCSVファイルが、各行には「日付、始値、高値、安値、終値、出来高」が入ってます。
ディープラーニングでデータを入れる際にはそれぞれの行が独立したデータ扱いをされます。。。と。
前日との関連性を示すデータを持っていません。そこで、新規に前日との比較をする列を追加します。。。と。
HighLow列を加えて、各行に式を習っていれます。
=IF(E3<E2,”high”,if(E3>E2,”low”,”same”))
翌日が上がる場合はhighを
翌日が下がる場合はlowを
変化が無い場合はsameを
これでデータの準備ができましたので、このCSVファイルを使ってディープラーニングをやっていきましょう。
(私もできました。)
(図1)
実践、、、という事で。
ツールのインストールをするらしい。。
1.H2Oのインストール
ダウンロード・インストール方法はこちらのURLをご覧ください。、、と。
H2Oを使った未来予測 その準備と具体的使い方について | clew
http://antena.tokyo/h2o%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%9C%AA%E6%9D%A5%E4%BA%88%E6%B8%AC%E3%80%80%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E8%AA%BF%E6%95%B4%E3%81%8C%E5%88%86%E3%81%8B#H2O
に行きます。
「新しくなった H2O 実際に使ってみよう」へ

Download


よりダウンロード。。か

(図2)
左下の「Download H2O Latest Stable Release」をクリック
(図3)
中央の「Download H2O 」をクリックして、zipファイルをDL
(図4)
手順も書いてある。。英語だけど。。。。
Get started with H2O in 3 easy steps
1. Download H2O. This is a zip file that contains everything you need to get started.
2. From your terminal, run:
cd ~/Downloads
unzip h2o-3.10.4.1.zip
cd h2o-3.10.4.1
java -jar h2o.jar
3. Point your browser to http://localhost:54321
さて、DL終了。
(図5)
では、コマンドプロンプトで指示どおりに。。。ごくっ。。。
h2o-3.10.4.1.zipがインストールされとるね。
(図6)
> unzip h2o-3.10.4.1.zip
(図7)
> cd h2o-3.10.4.1
> dir
(図8)
> java -jar h2o.jar
ENTER を押してズラズラ~とコマンドが動けば成功です。。。。と。
次にブラウザを開きます。
http://localhost:54321
へ、表示されました。。。どうやるんだろ??
(図9)
※注意:アクセスに使ったコマンドプロンプトを閉じてしまうとブラウザ上のH2Oもアクセス不能になります。使用中は付けっぱなしにしておいてください。。。。とな。
では、「importFiles Import file(s) into H2O」をやってみる。。。
ファイルは、
C:\Users\h1729\Desktop\20170305_data_nkx_d
では!
(図10)
次にparseを押したら、勝手に飲み込まれた様子。。。。
(図11)
Jobという画面が出ました!
(図12)
で、Viewを押します。アクションを選択できるようになります。。。と。
(図13)
ちなみにViewDataをみると、、、
(図14)
OKみたいね。。。
いったん終了。
このあと、ファイル分割へ!
以上

189_RPi>sakuravps側のcrontab設定_条件文でコメント変更

sakuravps側でのcrontab設定
passそのままなのでwarning出るので。。早めに直そ。
 
***************************
■crontabの設定
***************************
10 * * * * mysql -u ra******ai -pAa******56 20****301_m*****ure_se***or < 20170303_sql_ms_upd1
***************************
■crontabでSQL実行させるファイル”20170303_sql_ms_upd1″
試しSQL(OKになったもの)
***************************
UPDATE `ms_tbl` SET `adc`=100,`read_adc`=100,`volts`=100,`comment`=100  WHERE Num = 33;
***************************
UPDATE `ms_tbl` SET
`time_stamp` = CURRENT_TIMESTAMP,
`adc`=@adc_d,
`read_adc`=@read_adc_d
WHERE Num = @num_d;
***************************
SELECT Num, adc, read_adc into @num_d, @adc_d, @read_adc_d
from ms_tbl WHERE Num IN (SELECT max(Num) FROM ms_tbl);
UPDATE `ms_tbl` SET
`time_stamp` = CURRENT_TIMESTAMP,
`adc`=@adc_d,
`read_adc`=@read_adc_d,
`volts` = (
case when @read_adc_d > 50
        then ‘read_adc>50’
     when @read_adc_d < 20
        then ‘read_adc<20’
else
        ‘read_adc=20-50’
end),
`comment` = ‘2017/03/04_chg_comment’
 WHERE Num = @num_d;
***************************

188_RPi>sakuravps, crontab設定

RPi_2のcrontab設定です。
まずはRPiでのダミーデータ(ランダム関数)を生成し、
それをsakuravpsに提示転送、グラフ表示まで!

****************
RPi_1のcrontab(参考)
****************
50 * * * * sudo python 20170205_pytosql6.py
51 * * * * sudo python 20170206_sndsak2.py
30 * * * * sudo python 20170211_tmp1sql1.py
31 * * * * sudo python 20170206_sndsak2.py
****************
RPi_2のcrontab
****************
10 * * * * sudo python 20170227_pytosql1.py
11 * * * * sudo python 20170303_snd_skr_ms1.py
以上

187_send_SQL_data_RPi>sakuravps, 20170303_snd_skr_ms1.py

sakuravps側でprivileges設定が必要だね。外部アクセスには。
参考は、
142_MySQL_外部ホストからのMySQL接続
grant all privileges on 20170301_moisture_sensor.* to raspai@”%” identified by ‘Aa123456’ with grant option;
(図)Before
(図)RPi側のMySQL、最新データを転送します!!!
(図)After
(図)sakura側のMySQL、20番目にRPiからのデータが入りました!!!
結局pythonファイルは、下記
****************
ありかは、
/home/pi
****************
ファイル名は、
20170303_snd_skr_ms1.py
****************
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# import module
import os
import random # モジュールのインポート
# ドライバをimport
import mysql.connector
if __name__ == ‘__main__’:
# データベースに接続
# localhost access ok!!!!!
        connect = mysql.connector.connect(user=’root’, password=’root’, host=’localhost’, database=’moisture_sensor’, charset=’utf8′)
cursor = connect.cursor()
# select
cursor.execute(‘select * from ms_tbl order by Num DESC limit 1’)
rows = cursor.fetchall()
# 出力
for i in rows:
        print(“—send below data to sakravps success !!—-“)
        print(i[0])
        print(i[1])
        print(i[2])
        print(i[3])
        print(i[4])
        print(i[5])
# sakuravps access
connect = mysql.connector.connect(user=’raspai’, password=’Aa123456′, host=’160.16.50.187′, database=’20170301_moisture_sensor’, charset=’utf8′)
cursor = connect.cursor()
# insert
cursor.execute(‘insert into ms_tbl(time_stamp,adc,read_adc,volts,comment) values (%s, %s, %s, %s, %s)’, (i[1],i[2],i[3],i[4],i[5]))
# Delete
cursor.execute(‘DELETE FROM ms_tbl ORDER BY Num ASC LIMIT 1’)
# autocommitではないので、明示的にコミットする
connect.commit()
# データベースから切断
cursor.close()
connect.close()
****************
以上!!

186_mysql & php google graph for 20170301_moisture_sensor

Moistureセンサの準備、久しぶりにsakuraサーバのMySQLデータのgoogleグラフ化。変数項目の修正だけでいけました!よかった。。。
■php表示ファイルのありか
/var/www/html/mois_gra
■php表示ファイル名
mois_gra1.php
<!DOCTYPE html>
<html>
  <head>
    <!– AJAX API のロード –>
    <script type=”text/javascript” src=”https://www.google.com/jsapi”></script>
    <script type=”text/javascript”>
    // Visualization API と折れ線グラフ用のパッケージのロード
    google.load(“visualization”, “1”, {packages:[“corechart”]});
    // Google Visualization API ロード時のコールバック関数の設定
    google.setOnLoadCallback(drawChart);
    // グラフ作成用のコールバック関数
    function drawChart() {
    // データテーブルの作成
    var data = google.visualization.arrayToDataTable([
       <?php
       //MySQLに接続し、データベースを選択します。
       $conn = mysql_connect(‘tk2-201-10183.vs.sakura.ne.jp’,’root’,’yoshihara20160805′) or die(mysql_error());
       mysql_select_db(‘20170301_moisture_sensor’) or die(mysql_error());
       //SQLクエリを実行します。
       $res = mysql_query(‘SELECT * from ms_tbl order by Num DESC LIMIT 10’) or die(mysql_error());
      //$res = mysql_query(‘select * from ms_tml where water_need=”insert real data” and Num > ((select max(Num) from t_sensor)-30)’) or die(mysql_error());
      //$res = mysql_query(‘select * from t_sensor where water_need=”insert real data” order by Num DESC LIMIT 10’) or die(mysql_error());
      //$drawScript ='<br>グラフデーターを書くまでの記述<br>’;
       $i = 0;
       while ($row = mysql_fetch_array($res, MYSQL_NUM)){
       if ($i != 0) {
           $drawScript .=”, [‘” . $row[1] . “‘,” . $row[2] . “,” . $row[3] .  “]”;
       } else {
           $drawScript .= “[‘日時’, ‘adc’, ‘read_adc’], [‘” . $row[1] . “‘,” . $row[2] . “,” . $row[3] . “]”;
           // 一つ目の項目は 前に コンマ がいらないのと要素を入れる必要があるため
       }
        $i++;
       }
        print $drawScript;
        //結果セットを開放し、接続を閉じます。
        mysql_free_result($res);
        mysql_close($conn);
       ?>
   ]);
    // グラフのオプションを設定
    var options = {
        title: ‘温度・湿度グラフ’
    };
    // LineChart のオブジェクトの作成
    var chart = new google.visualization.LineChart(document.getElementById(‘chart_div’));
    // データテーブルとオプションを渡して、グラフを描画
    chart.draw(data, options);
    }
    </script>
  </head>
 
  <body>
    <!– グラフを描く div 要素 –>
    <div id=”chart_div” style=”width: 80%; height: 400px;”></div>
    <br>
    表示データ<br>
    *****************************<br>
    [  日時  , adc , read_adc  , comment ] <br>
   <?php
    //MySQLに接続し、データベースを選択します。
    $conn = mysql_connect(‘tk2-201-10183.vs.sakura.ne.jp’,’root’,’yoshihara20160805′) or die(mysql_error());
    mysql_select_db(‘20170301_moisture_sensor’) or die(mysql_error());
    //SQLクエリを実行します。
    $res = mysql_query(‘SELECT * from ms_tbl order by Num DESC LIMIT 10’) or die(mysql_error());
    //$res = mysql_query(‘SELECT * from ms_tbl where water_need=”insert real data” order by Num DESC LIMIT 10’) or die(mysql_error());
    //結果を出力します。
    while ($row = mysql_fetch_array($res, MYSQL_NUM)){
    echo “[\n”;
    echo $row[0].”\n”;
    echo “,\n'”;
    echo $row[1].”\t”;
    echo “‘,\n”;
    echo $row[2].”\n”;
    echo “,\n”;
    echo $row[3].”\n”;
    echo “,\n”;
    echo $row[4].”\n”;
    echo “,\n”;
    echo $row[5].”\n”;
    echo “],\n”;
    echo “<br />\n”;
    }
    //結果セットを開放し、接続を閉じます。
    mysql_free_result($res);
    mysql_close($conn);
   ?>
    *****************************<br>
  </body>
</html>
以上
(寺田病院の病室より!)

185_mysql connector Python インストール on RaspberryPi

mysql connector Python インストール
下記参考
【さくらVPS】mysql-connector-pythonをインストール(Python 2.7.11)
http://supi.sakura.ne.jp/conquest/2016/05/05/%E3%80%90%E3%81%95%E3%81%8F%E3%82%89vps%E3%80%91mysql-connector-python%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%ABpython-2-7-11/
事前チェック(2.7以上かどうか)
$ python -V
Python 2.7.9
pipインストール
$ curl -kL https://bootstrap.pypa.io/get-pip.py | python
許可がない!と怒られたのでrootになります。
# curl -kL https://bootstrap.pypa.io/get-pip.py | python
mysql-connector-pythonインストール
# pip install mysql-connector-python
(私も)ここでエラーが出た。で確か”ーrf”つけるとうまくいくと。。。
# pip install mysql-connector-python-rf
行った感じ!!!
=======================
とりあえず、ファイルは、下記
=======================
20170227_pytosql1.py
=======================
コードは、下記
=======================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# import module
import os
import random # モジュールのインポート
# ドライバをimport
import mysql.connector
if __name__ == ‘__main__’:
# データベースに接続
# localhost access ok!!!!!
        connect = mysql.connector.connect(user=’root’, password=’root’, host=’localhost’, database=’moisture_sensor’, charset=’utf8′)
cursor = connect.cursor()
# sakuravps access
# connect1 = mysql.connector.connect(user=’raspai’, password=’Aa123456′, host=’160.16.50.187′, database=’20161129_sensor’, charset=’utf8′)
# cursor = connect1.cursor()
temp=random.randint(0, 50)
humid=random.randint(0, 100)
# insert
# cursor.execute(‘insert into t_sensor (time_stamp,temp,humid,water_need,memo) values (now(), %s, %s, %s, %s)’, (100,100,’20170205test’,’test_success_2017/02/05′))
cursor.execute(‘insert into ms_tbl(time_stamp,adc,read_adc,volts,comment) values (now(), %s, %s, %s, %s)’, (temp,humid,’RaspberryPi_2_20170226′,’insert test 2017/03/01′))
# Delete
# cursor.execute(‘DELETE FROM t_sensor ORDER BY Num ASC LIMIT 1’)
# select
cursor.execute(‘select * from ms_tbl order by Num DESC limit 10’)
rows = cursor.fetchall()
# 出力
for i in rows:
        print(“————————“)
        print(i[0])
        print(i[1])
        print(i[2])
        print(i[3])
        print(i[4])
        print(i[5])
# autocommitではないので、明示的にコミットする
connect.commit()
# データベースから切断
cursor.close()
connect.close()
=======================
動作結果は、下記
=======================
=======================
phpmyadminも下記
=======================
OK!!!