Translate

2018年3月28日水曜日

Watson Studio (Anaconda Free) の TensorFlow が 1.3.0 だった件

THINK2018 で鳴り物入りで出てきた Watson Studio。

Jupyter Notebookが動くと言うので早速試してみた。

..まあ無料で使わせてもらってる立場から
言うのもアレなんですけど..

GPU版はまだないのね...


Python3.5なのはいいとして..


import tensorflow が素直に動いたので、
おかしいなと思って

!pip list してみたら..


なんだ

TensorFlow 1.3.0 じゃん...








なぜか

キョーレツに湧き上がってくる

コレジャナイ感が...





もう一度いいますが...
タダで使わせてもらってるんですけどね..


2018年3月15日木曜日

Google Home アプリの実機テストは複数のアプリ同時にできない



対話システムの流れで
最近はいわゆるスマートスピーカ
Google Homeやら
Alexaやらのアプリケーション作成方法を調べている。

Alexaアプリ(スキルというらしいが..)の開発は
とても入りやすかった。

Amazon社がクラスメソッド社におそらくお金を出して作らせた
チュートリアルが無料公開されている。

Alexaスキル開発トレーニング(全6回)
https://developer.amazon.com/ja/alexa-skills-kit/training/building-a-skill


ぜんぶきちんと日本語だけど..一部UIがかわっているところがあり
そのあたりと..アクセス制御のあたりをうまいことやらないと動かない
という落とし穴はあるもののカン・経験・度胸のKKDエンジニアであれば
突破可能だ。


かわってGoogle、
きちんとガイドにはなっているものの..
全部の開発オプションが日本語対応されていないこともあって
一部しか日本語になっていない..

とはいえGetStartがあるのでこれに従って作ることは可能だ。

Amazon/Alexaスキルと比べるとGoogleのほうが複雑だが
なんとかSilly Name Makerを日本語で動かすことができた。

Amazonのトラップよりこっちは
UTF-8でindex.jsをつくらないとだめなことと
firebase.jsonを手書きで修正しないとfirwbase deployできないこと
くらいの経度な落とし穴だ。

なんとなくなれたので、もう1つプロジェクトを起こして
アプリを作り、さて実機テストしてやろうとしたのだけど..

あれ?片方しかうごかんなあ..


と、おもってAction Simulatorをあげたら..

..ん?一瞬 enableうんたらというカードがちょろっと出たなあ..



..もしやと思って、もう一方のプロジェクトも
Action Simulatorをあけたら..
同じ様に、右上に一瞬カードが表示された。

..どうも1つしかテストを有向にできないらしい..


無効状態がこれで..





有効がこんなかんじ..




※2018/3/16追記

上記画面でEnableにして画面を閉じてすぐに実機テストしたら動いていたのに
翌朝やってみたら動かなくなっていた..
で、Actions on Google consoleをひらいたら..Enableにします的メッセージが..

どうもEnableにしても、しばらくしたら自動でDisableになってしまうのか..


p.s.







Googleがgactions-CLI を翻訳したら

「怒りのCLI」

になるのか..

ランボーが、使ってそうなCLIだ...




2018年3月2日金曜日

TensorFlow 1.6.0でimportすらできない

本日正式版リリースになったTensorFlow1.6.0。


TeosnrFlow1.6.0をインストールして
jupyter notebook から

import tensorflow as tf

しただけで

The kernel appears to have died. It will restart automatically.
(カーネルが停止したようです。 自動的に再起動します。)

が出る問題がまだ解けない。
(コマンドラインだと illegal エラー(Core dumped)とかでる)


どうも

1.6.0リリースノート
https://github.com/tensorflow/tensorflow/releases/tag/v1.6.0

にある既知バグ(というか仕様ですと言い張られてる)

Prebuilt binaries will use AVX instructions. This may break TF on older CPUs.
(事前ビルドされたバイナリはAVX命令を使用します。 古いCPUでTFが破損する可能性があります。)

にあたるのだとおもうが..


processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 30
model name      : Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
stepping        : 5
microcode       : 0x3
cpu MHz         : 1200.000
cache size      : 8192 KB

のクワッドコアですら「古いCPU」なのか..

grep avx /proc/cpuinfo
grep avx2 /proc/cpuinfo

を実行してみたが..なにも表示されなかったし..



..しっかし、RCが出てずっと悩んでるけど
Twitterで騒いでいる日本人は全く見ない..


..日本人って、だれも本気でTesnsorFlow やってないのかね..


ps.

ちなみにAnacondaでpip installできるのは執筆時点で1.5.0まで;-p

..何やねん..

ps2.

FloydHubもなかなか1.6対応してくれんなあ..ともやもやしている
昨今、こんなツィートがあった



OracleのIaaSだとうごきそうだ..



※2018/03/16 追記

TensorFlow1.7.0-rc0 がでたのでだめもとでやってみたら..

ダメでした..

そりゃそうね..

AVXじゃだめだったんだよなあ.. AVX2 対応マシンかあ..

Google Home を買ったので Actions on Google のマニュアルを読んでみた

Google Home を買った。

厳密には mini なのだけど、とりあえず買った。

朝希少した時くらいので「OK Google、今何時?」と聞くときと、
朝家を出る前に「OK Google 今日、傘要る?」と聞く以外
特に使っていないのだけど..

とはいえ、どう動いているか、
アプリとか作って売れるのかがきになり

Actions on Google のガイドを読んだ
URLは、ここ: https://developers.google.com/actions/

いつものように翻訳文を載せていないのは
1/7 ほど翻訳されていて、残りは英語だけど
Chromeの翻訳ボタンで十分ことたりるからだ。

で、基本構成は

以下、想像を入れて書いているので
鵜呑みにしないでください。

Google Home:
初期設定にはスマホアプリが必要で
スマホアプリを動かすにはGoogleアカウントログインしないとだめ。
スマホとBluetoothで初期設定してGoogleアカウントとWiFiAPを登録したら
Google Homeはインターネット上のGoogleアシスタントサーバの様なクラウドサービスと
基本やり取りしながら応答音声を返す。
OSや構造はこうかいされていないようなので、
OSの構造を理解したいのなら類似OSのAmbient OSをしらべるのもいい。

Googleアシスタント:
サーバのようなものが有り、ユーザ発話によって登録されているActionPackageのなかから
最適なActionを選んで起動しその後はActionとユーザにやり取りを任せる。
ActionPackageはJSON型式で記述可能(Action SDK使用時)で、
Dialoflow開発の場合のActionプロジェクトで作成しているのはおそらくこのJSON構成なのだとおもう。

ActionPackage:

 これを読むとDialogflowで定義していた内容の関連がよくわかる。
・パッケージにはManifestがMAX1つ存在、必要なサーフェス情報等
・パッケージ内にAction群とEntity群、ConversationFulfillmentを定義
・Actionは、MAX1つまでのIntentとMax1つまでのFulfillmentで構成
・Intentは、Max1つまでのトリガとParameter群で構成
・Entityは、名前と類似単語群で構成

Fullfillmentを名前でcall しているのは単にAbstractFactoryパターンなわけではなく
ConversationActionを含むFulfillmentがありその本体が
Firebaseではない場合はURL指定できるようにしている。
ここがスマートホームへの拡張のミソになっている。

Fulfillment:
特定のIntentで必要なEntity群情報をユーザの発話から読み切ったら呼び出される
アプリケーション実体。
DBへアクセスしてもいいし、NoSQLであってもいい、MQTTへなげてもいいし、
XSSに違反しないのであればコグニティブだったりそうでなかったりするRESTAPIを読んでも良い。
リファレンスアプリがFirebaseなのは使ってほしいのはもちろんだけど、
XSS問題でGoogleサービス囲い込みや、このアプリ瞬間だけ起動なのだからEC2的な
常時インスタンス化しなくてもいいしょ?というGoogleアーキテクトの思いが感じられる。
..とかいってるけどAlexaスキルのドキュメントでも同じLambda推奨だけどね;-p

Fullfilmentはnodeパッケージ開発できるようにもなっており、
独自に開発もできるらしい。
それでサードパーティクラウドをよびだすこともできるし、
サードパーティクラウド自体がFulfillmentしてもいいようにできている。


で、ポイントはActionPackageのマニフェスト。
このアクションパッケージを実行するにはこんなサーフェス機能がいるよ。
というのがかける。
これは、HueなどのIoTデバイスを前提としたアクションパッケージを定義できるようにしているのだ。
しかもガイドの中をよむと、カメラ、食器洗い機、ドライヤ、ライト、冷蔵庫、スイッチ、サーモスタット、掃除機、洗浄機、コンセント(アウトレット)、シーン(?)..

..Google、白物家電屋の征服に入ったか!

Alexaを持つAmazon陣営も当然そうだろう。
あ!、Amazonは小売りという強力な立場を傘にきることができるし..

危険だ、日本の家電製造業..逃げてー!
 


 

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...