Smile Engineering Blog

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

Marp CLI による PDF 作成

はじめに

ここ最近、技術発表などのスライドは [Marp] を使って作成することが多いです。編集には Visual Studio Code の Extension([Marp for VS Code])を用いますが、commit したタイミングで PDF が自動生成されると便利なのではないかと思い、前段階として CLI による PDF 作成の方法を調べました。

続きを読む

信号処理とMIPS

MIPS 【 Million Instructions Per Second 】 とは

信号処理や組み込みの分野では、アルゴリズムを提供するソフトウェア(ファームウェア)が、どれくらいの処理量(演算量)が必要なのか問われます。例えば、信号処理の性能を示すものには、処理された結果の品質があると思います。良い品質が提供できるとした時、もう一つ重要な指標に演算量があります。高品質な結果を提供するソフトウェアでも、スーパーコンピューターが必要では非現実的になってしまいます。

信号処理のソフトウェアの演算量を示す指標として、MIPSが良く使われています。

MIPS

コンピューターの処理能力を表す単位。コンピューターが1秒間に何百万回命令を実行できるかを示す。

MIPSとは、このように説明されていることが多いです。確かにこの通りなのですが、ハードウェアの性能を示すものとして説明されている場合がほとんどです。

分かりやすいところでは、CPUのデータシートに、動作クロック100MHz, 100MIPS などと書かれていた場合は、CPUの処理性能を示しています。

動作クロック100MHzで100MIPSとは 1サイクルで1命令実行できる
100,000,000命令 / 100,000,000Hz = 1命令 100MHz × 1命令 = 100MIPS
続きを読む

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

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

「問題解析、山積み編」です。不具合解析が1件また1件と、どんどん溜まっていくと焦りますね。たいがいそんなときは、ミスをしがちです、私は。

優先順位

システムテストチームから解析依頼がまとめて4件。焦るなと心を落ち着かせて、まずは、対応する優先順位を決めます。順位付けの判断基準としては

  • その不具合で、他のテスト項目が多数消化できない。(これは、テストチームが速く解決しろと言ってきますね)
  • 正常系ど真ん中。
  • 準正常系や異常系

とかですね。「こないだ直したはず??」なんてのも結構ハイプライオリティです。

ひとつづつ、確実に

優先順位に従って、ひとつづつ解析しましょう。自分の力と、自分に足りない部分は他の人の協力を総動員です。何件溜まっていても、1件ごとにやるべきことは何も変わりません。

すべて解決

私が実際にしでかしたことは、(はい、1度や2度ではありません)1件目、2件目はポンポンと解決して、3件目にやや時間がかかり、4件目を見ると、、、。なんだ、担当外のモジュールがエラー返しているからうまく動いてないんだ。と判断し、そのモジュールの担当に解析作業を振って、すべて解決。その結果。

いつの間にか「解決したい」が「終わらせたい」に

しばらくすると、解析依頼を振ったモジュール担当から、「そっちのモジュールからの入力値に従って処理した結果のエラーです。で、細かく調べてみたらてみたら、云々・・・・。」親切丁寧に説明をいただき、ようやくこちらの問題と気づきました。反省しきりです。やはり、焦っていたようです。「解決したい」という心構えが、いつの間にか「終わらせたい」にすり替わっていました。

何か掘り起こせた?

  • 解決するという基本姿勢を崩さない
  • 終わらせるは絶対に駄目、解決しよう

おしまい

基本に従い作業に取り込むことを常に心がけているつもりなんですけどね。人間性ですかね。自己嫌悪に陥るのも解析作業のときが一番多いです。 山本有三の小説に出てきた言葉が、身に沁みます。 「真実一路の旅なれど、真実、鈴ふり、思い出す。」

Jupyter Notebook 便利Tips

はじめに

今回は、Jupyter Notebookの便利な機能について備忘録もかねてまとめてみます。

コード補完

ほとんどのIDEにある機能だが、変数の後の「.」で「tab」キーを押下。
関数(メソッド)の候補が表示される。

f:id:jspnet:20191006170803j:plain

続きを読む

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以外にも幅広いデバイスに載せることが可能になります。

続きを読む