Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

TensorFlow2.0ついにリリース!

全く新しくなったTensorFlow

つい先程、TensorFlow2.0が正式リリースされたようです!!
(ブログを書こうと仮眠して起きたら『rc』が『stable』に変わってました(汗) ←今何時?)

日頃からTensorFlowを使用してあれこれしている筆者としては『やっとリリースされたか〜』という印象なのですが、そもそも『2.0』とかいうバージョンを初めて聞いたという方もいらっしゃると思うので、今回は『2.0になって何か変わったのか?』を整理していこうと思います。

『TensorFlow 2.0』と聞いて、一番大きく変わった点は、やはり『Define by Run』がデフォルトになったところでしょう。

f:id:jspnet:20191001055201p:plain

続きを読む

Raspberry Pi で Jupyter Notebook

はじめに

NumPy の勉強ついでに Raspberry Pi で Jupyter Notebook を動かして見ました。備忘のために記しておきます。

ポイント

  • Jupyter Notebook の(デフォルト)設定ファイルは jupyter-notebook コマンドで作る
    • 起動時にブラウザを起動させないようにしたい
    • listen アドレスを any(0.0.0.0)にしたい
  • パスワードを設定する
    • 設定しないと起動毎に違う(ハッシュを含む) URL をサーバから提示される
  • NumPy を使用するには libatlas-base-dev が必要
続きを読む

AIスピーカーの主役はマイク

スピーカーといっても・・・マイクが重要

モスキートーンのAIスピーカー(?) 後編 - Smile Engineering Blog では、高周波でAIスピーカーが反応するかというテーマで考えてみましたが、今回はAIスピーカーについてもう少し調べてみました。代表的なものは、Amazon Echo, google home, LINE Clova あたりでしょうか。例えば、Amazon社では、Amazon Echoのようなデバイスを開発するために「Alexa Voice Service(AVS) Device SDK」というもの公開しています。

Alexa Voice Service(AVS) Device SDK

Amazon Alexa Auto Software Development Kit
Alexa Voice Serviceの概要(v20160207) | Alexa Voice Service

Amazon社はAlexaをEchoなどの同社製品だけでなく、商用デバイスメーカーに向けてAlexaのSDKを一般公開しています。このSDKを利用してEcho以外にも幅広いデバイスに載せることが可能になります。

続きを読む

思考のサルベージ(その3)

各工程で心がけたい思想を掘り起こしてみる

「問題解析」、これを取り上げてみますか。製造工程の要ですね。 私が実際に経験したケースで考えてみます。

システム試験で問題発生

「システム試験であるシナリオを流したら、タイムアウトした。」と一報が入ました。そのシナリオは自分が担当しているモジュール(「モジュールA」としときましょう)がメインで動くシナリオなので、解析依頼が来て作業開始です。

解析手法

現場ごとに、いろいろですね。デバッガをつないだり、解析装置で信号線の入出力確認したり、ログだけが頼りなんて場合もあります。慣れない環境ではてこずる場合もありますが、ともかく限られたデバッグ情報をもとに原因を究明しなければなりません。 まずは報告通りの現象になっているかを確認しましょう。ここが食い違ってると話になりません。

システムの問題解析

解析担当になった時点で、担当モジュールの不具合を探すのではなく、システム内の不具合を探すという心構えが必要ですね。「モジュールA」がメインだとしても必ずしもそこに問題があるとは限らないわけですから。特に自分のモジュールの品質に自信が持てないとそのモジュール内の犯人探しに時間を浪費し、問題の本質を見落とす上に貴重な時間を浪費してしまいます。デバッグ情報から客観的に何があったかを見極めましょう。

「モジュールB」登場

調べてみると、「モジュールA」がスタックしていました。スタックしている原因を探ると「モジュールB」から想定外のデータが入力されているようでした。本来なら、「モジュールB」の担当者に解析担当を振って、ひとまず様子見ですね。ところが、、

時間がない!

問題が解決しないと週末の無人連続運転ができないとか、リリース期限が迫ってるとか、問題解決を急がされるケースがありますね。幸い各モジュールの担当者は同じフロアで作業しています。すぐに「モジュールB」の担当に来てもらい一緒にデバッグ情報を見てもらいました。すると、「モジュールC」から読みだしたデータをそのまま使っているとのことでした。すぐに「モジュールC」の担当に来てもらうとデータの設定は「モジュールD」が行うとのこと、、 最終的に、「モジュールE」の担当まで来てもらい、テストシナリオに必要なイベント送信が無いことが判明しました。解析担当を振っただけなら二日くらいはかかったかもしれませんが、数時間で問題解決です。この時、実際に各担当に声をかけたのは私ではなく「モジュールB」の担当者でした。

何か掘り起こせた?

  • 客観的にデバッグ情報から状況を正確に把握する
  • 周囲を巻き込む力 「周囲巻き込む力」はスピード勝負では特に大事ですね。「システム内の不具合を探す」というスタンスだからこそです。

おしまい

現場によっては別のモジュール担当が遠隔地にいるなんてこともありますね。そんな時はどうするべきですかね。問題は山積みです。

GANを試してみました!

話のきっかけ

弊社内で研修を行っているのですが、私はテーマを『AI』と設定し(普段の業務柄……)、画像認識の基本の話をしようかな〜と思って準備を進めようとしていたところ、とある会議にてこんな話題が出たんです。

「今GANとか流行ってるもんね〜。研修でそれ面白いかも。」

……ちょっと待ってください。私、GANをやるとは一言も言ってません!!!

などと半分冗談交じりにで聞いて、半分その言葉に完全に乗せられてしまい……今考えると、絶対に生半可な気持ちでやるものではなかったと完全に後悔していますが、とりあえず手を付けてしまったわけで。。。

題材は、JSPも会場の一つとなってる 東海道らぐ のマスコットキャラ、東海りなちゃんを学習させてみました。この東海りなちゃんは、元々 カスタムキャスト というアプリで生成されたものなのですが、そんな画像をAIくんは学習できるのか、試してみよう!というのが今回のお話です。

f:id:jspnet:20190820061055p:plain

ちなみに私自身は普段TensorFlowのソースコードを書くような仕事はしていますが、画像認識についてはほぼ初心者ですので、その点踏まえた上で読んでいただけたらと思います。

続きを読む