chevron_left

メインカテゴリーを選択しなおす

cancel
arrow_drop_down
  • WSL+DockerでSAM3の環境構築をしてお試し実行

    お疲れ様です。 SAM3の実行環境をWSL+Dockerで作成し、実際に実行して試してみた記録です。 SAM3について ai.meta.com 2025年11月にリリースされたSAM(Segment Anything Model)シリーズの最新モデルです。 SAM3では、プロンプトで画像内の検出したい物体を指示することで目的の物体のセグメンテーションとBBoxの出力ができます。 (他にも3Dオブジェクトに対応したSAM3Dもありますが今回は扱いません。) 環境構築 実行環境 OS: Windows 11 Pro CPU: Intel Core i7-13700 メモリ: 32GB GPU: N…

  • Pytorchのモデル学習の中断と再開の処理を実装したメモ【備忘録】

    お疲れ様です。 今回はPytorchで学習の途中再開をするためのコードのメモです。 長期間モデル学習を実行する際に予期せぬトラブルで処理が止まってしまった場合などにも使えると思います。 ソースコード 以前作成した画像分類のプロジェクトに実装しています。 github.com 実装 モデルの保存時 下記modules/trainer.pyのTrainerクラスのモデル保存用メソッドです。 modelのパラメータに加えてoptimizerのパラメータを保存するのがポイントになっています。 ちなみに下記は最新epochのモデルを保存するためのメソッドですが、これを毎epoch行うようにしています。 …

  • HuggingFace Datasetsのload_datasetでダウンロードに失敗するときの対処【備忘録】

    お疲れ様です。 HuggingFaceのDatasetsからデータセットを読み込み時にエラーが出たときの対応方法のメモです。 今回問題のあったデータセット Food_and_Vegetables(画像分類用のデータセット) huggingface.co 通常のやり方 通常Datasetsからデータセットを読み込む際はload_dataset()を使用します。 以前作成したプログラムのソースからですが、このようにして問題なくデータセットのダウンロードができていました。 # Datasetの読み込み # https://huggingface.co/datasets/Bingsu/Human_Ac…

  • OCRモデルTrOCRの実装まとめ

    お疲れ様です。 前回の記事でTrOCRの調査内容をまとめたので、今回は実装のお話。 fallpoke-tech.hatenadiary.jp ソースコード コード内容補足 モデル データセット 前処理 実行結果 学習 推論 ソースコード ソースコードはこちらのGithubリポジトリにまとめています。mainブランチの方を使用する想定です。 プロジェクト全体の構造や使用方法などはREADMEを参照ください。 GitHub Copilotに作成させたのでおかしな点などあるかもしれませんが…。 github.com 下記のサイトのソースコードをベースに日本語対応をしたものになります。 https:/…

  • OCRモデルTrOCRについて調べたまとめ

    お疲れ様です。 今月の半ばくらいまで会社の勉強会の関係でAI OCRの手法の1つのTrOCRの調査と実装をしていました。 今回はそちらの内容をまとめて備忘録を書いておきます。 論文 arxiv.org 要約(from ChatGPT) TrOCR:Transformerベースの革新的なOCR技術 TrOCRは「Transformer Optical Character Recognition」の略で、Microsoftが開発した、Transformerアーキテクチャに基づく先進的な光学文字認識(OCR)モデルです。 従来のOCR技術が主に畳み込みニューラルネットワーク(CNN)を利用していたの…

  • 日本語特化OCR「YomiToku」を自作プログラムから動かす【備忘録】

    お疲れ様です。 今回はOCR(光学文字認識)のお話。 OCR(Optical Character Recognition:光学的文字認識)は画像に含まれる文字をコンピュータで認識できるテキストの形で読み取る技術のこと。 最近だとOSSでYomiTokuが日本語特化OCRとしてはとても優秀です。 GutHub github.com 使い方説明 qiita.com 使い方にもあるようにターミナル上からコマンドで実行することができます。 例えば以下のコマンドを実行すると、画像内のレイアウトと文字を検出し、検出した情報を可視化した画像ファイルとmarkdownでテキストをファイル出力してくれます。 .…

  • 画像分類モデルDeiTを実際に動かしてみた

    お疲れ様です。 前回の記事でDeiTについて調べたので実際にコード実装し動作できるようにしました。 前回の記事 fallpoke-tech.hatenadiary.jp ソースコード 実装したコードはこちらに置いています。 過去に作成したコードを改良したものになります モデルアーキテクチャと事前学習モデルはtimmから利用しています。 (ついでにuv対応や学習データセットの仕様変更も対応しました。) github.com データセットの実装を変更すれば自分で用意したデータを使用することもできると思います。 実行 実際に実行した内容をこちらにも残しておきます。 学習に使用したデータは以下になりま…

  • 画像分類モデルDeiTについて調べたまとめ

    お疲れ様です。 画像分類モデルのDeiTについて、使う機会があり内容を調べてみたのでメモ的にまとめておきます。 論文 arxiv.org 要約(from ChatGPT) 背景 Vision Transformer (ViT) は自然言語処理のTransformerを画像分類に応用したモデルだが、従来は数億枚規模のデータセット(例: JFT-300M)と大規模計算資源が必要で、一般的な利用は難しかった。 提案手法(DeiT: Data-efficient image Transformers) ImageNet (1.3M枚) のみを使い、単一のGPUノード(8GPU)で 3日以内 に高精度な…

  • 古いバージョンのtorchvisionで発生するOverflowErrorについてのメモ【備忘録】

    お疲れ様です。 今回はPytorchでの処理を実装している際に実際に出くわしたエラーについてのメモ。 torchvisionで発生したOverflowErrorについて調べました。 エラー内容 torchvisionのGitHubのissuesに情報がありましたので、載せておきます。 github.com ほぼ上記issueの内容の通りですが、torchvisionの0.18.x以前のバージョンとnumpyの2.x.x以降のバージョンとの相性の問題のようです。 numpy側の問題のようですね…。 issuesではColorJitterが挙げられていますが、それ以外のtorchvision.tr…

  • EmbeddingGemmaのお試し

    お疲れ様です。 Googleから新しいオープンモデル、EmbeddingGemmaが公開されたので試してみました。 こちらは埋め込みモデル(Embedding Model)、文書をベクトル化するためのモデルになります。 huggingface.co 上記HuggingFaceの公式ページにあるデモコードを試してみます。 実際に使用したソースコード全体は以下(GitHub)に残しています。 ローカル環境で使用するために多少カスタマイズしています。 github.com 事前準備 EmbeddingGemmaを使うためにはHuggingFaceのユーザ登録とトークン作成が必要になります。 作成方法…

  • 【FastAPI】開始時と終了時に処理を管理するlifespanについて【備忘録】

    お疲れ様です。 FastAPIでlifespanという機能を使う機会があったのでメモ。 lifespanの公式ドキュメントはこちら。 fastapi.tiangolo.com 機能の内容をざっくりというとAPIの起動時と終了時の処理を管理するというものです。 コードは以下のようになり、yieldの前に起動時の処理、後に終了時の処理を書きます。 また、yieldにデータを渡すことでリソースの共有も可能です。 以前記事にしたapp.state と似たような使い方ができます。 FastAPIのappを定義する前に設定して、定義時に引数で与えるという形になります。 @asynccontextmanag…

  • 【langchain-ollama】OllamaLLMとChatOllamaの違いを調査【備忘録】

    お疲れ様です。 前回gpt-ossでMCPサーバを動かすという内容 で記事を書いたのですが、その中でlangchain-ollamaには OllamaLLMとChatOllamaの2つのモデルが使えることを知りました。 今回はこの2つの違いをざっくり調べてみました。 公式ドキュメント OllamaLLM python.langchain.com ChatOllama python.langchain.com 違いについて 違いについて調べた内容をまとめるとこんな感じ。 ChatOllama OllamaLLM 用途 チャット形式の出力 文章の生成 入力 Messagesのリスト 文字列 出力 …

  • gpt-oss:20BでMCPを試してみた【LangChain+Ollama】

    お疲れ様です。 今回はgpt-oss:20Bを使ってMCPサーバを利用した返答生成を試してみます。 コードは過去にGeminiのAPIを使って作成したものを、langchain-ollamaを使ったものに変更したのみにはなりますが…。 最後にGeminiと簡単に比較した内容を載せたいと思います。 GeminiとLangChainでMCPを使った時の記事は以下。MCPサーバについてや事前準備については以下を確認してください。 fallpoke-tech.hatenadiary.jp 実装 出力結果 Geminiでの出力結果(比較用) 実装 ソースコードはこちらにあります。 以前RAGを試したとき…

  • WordCloudでChatGPTのチャット履歴を解析してみる

    お疲れ様です。 会社の勉強会でChatGPTのチャット履歴を取得して解析をしました。 その内容を記事として残しておこうと思います。 全体観としては、取得したチャット履歴からユーザの入力内容のみを抽出し、その文書情報を使ってWordCloudを作成するというものになります。 WordCloudについて詳しくはこちら。 チャット履歴の入力内容の全体的な傾向をみることができ、実装もそれほど難しくないので採用しました。 aiacademy.jp ChatGPTから履歴をエクスポート ソースコード コード解説 出力結果 ChatGPTから履歴をエクスポート ChatGPTのサイドバー下部のユーザの項目か…

  • gpt-oss:20bでRAGを試してみた

    お疲れ様です。 前回Ollamaを使用してgpt-oss:20bを動かしてみたのですが、ここまでできたらRAGも試してみたいということで実装してみました。 前回の記事 fallpoke-tech.hatenadiary.jp RAGの実装については以前GeminiAPIを使って実装したコードをベースに作成しています。 使用したベクトルDBも同様です。(データ自体は増えていますが。) その時の記事と実装も併せてどうぞ。 fallpoke-tech.hatenadiary.jp コード 早速にはなりますが、実際のRAGのコードを下記に記載します。 ソースコード全体はこちらにあります。 github…

  • gpt-ossを動かしたくてOllama環境をDevcontainerで作成した、試した記録

    お疲れ様です。 昨日(2025/8/6)にgpt-ossが発表されました。界隈がめちゃくちゃ盛り上がっていますね。 GPUのVRAMが16GBあれば一般のPCでも動かせる、その上かなりの高性能とのことで私もめちゃくちゃ気になっていたので試してみました。 環境について OSがWindows11、GPUがRTX4046tiのVRAM16GBです。 WSLを使用し、DockerおよびDevcontainerを立ち上げました。 gpt-ossの実行環境にはOllamaを使用しています。 HuggingFaceのモデルをPythonで動かすこともできるのですが、VRAM16GB以内で動かすには私のGPU…

  • Pythonのデータのキャッシュ保存モジュール比較【備忘録】

    お疲れ様です。 Pythonにはオブジェクトをキャッシュデータとしてファイル保存するモジュールがいくつかあります。 今回はそれらのモジュールをそれぞれ使用して比較してみたという内容です。 コードはこちらに残してあります。 github.com 今回使用するデータについて データについては、私が個人的に使用しているChatGPTからエクスポートした履歴データを使用しています。 このうちのチャット履歴データのjsonファイル(conversations.json)を読み込んで、このデータをキャッシュとして保存して比較しています。 ChatGPTの履歴のエクスポートについてはこちらが参考になると思い…

  • 開発に関わるライセンス周りの個人的な知見まとめ【備忘録】

    お疲れ様です。 仕事上で開発を行う際に付きまとうライセンス周りの問題について、個人的な知見もふくめてまとめておこうと思います。 (今後も追記する可能性ありです。) 以下2点ご注意ください。あくまで参考程度に考えてください。 ライセンス周りは私が調べた範囲内の話にはなるので間違いがあるかもしれません 私の業務上の運用方法に近い話にはなりますので、詳しくは個々の会社の運用に従ってください OSSライセンスについて 確認方法 ソースコード Python(pip, conda) JavaScript/TypeScript(npm) 特定のライブラリについての注意点 VisualStudio関係 機械学…

  • 【FastAPI】APIから別のAPIをリダイレクトで呼び出し(RedirectResponse)【備忘録】

    お疲れ様です。 今回はAPIから別のAPIをリダイレクトで直接呼び出すような実装をしたので、その復習も兼ねてメモを書いておきます。 以前requestsモジュールを使ってAPIの処理の中で別のAPIを呼び出してその結果を処理の中で使うということもやったのですが、その時とは少しイメージが異なります。 自作APIとの通信をするPythonコードのメモ(requestsモジュール) FastAPIでのリダイレクトについて fastapi.tiangolo.com FastAPIでリダイレクトをするときはこのRedirectResponseを使用します。 クライアントから呼び出したAPIから,さらに別…

  • PythonからGeminiCLIを呼び出していろいろ活用したかった

    お疲れ様です。 最近はCLIのAIエージェントが流行っていますよね…! 私も「GeminiCLI」をよく使っています。ほぼ無料で使えるのが良い! Gemini CLI使ってみたが、ちょっと引いてる…😅 細かい部分はともかくちゃんと動くものできるててすごい これ一応一定ラインまでは無料だよな🤔 pic.twitter.com/uqCXLmv7ap — りりっく (@kku_riri25406) June 26, 2025 この「GeminiCLI」をPythonのコード上でうまく活用できないかいろいろと考えてみました。 Python上でコマンドを呼び出す方法 作成したコード Python+Gem…

  • 画面上の色をカラーコードorRGBで取得したい(ペイント使用)【備忘録】

    お疲れ様です。 タイトルの通り画面上に映っているものから色情報を取得する方法についてメモです。 アプリの作成時などに設計書のイメージ通りの色を取得したい!という時によく使っている方法です。 Windowsのペイントを使った方法になります。(なのでWindows向けです。) 社内PC等でソフトのインストールに制限があるときなどに、Windowsの標準の機能だけでできるので個人的には重宝しています。 方法 色を取りたい範囲のスクリーンショットを取る 「Windows + Shift + S」で範囲指定スクリーンショットを取ります。 今回は試しにVSCodeのロゴの部分を使ってみます。 「Windo…

  • 【Streamlit】クエリパラメータを扱うst.query_params

    お疲れ様です。 Streamlitでクエリパラメータを扱うことができるということを知ったので試してみました。 これを使って、これまでに作成したガントチャートアプリに閲覧専用のモードを実装するところまでやってみます。 クエリパラメータについて クエリパラメータを使うことでWebアプリのURLに変数を付与してその情報をアプリに与えることができます。 アプリのURLの後ろに「?」+「変数名=値」を付与することでクエリパラメータを設定できます。 - 例 http://hogehoge.jp/?name=hiroji 複数設定することも可能。その場合「変数名=値」の部分を「&」で繋げます。 - 例 ht…

  • 【FastAPI】API間で共通の変数を扱うapp.state【備忘録】

    お疲れ様です。 FastAPIで作成したAPI間で共通で使える変数を定義する方法のメモです。 最近の実装で必要になり調べたところFastAPIの機能として元からあることを知りました。 fastapi.tiangolo.com FastAPIでAPIを作成する際app = FastAPI()と最初に定義するかと思います。 このFastAPIのclassにstateがあり、app.state.[任意の名前] = (値)として変数を格納できます。 from fastapi import FastAPI app = FastAPI() app.state.message = "メッセージ" デモ デモ…

  • 【Pytorch】load_state_dictの重み読み込みについてメモ【備忘録】

    お疲れ様です。 最近の実装で知ったPytorchにおけるモデルのload_state_dict時にstrict=Falseを指定したときの仕様についてメモを残しておきます。 docs.pytorch.org strict=Falseの指定について load_state_dictでは基本的にモデルアーキテクチャ(nn.Module)と読み込もうしたモデルパラメータ(state_dict)の間に違いがあると読み込むことができません。 これはload_state_dictはデフォルトでstrict=Trueが設定されていることに起因します。 こんな感じのエラーが出ます。 モデルのアーキテクチャ、パラ…

  • チャットベースでさらにMCPサーバを試す回【LangChain MCP Adapters】

    お疲れ様です。 前回langchain-mcp-adaptersを使ってチャットボットでMCPサーバを利用した返答を出力させる実装をしました。 fallpoke-tech.hatenadiary.jp その際にMCPサーバを使った返答生成の部分だけを単体で実行できるコードを作っていたので、今回はそれを使ってみようと思います。 ソースコード 使用したソースコードの全体はこちらのGitHubを参照ください。 github.com メインで実行するコードは以下になります。 コマンドライン引数でMCPサーバのconfigファイルを指定して実行、実行時に質問文を標準入力する形です。 実行コマンド例 py…

  • 【チャットボット】話題のMCPサーバをLangChainで使う

    お疲れ様です。 最近話題のMCPサーバ、LangChainで使えるということをこれまた最近知りました。 会社でやっている技術系の勉強会でも最近触れたこともあり興味があったので、今回はこちらを実装してみました。 メモ勉強会でmcpに触れたのでチャットボット組み込みとかもやってみたいhttps://t.co/0IqfNKb843— りりっく (@kku_riri25406) May 24, 2025 そもそもMCPサーバとは 実装 事前準備 ソースコード 実行結果 参考サイト そもそもMCPサーバとは MCP(Model Context Protocol)は、大規模言語モデルClaudeを開発して…

  • はてなブログの記事をGitで管理【Hatena-Blog-Workflows-Boilerplate】

    お疲れ様です。 このはてなブログの記事をGitHubで管理できるテンプレートというものを見つけました。 公式のはてなブログの開発チームが作成したもののようです。 公式の機能紹介記事 staff.hatenablog.com GitHub github.com Gitを使ったバージョン管理ができるのはもちろん、 Gitが導入された環境ならローカル環境でも記事作成ができるので、 個人的にはすごく良さそう!と思いセットアップしてみました。 セットアップ 基本的に上記で記載した公式GitHubのREADMEの通りに進めればセットアップは簡単に完了できました。 https://github.com/ha…

  • 【ガントチャートアプリ】タスクの追加・更新・削除の機能実装【Streamlit+Plotly】

    お疲れ様です。 今回はガントチャートアプリの追加機能実装についてです。 前回の記事はこちら↓ fallpoke-tech.hatenadiary.jp 実装したのはタスク内容の追加・更新・削除の機能です。 csvファイルを読み込んだDataFrameで管理していますが、それを操作してアプリ上の表とガントチャートにも反映させる形を目指して作成しました。 ソースコード 作成した機能について 一覧表の選択機能とボタン表示 追加・更新・削除のダイアログ 更新後の表示 ソースコード 今回作成したところまでのソースコードは以下になります。「ver20250530」のタグを設定しています。 github.c…

  • conda installできるCUDAについて【備忘録】

    お疲れ様です。 タイトル通り今回はconda installできるCUDAについてのメモです。 個人としてはPytorchの環境構築でいつも使っているものではあるのですが、改めてどういうものか知っておきたいということで調べてみました。 conda installでCUDAをインストールするメリット conda-forgeのcudatoolkit nvidia公式チャネルのcuda conda installでCUDAをインストールするメリット インストールするだけで使える 公開されている範囲でバージョンが選べる 仮想環境ごとにバージョンを使い分けることができる 個人的には手軽さとバージョンの使…

  • Pythonからの別プロセスの停止に関してのメモ【備忘録】

    お疲れ様です。 最近の実装でPythonの標準モジュールsubprocessを使って立ち上げたプロセスをPython自体の機能を使って停止させる処理を書く必要があり、いろいろと苦労したのでメモを残しておこうと思います。 直近で調べた内容なので間違い等あるかもしれません。その場合ご指摘いただけますと幸いです。 subprocessモジュール docs.python.org 実際の立ち上げはsubprocess.Popenを使って独立したプロセスを立ち上げています。 process = subprocess.Popen(["python", "example.py"], shell=True) P…

  • Pythonのパッケージ管理ツールuvをconda installでお試し

    お疲れ様です。 今回はPythonのパッケージ・プロジェクト管理ツールのuvをconda環境でインストールして試します。 先日conda installできることを知って試してみたいと思っていました。 conda-forgeで公開されており、2025年5月時点で公式の最新バージョンと同じ0.7.3をインストールすることができます。 anaconda.org uvについて 上記の通りPythonのパッケージ・プロジェクト管理ツールです。 Rust言語で開発されており、パッケージのインストールが非常に高速なのが特徴です。 また、パッケージ管理にはPython公式が推奨している形式であるpyproj…

  • Streamlit+Plotlyでガントチャート付きのタスク管理アプリ

    お疲れ様です。 Streamlitを使ってガントチャート付きのタスク管理アプリを作ったので紹介。 図の表示にはPlotlyを使用して動的なガントチャートにしています。(Plotlyの勉強も兼ねています。) 職場のタスク管理用のツールがExcelシートのままなのでゆくゆくはこちらに置き換えられたらなと思っています…! ソースコード GitHubにソースコードを上げていますので、コードを詳しく見たい方はこちらへ。 これからも順次更新していくつもりなので記事を書いた時点でのバージョンをタグで残しています。 github.com アプリの見た目 今回は簡単にガントチャートの部分とタスクリストを表示する…

  • devcontainer立ち上げ時にVSCodeの拡張機能を自動で導入する設定【備忘録】

    お疲れ様です。 devcontainerを新規で立ち上げた際、VSCodeの拡張機能が何も入っていない状態になります。ちょっと面倒な仕様ですが、これは"devcontainer.json"に導入したい拡張機能を設定しておくことで立ち上げ時に自動で導入してくれます。 設定方法 devcontainer.jsonに"extensions"の項目を追加して導入したい拡張機能の識別子を記載します。 拡張機能の識別子は拡張機能のインストールページで確認できます。VSCode上の表示だと右サイドの当たりにあると思います。 Pythonの拡張機能だと"ms-python.python"が識別子に当たります。…

  • Windowsのローカル環境にNext.jsの開発環境を構築するメモ【備忘録】

    お疲れ様です。 業務でNext.jsを使うことになり環境構築から対応が必要になったので試しに個人PCに環境構築したメモです。(自分用) もともとNext.jsを使った開発は経験があるのですが、Dockerでdevcontainerを作成して開発をしていました。 今回作成する環境はDockerを使用せずにWindowsのローカルに構築します。 Node.jsのインストール yarnのインストール Next.jsのインストール Node.jsのインストール 公式サイトからインストーラをダウンロードし、インストールします。 nodejs.org こんな感じのインストーラが立ち上がります。基本的にデフ…

  • mmapでバイト列を分割して目的のデータを取得する改良

    お疲れ様です。 昨日mmapを使った共有メモリでのプロセス間データ共有について記事を書いていました。その補足というかちょっとした改良を考えたのでメモ的に残しておきます。 fallpoke-tech.hatenadiary.jp 内容としては、昨日の記事の中で書いた読取側でバイト列から目的のデータを取り出す部分で長さを直接スライスで指定して取得していた部分の改良になります。このままの書き方ではデータのサイズが変わった時に直接この部分のインデックス指定を書き換えないといけないと思います。 記事の引用 読み取ったバイト列をスライスで画像データ/幅/高さの該当部分を切り出します。(ここもうちょっとスマ…

  • Pythonで共有メモリを使ったプロセス間のデータのやり取りを実装(標準モジュール「mmap」)

    お疲れ様です。 Pythonでプロセス間でのデータのやり取りをするにあたり、標準モジュールのmmapを使って共有メモリで実現する方法があります。 2年前くらいに必要があり作ったコードですが、復習の意味も込めて掘り出して再度書いてみたのでこちらにも備忘録として残します。 プロセス間のデータのやり取りについて プログラム 送信元(process1.py) 受取先(process2.py) 実行結果 実用性 プロセス間のデータのやり取りについて python ○○.pyで実行したプロセス内でデータを扱うことになりますが、基本的に個々のプロセス内でしか使えません。構築するシステムによっては複数のプロセ…

  • 「pfnet/plamo-embedding-1b」をChromaDBのEmbeddingで使ってみた

    お疲れ様です。 今日の昼頃Preferred Networks(PFN)からPLaMoをベースにしたテキスト埋め込みモデル(Embeddingモデル)が公開されていました! tech.preferred.jp この公開された「plamo-embedding-1b」ですが、他の日本語テキスト埋め込みモデルと比較してもかなり性能が良いとのこと。 このモデル自体はHugging Faceで公開されており、ライセンスもApache v2.0ライセンスなので商用利用可。めちゃくちゃありがたいです。 huggingface.co とにかくまずは使ってみたいということで、ChromaDBのEmbedding…

  • Streamlitで実行中のプロセスを終了できない問題【備忘録】

    お疲れ様です。 WindowsでStreamlitのWebアプリを開発する際、プロセスを終了できないことがあったので調べてみた備忘録です。大した問題ではないですが気になったので…。 ※この状態でCtrl+Cを押しても終了できないという状態↓ 発生する条件 「実行したままブラウザを閉じた時」 または 「ブラウザで起動したアプリのタブを消した時」 対処方法 もう一度Webアプリをブラウザで表示した状態にして、Ctrl+Cを押してプロセス終了 要はアプリがブラウザ上で表示された状態でないとプロセスが終了できないようです。 ちなみにブラウザを閉じた状態からCtrl+Cを押していると、再度ブラウザで表示…

  • Streamlitでログイン画面とユーザ登録画面を作る

    お疲れ様です。 PythonのWebアプリフレームワークであるStreamlitを使ってログイン画面とユーザ登録画面を作ってみたのでその紹介。 以前作成していたチャットボットのアプリに実装していたものをデモ用に機能だけを取り出した感じです。↓ github.com 今回作成のコードは以下にあります。 github.com 使用したライブラリはStreamlitとStreamlit-Authenticatorです。 Streamlit-Authenticatorにユーザ認証に必要な機能がそろっています。公式のGitHubが以下↓ github.com インストール pip install str…

  • 物体検出のアノテーションデータを可視化するためのプログラム

    お疲れ様です。 表題のコードが仕事上で必要になったので作成してみました。 過去に作成したコードがあったのでそれを利用しつつ、扱いやすいように作成しなおした感じです。 fallpoke-tech.hatenadiary.jp 作成したコードは単体のリポジトリとしてこちらに置いています。現在はVOCデータセットの形式のみ対応しています。COCOデータセットも使うことがあるのでゆくゆくはそちらも対応したいと思っています。アノテーションファイルの読み込み部分だけ作成すればできるので時間があるときにでも作成します。 github.com 使い方 settings.tomlの設定を変更し、main_vis…

  • Gemma3を取り急ぎ動かしてみた

    お疲れ様です。 Gemma3が公開されましたね。 Twitterで話題になっていて、使ってみたい欲が高くなったのでとりあえず試してみました。 使用したモデルは以下です。RTX4060ti(VRAM16GB)を使用してローカルで動かしました。 huggingface.co 事前準備 Gemma3を使うためにはいろいろと準備が必要だったのでこちらもメモ的にまとめておきます。 Hugging Faceのアカウント作成 こちらのサイト参考にアカウント作成までやりました。 Hugging Faceの使い方!アクセストークン作成からログインまで EdgeHUB Gemmaの利用登録 Hugging F…

  • 自作APIとの通信をするPythonコードのメモ(requestsモジュール)

    お疲れ様です。 今回はFastAPIで作成したAPIにPythonコードからリクエストをかけてデータ取得するコードをざっくりとまとめました。 コード解説 コードは下記に残してありますので詳細を確認したい場合はご確認を。実際にGitHubに挙げているコードを見てもらった方がわかりやすいとは思います。 機能は自体はrequestsモジュールを使って実装しました。 github.com FastAPIのコードに関しては以前作成のものをベースにしています。必要があればこちらもご確認ください。 fallpoke-tech.hatenadiary.jp 各変数の中身は以下。 sample_data = {…

  • uvを使用したPython環境のdevcontainer

    お疲れ様です。 引き続きDockerの勉強を進めています。 その中でPythonのパッケージ管理ツールのuvを使って環境設定するdevcontainerを作成しましたのでそれをご紹介。 uvについて プログラミング言語Rustで作成された高速なPythonのパッケージ管理ツールです。 公式サイト docs.astral.sh 個人的に使用するメリットとしては以下が挙げられます。 ライブラリのインストールが高速 pyproject.tomlでプロジェクト管理 DockerでPythonのプロジェクトを作成するにあたりpipenvなどいろいろ試した結果、現状はこのuvが最も使いやすいという結論にな…

  • WSL+Docker+VSCodeでCUDA環境を作成した備忘録

    お疲れ様です。 最近は業務でDockerを使用することも増え、個人的やっている内容もDocker使えればみたいな場面が増えてきました。 そういう背景から勉強も兼ねてDockerの環境を構築していたのでその備忘録です。 基本的には参考サイトのリンク集です。 Linuxの知識はそれほど無いのでいろんな記事を参考にさせていただきました。 環境構築 Visual Studio Codeのインストール WSLのセットアップ Dockerのインストール NVIDIA Container Toolkitのインストール 動作確認 準備 コンテナの作成 実際に動かしてみる 参考サイト 環境構築 Visual S…

  • アップロードされたファイルのデータをFastAPIで処理するコードのメモ

    お疲れ様です。 以前FastAPIでファイルダウンロードをするAPIを作成しました。 fallpoke-tech.hatenadiary.jp 逆にフロントエンドからアップロードしたものをFastAPIでデータとして受け取るというのも使いどころが多そうに感じたので、今回はそのAPIを作成してみました。 作成コード(GitHub) github.com 前回同様main.pyを実行するとFastAPIから下記のようなUIが表示されます。 上側のUIが今回作成のファイルアップロードの部分になります。ファイル選択のボタンでエクスプローラーからファイルを選択し、アップロードボタンでFastAPIと通信…

  • セグメンテーションモデルMask2Formerについて調べたまとめ

    お疲れ様です。 商用利用可能で性能のよいセグメンテーションモデルが必要になったので調査した内容をメモに残しておきます。 リンク 概要 実装 リンク 論文 arxiv.org 論文解説 speakerdeck.com 公式実装 github.com 概要 以下は生成AI(Gemini)に聞いた内容。 Mask2Former は、様々なセグメンテーションタスクを統一的なフレームワークで実行できる、非常に強力で汎用性の高い最新のセグメンテーションモデルです。 2022年に発表され、瞬く間にセグメンテーション分野で注目を集めました。 Mask2Former の重要なポイント 統一されたアプローチ (U…

  • GitHub CodeSpacesでChromaDBを使う際のエラー対処【備忘録】

    お疲れ様です。 会社の勉強会の関係でGitHub CodeSpacesを使ってRAGの実行をしたかったのですが、ChromaDBでデータベース作成をする際にエラーが起こっていました。その対処方法を調べて無事使用できるようになったので対処方法のメモを残しておきます。 エラー内容 対処方法 エラー内容 内容としては、SQLiteのバージョンがChromaDBの要件を満たしていないというものです。 対処方法 apt installコマンド等でバージョンを上げようとしましたがうまくいかず…。 いろいろ調べている中で見つけた下記のIssuesを参考に対応しました。 github.com 対処方法として下…

  • FastAPIでファイルダウンロードのAPIを作成するコードのメモ

    お疲れ様です。 業務内でFastAPIを使ってcsvファイルやexcelファイルをダウンロードするAPIを作成したので、忘れないうちにメモ。 最近はWeb系のコード作成も増えていて使いどころも多くなってくるのかなと思っています。 作成コード(GitHub) 実装 FileResponseを使用したパターン StreamingResponseを使用したパターン 作成コード(GitHub) github.com 実行して立ち上がったサーバにアクセスすると下記のようなWebUIが表示されます。 ボタンを押すと適当な内容が記載されたサンプルのcsvファイルかexcelファイルがダウンロードされます。 …

  • Pythonで簡易的なGUI作成ができるライブラリ「Gooey」

    お疲れ様です。 今回はちょっとしたライブラリ紹介的な記事です。 Pythonで使用できる「Gooey」というライブラリをですが、Pythonスクリプトを簡単にGUI化できます。結構前から使っていたのですが日本語の記事がほぼ無いのでせっかくなのでまとめようと思います。 (自分用の備忘録としても残しておきたいといういつもの動機です笑) Gooeyの公式GitHubリポジトリはこちらです。 github.com また、公式の実装例もありますので気になる方はこちら。 github.com Gooeyの概要 Gooeyを使うメリット・デメリット 👍ポイント 👎ポイント 実際に実装する場合 参考サイト 日…

  • 話題のRAdamScheduleFreeをざっくり試す

    お疲れ様です。 今回は機械学習の界隈で話題のRAdamScheduleFreeという新しいoptimizerを試したいと思います。 なんでもAdamWと同等かそれ以上の性能だとか…! 詳しい内容は作成者さんのZennをご確認ください。今回私がやるのはとりあえずの実装のみ…。 zenn.dev 条件設定(実行環境、使用モデルなど) 実装 結果 比較(AdamWでの結果) 所感 条件設定(実行環境、使用モデルなど) 実行環境は以下になります。 CPU: 13th Gen Intel(R) Core(TM) i7-13700F 2.10 GHz メモリ: 32 GB GPU: NVIDIA GeFo…

  • HuggingFaceの物体検出モデルを片っ端から試す回

    お疲れ様です。 以前の記事でHuggingFace(transformersライブラリ)から利用できるDETRという物体検出モデルを実装しました。 今回はDETR以外の物体検出モデルを使ってみようと思います。 前回 ソースコード 使用するデータセット PCのスペック HuggingFaceの物体検出モデル DETR Deformable DETR DETA Conditional DETR 所感 前回 fallpoke-tech.hatenadiary.jp ソースコード ソースコードは前回作成のものに追加する形で作成しています。 今回紹介するモデルはconfig/train_config.t…

  • GeminiAPI + LangChainでRAGを実装する

    お疲れ様です。 最近の会社の勉強会でチャットボットのWebアプリを作成しています。(何故か教える側で…。) やっている中で返答を返してくれる生成AIでRAG(検索拡張生成)を実装してみたいと思い、実際に作成してみたのでそれをまとめておきます。 やったこととしては以下になります。 生成AIには基本お金がかからず、個人のPCの性能に左右されないようにGemini APIを使用しています。 Gemini APIの準備 APIキーの取得 SDKをインストール データベース作成 チャットボットに返答機能として実装 コード実装 チャットボットアプリ上での表示 Gemini APIの準備 Gemini AP…

  • HaggingFaceの物体検出モデルを試してみようの回

    お疲れ様です。 HuggingFace(transformersライブラリ)から利用できる物体検出のDeepLearningモデルを試してみたのでその紹介です。 物体検出についてはざっくりというと画像内の物体を矩形(Bounding Box)で囲って検出するものになります。 下図の例では人間の顔を検出しています。 作成したソースコードはテンプレート化して公開しているので気になる方はこちらもご参照ください。 github.com さて、HuggingFaceといえば自然言語処理のモデルが多いイメージかなと思いますが、VisionTransformerなどtransfomerアーキテクチャが使用さ…

  • Albumentationsの物体検出のDataAugmentationをいろいろ試す

    お疲れ様です。 前々から試してみたかったAlbumentationsの物体検出用の処理を今回実際にやってみました。 Albumentationsとは何ぞや?という方は以下のサイトを参照ください。 albumentations.ai また、具体的にできることは以下をみると大体わかるかと思います。 (私もいつも見させてもらってます…!) qiita.com 端的に言うと画像系AIの前処理(DataAugmentation)をまとめたライブラリという感じです。 基本的には画像系AIの中でも画像分類のタスクに使われることの多いイメージですが、物体検出やセグメンテーションも対応しています。(私は最近まで…

  • 古いバージョンのpytorch-lightningをインストールしようとして詰まったのでメモ【備忘録】

    お疲れ様です。 業務内で古いバージョンのpytorch-lightningをインストールするときにエラー発生したので備忘録として残しておく。 原因としてはライブラリの問題ではなく、pipのバージョンが新しくなったことによるもののようです。 結論、pipをダウングレードしたらインストールできたという話なんですが…。 pytorch-lightningに限らずバージョンの古いライブラリをインストールする際に頭の片隅に置いておきたいです。 エラー内容 注目すべきは黄色で表示された警告の方です。 ”*(アスタリスク)”が使えるのは"=="と"!="の演算子のみだという内容ですね。 WARNING: I…

  • ライブラリ経由で事前学習済みモデルをダウンロードする際のフォルダ指定

    お疲れ様です。 Pythonでディープラーニングのプログラムを書く際、その際に様々なライブラリにお世話になるかと思います。 その中で、モデルアーキテクチャの定義と同時に特定の事前学習済みモデルの重みファイルを自動でダウンロードしてくれる機能があるライブラリもあります。 それらダウンロードされる事前学習済みモデルのダウンロード先フォルダをこちらで指定する方法を調べたのでこちらにも備忘録としておいておきます。 私はなんとなくプロジェクトごとに使ったモデルがわかるようにしたくて、プロジェクトフォルダの直下にダウンロードした重みファイル用のフォルダを作って管理しています。 GitHubのリモートリポジ…

  • Pythonで三目並べ対戦GUIを作ってみた

    お疲れ様です。 「三目並べ」、いわゆる「〇×ゲーム」の対戦GUIをPythonで作ったので簡単に紹介します。 GUIのイメージ 背景 作成 ソースコード 所感 背景 元々は会社の技術系の勉強会で三目並べのAIを作ったことが始まりです。 教化学習の手法の1つであるQ学習を適用して作成したAIとMiniMax法を使ったルールベースの方法の両方を作成していました。 Q学習の方は下記のサイトのソースコードを使用しました。 Q学習の仕組みについても下記のサイトは非常に参考になりました。 qiita.com なお、MiniMax法に関してはChatGPTに元となるソースコードを作ってもらったので参考サイト…

  • opencv-pythonの日本語の扱いについてメモ

    お疲れ様です。 PythonでOpenCVを使った画像処理のプログラムを書くことが多いのですが、日本語が絡んでくるとうまく動作しないことがよくあります。 その対処法をメモ的に残しておきます。 画像読み込み・保存(imread, imwrite) 文字列書き込み(puttext) ウィンドウ表示(namedwindow, imshow) 画像読み込み・保存(imread, imwrite) cv2.imreadで画像を読み込むときやcv2.imwriteで画像を保存するときに、入力したパスに日本語が含まれていると読み込みor保存が正常にできない問題。 対処法は以下の通り。 ‐ 画像読み込み Pi…

  • G検定合格したので勉強に使用したサイトをまとめてみた

    お疲れ様です。 少し前になりますが3月のG検定(2024#2)を受験し、合格しました。 勉強期間としては1か月程度。といっても普段の業務の関係である程度AI周りの知識はあります。 今回、テキストは買わずネット上の情報と模擬問題のみで勉強していました。 流れとしては、以下ような感じ。 模擬問題を解く(自宅) ↓ 間違った問題、問題文中でわからない箇所をメモ(自宅) ↓ メモをとったところを調べる(通勤時間などの空き時間) ↓ 模擬問題を解く ↓ (以下ループ) 勉強に使用したサイトをまとめておきますので、受験勉強の参考にどうぞ。 G検定の例題・過去問 G検定公式の例題と過去問。どんな感じのテスト…

  • Pytorchのエラー「PyTorch: RuntimeError: device >= 0 && device < num_gpus INTERNAL ASSERT FAILED」

    お疲れ様です。 Pytorch使用時に発生したエラーの対処についての備忘録です。 基本的には調べたサイトや記事をまとめただけになります。 エラー文 PyTorch: RuntimeError: device >= 0 && device < num_gpus INTERNAL ASSERT FAILED 公式GitHubのissueでも議論されている内容ですね。 github.com github.com 対処方法 1. 下記のコードを記載する。 import os os.environ["CUDA_VISIBLE_DEVICES"] = "1" os.environ["WORLD_SIZE"…

arrow_drop_down

にほんブログ村 カテゴリー一覧

商用