Author Archive

Firebase Genkitを試してみた

Firebase Genkit は、本番環境に対応した AI 搭載アプリの構築、デプロイ、モニタリングに役立つオープンソース フレームワークです。

今回、以下を試してみます。

  • ブラウザからFirebase Functionを呼び出し実行
  • Firebase Local Emulator Suiteを使ってローカルで開発
  • Cloud Firestore vector storeを使ってRAG(Retrieval Augmented Generation)のインデックス作成と検索を行う
  • モデルにGoogle AIのGemini ProとOpenAIのGPT-4oを使う

(more…)

Facebooktwitterlinkedintumblrmail

ChatGPTでタイタニック号の生存予測(LangChain編)

タイタニック号の生存予測とは、Kaggleでよく知られている機械学習のお題です。
タイタニック号で生き残るのは誰かを予測します。
今回はそれをすべてChatGPTにやってもらいます。

AIエージェントして、LangChainを使います。
LangChainは、LLMを利用したアプリケーションを開発するためのフレームワークです。
LangChainのAgentを使うと、LLMが作ってくれたPythonプログラムをPython REPLで実行し、実行結果をプロンプトに追記してLLMに再び投げる、というのをFinal Answerを見つけるまで自動実行する、と言うようなことができます。

(more…)

Facebooktwitterlinkedintumblrmail

AlexaでChatGPT

ChatGPT APIを使ったチャットボットをAlexaスキルで作リました。

Alexaシミュレータの表示

(more…)

Facebooktwitterlinkedintumblrmail

FlutterのWindowsアプリでIMEの切り替え

FlutterのWindowsアプリで、TextFieldフォーカス時にIMEをオン/オフ切り替える機能を実装してみました。
最初、TextFieldのTextInputTypeを使ってキーボードをphoneemailAddressに指定すればIMEが切り替わるのでは、と思い試しましたが、切り替わりませんでした。
プラグインでIMEを切り替えられるものを探しましたが見つからなかったので、以下を参考にwin32 APIを呼び出す方法で実装しました。
https://docs.flutter.dev/development/platform-integration/platform-channels#step-5-add-a-windows-platform-specific-implementation
(more…)

Facebooktwitterlinkedintumblrmail

SolidStartのフォーム送信

最近、SolidJSとSolidStartの勉強を始めました。
SolidJSはReactライクなフロントエンドフレームワークですが、仮想DOMを使わない事により軽量・高パフォーマンスを実現しています。
高パフォーマンスな他の理由として、コンポーネント関数は一度しか実行されず、後は該当箇所だけをリアクティブに更新する、というのがあります。

SolidStartは、React.jsに対するNext.jsと同じで、ルーティングやSSR/SSGが可能になります。2023年2月現在、バージョン0.2.20でまだβ版です。

SolidStartのGetting Startedを読んでてこれは便利そうだなと思ったのが、クライアントとサーバ間のデータのやり取りで使われるActionsです。

(more…)

Facebooktwitterlinkedintumblrmail

量子アニーリングでシフト表作成

某雑誌で量子アニーリングの記事を読み興味を持ち、これを使ったなにか良いお題がないか考えた結果、シフト表を作成しようと思い立ちました。

以下のような月のシフト表に、自動で出勤日を決定できるようにします。
0が休日で、1が出勤日とします。

(more…)

Facebooktwitterlinkedintumblrmail

M5StickVで独自のモデルを使って画像認識

M5StickVを入手したので、独自のモデルを作成し画像認識を試してみました。
V-Training を利用するのが一番お手軽ですが、別の方法を試してみました。

M5StickVではkmodelというフォーマットのモデルを使います。
TensorFlow Liteのモデル(tflite)からMaix Toolboxを使ってkmodelに変換できます。

(more…)

Facebooktwitterlinkedintumblrmail

ESP32でディープラーニング

先日作った熱画像をリアルタイムで見れるシステムを改造し、ディープラーニングしてみました。
ジャンケンの3つのジェスチャーを、赤外線アレイモジュールからの入力データをもとに推論します。
ジャンケンの画像データを使いディープラーニングする、というアイデアは雑誌Interface1月号の記事のまねをさせていただきました。他にもいろいろと参考にさせていただきました。
なお、雑誌Interface1月号の記事ではソニーのSPRESENSEボード、および通常のカメラボードを使って行っています。

ディープラーニングのツールとしてNeural Network Console(NNC)のクラウドを使い学習させました。
学習済みモデルをNNPファイルとしてダウンロードし、NNPファイルをC言語ファイルに変換後、ESP32に組み込みました。
【2019/02/04 追記】NNP以外にNNB(Cランタイムフォーマット)でもESP32に組み込むことができることを確認しましたので、それも追記しました。

(more…)

Facebooktwitterlinkedintumblrmail

赤外線アレイセンサー「MLX90640」をESP32につないでWebSocketしてみました

MLX90640搭載の赤外線アレイモジュールをESP32につないで熱画像データを取得、それをWebSocketを使いブラウザから熱画像をリアルタイムで見れるようにしました。

MLX90640は32 x 24のセンサーを搭載し、I2CでESP32と通信を行うことができます。

(more…)

Facebooktwitterlinkedintumblrmail

Google ColabでGPU使用時に異常終了する問題

ディープラーニングの開発環境に、Google Colaboratoryを使用しています。
その一番の理由は、GPU(Tesla K80 GPU)が使える、ということです。
Macbook proのCPUにやらせるよりも、10倍は早いです。

しかし何かの拍子に以下のようなエラーが出て、トレーニング中に止まってしまう問題が発生しました。

ネットで調べたところ、
https://github.com/googlecolab/colabtools/issues/156

他のpythonプロセスが動作してるのが問題らしいです。
以下のような感じで、他のpythonプロセスをキルしたら、正常に動作するようになりました。

!ps aux
!kill -9 <pid>
Facebooktwitterlinkedintumblrmail