9/1に、OSSユーザの勉強会 TensorFlow編でGoogle 中井様(@enakai00)から、jupyterでTensorFlowの話がありましたので、jupyter notebookをUbuntu 14.04に、jupyter notebook & TensorFlowをインストールしてみました。
2016年9月4日
から hiruta
ubuntuにjupyter notebookを導入 #jupyter はコメントを受け付けていません
2016年9月4日
から hiruta
ubuntuにjupyter notebookを導入 #jupyter はコメントを受け付けていません
9/1に、OSSユーザの勉強会 TensorFlow編でGoogle 中井様(@enakai00)から、jupyterでTensorFlowの話がありましたので、jupyter notebookをUbuntu 14.04に、jupyter notebook & TensorFlowをインストールしてみました。
2016年7月26日
から hiruta
GCEにシリアルコンソール接続 はコメントを受け付けていません
getSerialPortOutputでもboot時のメッセージは確認はできますが、この方法だとread-onlyで、アクションを実行させることはできない。
シリアルコンソール接続てものが。
シリアルポート接続の有効化は以下コマンドで完了。
gcloud compute instances add-metadata [INSTANCE_NAME] \ --metadata=serial-port-enable=1
シリアルポート接続を有効にすると、Enable connecting to serail portsが有効化されます。Web UIでは有効にできなそう。
firewall ruleで22/tcpを閉じた状態でもコンソールのログインプロンプトが出ます。
https://cloud.google.com/compute/docs/instances/interacting-with-serial-console
注意書きにも書かれていますが、SSH鍵、IPアドレス、GCPプロジェクト名がわかっているとどこからでも接続できてしまう。IPベースのアクセス制限に対応してないとのこと。
2016年7月24日
から hiruta
GCPUG信州の機械学習の勉強会に参加しました。 #gcpug はコメントを受け付けていません
昨日GCPUG信州の機械学習がテーマの勉強会に参加してきました。
Speech API、βリリースにあたり、長い時間の音声ファイルの認識に使えるAsyncRecognizeの新機能が。gRPCプロトコルを使用している
CloudVisionAPI、Speech API、バックでは、DeepLearning技術は使われているので、Googleの基盤を少しわかった気がします。
2016年7月23日
から hiruta
Internal Load Balancing 登場 #gcpja はコメントを受け付けていません
待望の Google Cloud Platform (GCP)にも、L4ベースInternal Load Balancingが登場。
Private IPアドレスのインスタンスでLoad Balancingも可能に。
まだ、使えないので、ドキュメントからわかる範囲で書いています。αサービスが使えるようになれば後日レポートします。
ドキュメントはこちらから。 https://cloud.google.com/compute/docs/load-balancing/internal/
主な特徴としては。
もうPrivateなインスタンスのロードバランスの可用性に心配する必要がない
ユースケース
Google Cloud Internal Load Balancingは、Andromeda network virtualization stack上に構築された lightweight load-balancing、インスタンスベースではなく、ソフトウェアベースのロードバランシング
気になる点
gcloud alpha compute forwarding-rules create NAME --address ADDRESS --load-balancing-scheme internal
–capacity-scaler,–max-rate,–max-rate,-per-instanceのオプションはinternal load balacingでは使えません。
alphaバージョンでは以下制限があるようです。
三層構造のアーキテクチャー、イントラネット向けWEBインフラなどの構築に使えると思われます。
2016年7月10日
から hiruta
Windows10 IoT Core by Raspberry Pi 3導入 はコメントを受け付けていません
Raspberry Pi3に、Windows10 IoT Coreを導入。
Raspberry Pi3用Windows10 IoT Coreは、Onboard WiFiドライバ、miniUART、が有効、UARTバンドレートが増えた、GPIOパフォーマンスが向上など、機能向上が図られています。
※Raspberry Pi 3用のWindows10 IoT Core Release Imageが現時点(7/10)存在しませんので、The March 2016 Insider Preview for Windows 10 IoT Coreを使用します。
https://developer.microsoft.com/ja-jp/windows/iot にアクセスし、すぐを作業を開始をクリック。
①Select your board 「RaspberryPi3」
②Select your hardware 「Flash onto my blank microSD card」
③Select your OS version 「Windows 10 IoT Core Insider Preview」
②Download and install Windows 10 IoT Core Dashboard
Dashboardをダウンロードし、ダウンロードしたsetup.exeをインストールを行います。
すべてのアプリに、Windows 10 IoT Core→Windows 10 IoT Core Dashboardができています。
Raspberry Pi3用のWindows10 IoT Coreを取得します。※Windows Insider Programに参加要
Manually download and flash a custom image
①Get Windows 10 IoT Core Insider Preview
Buildは、7/10現在、14376(最新番)、14366が選択できます。
13376だと、Performance、Processes表示に不具合があります。
IoT DashboardからSDカードにOSを書き込みます。Windows10 IoT Core のAdministratorのパスワードはここで設定可能。後から、Web UIから等でも変更は可能ですが。
OSを書き込んだSDカードをRasberry Pi3に入れて、Windows10 IoTを起動するとIoT dashboardの自分のデバイスに表示されていると思います。名前解決もちゃんとできています。IPv6で。。
>ping minwinpc minwinpc [fe80::c846:c78a:c3ba:78%8]に ping を送信しています 32 バイトのデータ: fe80::c846:c78a:c3ba:78%8 からの応答: 時間 =3ms fe80::c846:c78a:c3ba:78%8 からの応答: 時間 =1ms fe80::c846:c78a:c3ba:78%8 からの応答: 時間 =2ms fe80::c846:c78a:c3ba:78%8 からの応答: 時間 =1ms
Windows10 IoT Coreは、Windows Updateにも対応しています。
実際アプリを開発するには下記が必要になります。
Raspberry Pi3用のStarter Packがないので、Raspberry Pi2用のドキュメントを確認し、3 Setup your PC 5 IoT Core Project Templates 、5 Enable devloper modeを行っておきます。
https://developer.microsoft.com/en-us/windows/iot/win10/kitsetuppcrpi
2016年7月3日
から hiruta
Google Cloud functionsで、Cloud Vision APIを #gcpja はコメントを受け付けていません
Google Cloud Functionsで、Cloud Vision APIを使ってみました。Cloud Functionsを使う利点は、credentialsをアプリに埋め込む必要がない点(内部でAWSだとIAM Role的にcredentialsを取得してくれる。)
まず、ディレクトリの作成。
mkdir visiontest; cd visiontest;
次に、ライブラリのインストール。node versionは、v0.12.7を使用。
npm install --save gcloud
node.jsのvision APIは以下を参照
https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.36.0/vision?method=detectText
Cloud functionsのコードサンプルは以下になります。
var gcloud = require('gcloud')({ projectId: 'xxxxxxxxxx' }); exports.visiontest = function (context, data){ var vision = gcloud.vision(); if ( data != null ){ var gcs = gcloud.storage(); var myBucket = gcs.bucket('vision-load-image'); var file = myBucket.file(data.name); vision.detectText(file, function(err, text, apiResponse) { console.log('text ', text); data = null; }); } context.success(); }
functionsをデプロイ。
gcloud alpha functions deploy visiontest --bucket deploy-bucket --trigger-gs-uri vision-load-image
以前デジカメで撮影した画像をGCSバケットにアップロード。
gsutil cp IMAG0105.jpg gs://vision-load-image/
Stackdriver loggingに、解析結果が表示されることがわかります。おもけに、精度も高い。コマンドでアップロードする場合は、1度のみ実行されるのだが、Cyberduckで画像ファイルをドラッグドロップすると、なぜうか2回functionsが実行される。
GCSに登録された画像を画像解析結果をBigQueryに蓄積していくようなことが可能になります。
安価なOCRシステムが構築できる!?チュートリアルも公開されています。
https://cloud.google.com/functions/docs/tutorials/ocr
今はまだnodeのAPIが公開されていないSpeech APIもよくよくは使えるようになるのかなあ。(GCSに音声ファイルをアップロードすると、音声ファイルを解析して結果を返すとか)
2016/9/22 Update
packages.jsonをデプロイするフォルダに置いておけば、npm install –save gloud等不要です。0.29.0からVision APIのfunctionが使えるようです。
{ "name": "visiontest", "version": "1.0.0", "main": "index.js", "dependencies": { "gcloud": "^0.37.0", "node-uuid": "^1.4.7" } }
2016年6月12日
から hiruta
Google Speech APIを使ってみました! #gcpja はコメントを受け付けていません
Limit PreviewのGoogle Speech API少し使ってみました。
音声マイクとしては以下を利用。
まずは、SoX Sound eXchangeをダウンロード
https://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2-win32.zip/download
次に、ダウンロードしたSoX Source eXchangeを適当なフォルダに展開
rec.exe、play.exeをsox.exeをコピーして作成
copy sox.exe rec.exe
copy sox.exe play.exe
AUDIO DEVICE DRIVERの環境変数の設定を行います。
set AUDIODRIVER=waveaudio
rec -c 1 -r 16k output.wav
そこで、マイクから音声を録音し、FLAC形式に変換まで行っておきます。
sox output.wav output.flac
Speech API用のサンプルを取得します。
REST APIでSpeech APIを使用することもできますが、この場合、publicな権限がないとGCS上の音声ファイルを読み込むことができないので、publicでないGCSバケットの音声ファイルを解析するには、下記サンプルのようにcredential認証をアプリケーション内部で行う必要があります。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
日本語を解析させるには、python-docs-samples/speech/api/speech_gcs.pyで一カ所修正する必要があります。変更内容についてはクローズな情報になっていますので、ここでは記載は差し控えます。
python speech_gcs.py gs://xxxxxxxx/output.flac gs://xxxxxxxx/output.txt
レスポンス待つことなく返ってきます。おまけに高精度で。
$ cat output.txt { "responses": [ { "results": [ { "alternatives": [ { "transcript": "おはようございますこんにちは", "confidence": 0.95833784 } ], "is_final": true } ] } ] }
言語コードの設定をしないと、『ohayo gozaimasu konnichiwa』となります。
Speech APIの言語も、英語、日本語をはじめ、90言語近くに対応しており、今後Google Homeとのバックエンドに使われそうな予想はしています。
2016年5月8日
から hiruta
Cloud FounctionsでBigQueryにデータを登録 #gcpja はコメントを受け付けていません
Goolge Cloud Function フルマネージド化されたことでBigQueryへのセンサーデータの送信用のモジュールを書きました。エラー処理とかされていない素の状態です。
nodeのバージョンはFunctions側とそろえておく必要がありますので、npmもfunctions側と同じバージョンを利用。
まず、gcloudモジュールの導入。
gcloud client libraryについては、こちらを参照してください。
../node-v0.12.7-linux-x64/bin/npm install gcloud --save
次に、コード本体。プロジェクトIDの記載は必要ですが、credentialsなどは不要です。functions側で自動認証されていると思われます。
var gcloud = require('gcloud')({ projectId: 'XXXXXXXX' }); exports.bigquerytest = function (context, data){ var bigquery = gcloud.bigquery(); var dataset = bigquery.dataset('iot_data'); var table = dataset.table('sensor_data'); table.insert({ TIMESTAMP: data.timestamp, temp: data.temp }, insertHandler); context.success(); }; function insertHandler( err, insertErrors, apiResponse) { }
gcloud alpha functions deploy bigquerytest --bucket gs://XXXXXXXX --trigger-http
実際データを投入します。
curl -X POST https://us-central1.XXXXXXXXXX.cloudfunctions.net/bigquerytest -d '{"timestamp":"2016-05-08 18:06:00","temp":20}'
2016年5月8日
から hiruta
Google Cloud functions フルマネージドサービスに移行 #gcpja #gcpug はコメントを受け付けていません
5/4以降、Google Cloud functions フルマネージドサービスに移行されました。
フルマネージド移行前からCloud functionsのAPIをEnableにしている場合、Disable→re-Enableが作業が必要になります。過去Functions APIをEnableしたIAMアカウント毎に作業が必須。そうでないと、GKE clusterが起動してしまいます。
また、プロジェクト内にfunctions用のGKE clusterの削除やGKE cluster用に割り当てられたExternal IPもリリースしておきます。
リージョンで初めてデプロイする場合、4分程度かかります。初期設定とか行っているのか。
2度目以降は、10s程度で完了する。8h時間程度間を開けても、10s程度で完了するようです。
functions用のサーバーはunameで確認すると、debian8が動いていることがわかります。
node runtimeは以下になっているので、node moduleを組み込む場合、バージョンをそろえておく必要があります。
v0.12.7
Stackdriver Loggingにもget-logsの内容を確認できます。
asia-east1はまだ対応していないので、europe-east1かus-central1で。
$ gcloud alpha functions deploy helloworld --region asia-east1 --bucket gs://cms-stg-deploy --trigger-http
ERROR: (gcloud.alpha.functions.deploy) ResponseError: status=[400], code=[Bad Request], message=[The request has errors Problems: region asia-east1 is not supported ]
Cloud functions自体に、HTTP(S)トリガー機能があるので、raspberry piとかIoTデバイスのセンサー情報をBigQueryに
送信することに使えると思います。
HTTP(S)トリガーですが、POSTのみ対応なので、注意が必要です。
2016年4月8日
から hiruta
gcpja night に参加しました。 #gcpja はコメントを受け付けていません
4/6 gcpja nightに参加しました。ポイントを。
Google PhotosとかNeural Networkがバックエンドで使われている
iOS app in Swift でラベル認識結果をfirebaseに送るデモ
Speech API
4ステップ程度で簡単に使える。多言語対応はされていない
周囲のノイズの環境でも問題ないようなことも
Cloud BigTableは、R/Wとも高速。ただし、GCEとCloud BigTableは同一リージョンにいる場合。
http://googlecloudplatform-japan.blogspot.jp/2016/04/cloud-bigtable-250.html
ダウンタイム無しでディスク拡張ができる。auto resizingに対応しているOSとしていないOSがあるようです。詳細に記載されています。
https://cloud.google.com/compute/docs/disks/persistent-disks#resize_pd
GCP Nextでは新サービスの発表もさほどなかったとのこと。東京リージョン発表も先出しになったし。
キーノートをライブで見ましたが、セキュリティ、インフラの優位性をアピールしていたとのこと
Vision API個人識別まではできない。Google Photos等 のサービスで年齢とかできているので、Vision APIは個人識別とかは省かれているかも。
Cloud Machine Learning
GPU計算にも対応。GPUインスタンスも今後出る可能性もある?
BigQueryも90日以上前のデータのストレージ単価は1/2。スキーマの自動検出
CloudIAMにより、リソース制限を細かく。