タグ

pythonに関するsh19910711のブックマーク (1,469)

  • uvでライブラリをグルーピングして最小限の依存関係で起動できるようにする - きり丸の技術日記

    始めに Pythonに限らずアプリケーションを大規模で運用していくほどライブラリの依存関係が増えていきます。その時にAPIとバッチ等の用途に応じたアプリケーションごと分割する方法もありますが二重管理が面倒になります。JavaではGradleを使用してマルチプロジェクト構成にしておくことで、必要なライブラリだけで起動するようにできました。 今回の記事では、Pythonのuvを使用してライブラリをグルーピングすることで、必要なライブラリを最小限にする方法を記載します。 環境 Python 3.13 uv 0.7.2 実装 ライブラリのグルーピング dependency-groupsに分割したい単位で集約します。今回の場合は、dependenciesで全アプリケーションに依存させたいライブラリを残し、他はapi, auth, worker, devに分割しました。 [project] depen

    uvでライブラリをグルーピングして最小限の依存関係で起動できるようにする - きり丸の技術日記
    sh19910711
    sh19910711 2025/05/13
    "dependency-groupsに分割したい単位で集約 / uvの仕様でdevは特に指定がない限りインストールされるので、明示的な除外が必要"
  • GIS × Python Tutorial 6.2 ~ DTMの作成 ~

    この記事は「GIS × Python Tutorial」の関連記事です。 はじめに 前回の記事ではLidarで取得した、点群データの読み書きや外れ値処理を、"PDAL" というライブラリーで行いました。環境構築に関しても前回の記事を参照してください。 この記事では、点群データから "DTM" の作成を行いますが、その為に必要な関連知識についてもまとめています。 今回使用するデータ Raster DTM(Digital Terrain Model)とは CSF(Cloth Simulation Filter)による点群分類 データのイメージ 計測データの反転 クロスシュミレーション CSFの詳細 Grid Particleの作成 CPを探す 外力による変位 内力による変位 点群分類 実データでの検証 サンプルの切り抜き サンプル範囲の選定 データの切り抜き パラメーターの変更による結果への影

    GIS × Python Tutorial 6.2 ~ DTMの作成 ~
    sh19910711
    sh19910711 2025/05/13
    2024 / "CSF(Cloth Simulation Filter) を使用して「地表点か、それ以外か」を分類 / クラスを分ける事で、DTM や DSM を作成する事が出来ますし、その間にある点群は内部の構造を表している"
  • 【Python自前実装】マクローリン展開 y=e^xのアニメーション - 機械学習基礎理論独習

    はじめに マクローリン展開をアニメーションで見せる動画をPythonで作る方法を紹介します。 開発環境は Google Colab です。 マクローリン展開アニメーションです。 pic.twitter.com/wEeE8CP5PD— 機械学習基礎理論独習 (@PG12345678) 2021年10月24日 Google Colabってなに? Google ColabとはGoogle Chromeで動く開発環境のことで、Google Chromeで動くアプリケーションのことです。 なので、OS関係なく動かすことができると思います。 インストール方法は、忘れましたが、簡単なはずです。 すみませんが、ググってください。 マクローリン展開 をマクローリン展開すると、以下のようになります。 アニメーションの作成方法 Line2DやTextのインスタンスの配列を要素とする配列(フレーム)を作成します。

    【Python自前実装】マクローリン展開 y=e^xのアニメーション - 機械学習基礎理論独習
    sh19910711
    sh19910711 2025/05/13
    2021 / "現在の点と前の点の差分を取って、前の点から現在の点に徐々に近づくようにアニメーション"
  • IcebergテーブルをDuckDBで手軽に読み取ろう

    はじめに データエンジニアをやっておりますTaichiです。 最近Apache Icebergという単語をよく耳にするようになりました。 Icebergの処理エンジンといえば Apache Spark Apache Flink Trino などでしょうか。このラインナップ、構築/運用するのは結構ハードなものが多いと思いませんか? 例えば、私のプロジェクトではSparkを使った構成でデータ処理を実施していますが、以下のような具体的な課題に直面しました。 Apache Hadoopのクラスタ構築作業や、Sparkを動かすために専用の記述(PySpark)が必要になる等、一定の学習が必要。 PySparkの記述の仕方によっては、性能が全然出ずにレスポンスが返ってこなかったり、OutOfMemoryになる場合があり、かつ解析やチューニングの難易度が高い。 クラウド前提であれば、マネージドHadoo

    IcebergテーブルをDuckDBで手軽に読み取ろう
    sh19910711
    sh19910711 2025/05/11
    "S3 Tables/Glue Data Catalogに関しては、現在プレビュー中ではありますがDuckDBにIcebergCatalogとしてマウントが可能になっています。これにより、テーブルのList等の操作ができる"
  • StreamDiffusionとQuest3で視界をリアルタイム変換してみる

    では発売されていないですが Ray-Ban Meta や今後発売される Meta Orion など、これから MRグラス + AIの組み合わせが盛り上がってきそうです。 そんな世界がどういったものかを考えてみたくて 最近リリースされた Meta Quest 3 パススルーAPI + 画像生成AIの組み合わせで視界をリアルタイムで変換する、みたいなことをやってみました。 概要 MetaからQuest3のパススルーAPIがリリースされました。Quest3では画像生成AIの動作は厳しいので、Quest3のパススルー映像をPCに送信、PC上で画像生成、それをまたQuest3に返信して表示する。 というのをやってみます。 StableDiffusionは生成に時間がかかるので早いと噂のStreamDiffusionを使います。 Quest3のパススルー映像の中心から512ピクセル×512ピクセル

    StreamDiffusionとQuest3で視界をリアルタイム変換してみる
    sh19910711
    sh19910711 2025/05/09
    "今後発売される Meta Orion など、これから MRグラス + AIの組み合わせが盛り上がってきそう / 早いと噂のStreamDiffusion / Quest3では画像生成AIの動作は厳しいので、Quest3のパススルー映像をPCに送信"
  • 【FastAPI+MySQL】alembicでマイグレーションファイルを自動生成して実行する

    はじめに alembicSQLAlchemyの著者によって作成されたデータベースマイグレーションツールです。PythonのWebフレームワークであるFastAPIDBのマイグレーションの仕組みを持っていないため、DBのマイグレーションをするためにalembicを使います。 alembicはマイグレーションファイルを自分で書く方法のほかに、テーブル定義の変更を自動で読み取ってマイグレーションファイルを自動生成することができます。とても便利な機能なのですが、実際にやってみようとしたところ苦戦したので、備忘録として残しておきます。 環境 MySQL 5.7 Python 3.9.13 alembic 1.8.1 fastapi 0.79.0 PyMySQL 1.0.2 SQLAlchemy 1.4.39 uvicorn 0.18.2 ディレクトリ構成 alembicに関係があるところだけ抜粋

    【FastAPI+MySQL】alembicでマイグレーションファイルを自動生成して実行する
    sh19910711
    sh19910711 2025/05/08
    2022 / "alembic: SQLAlchemyの著者によって作成されたデータベースマイグレーションツール / テーブル定義の変更を自動で読み取ってマイグレーションファイルを自動生成する"
  • NumPyro について、確率モデルを扱いたい理由を再確認したあとに動かしてみる

    この記事はTensorFlow Advent Calendar 2020の6日目の記事です。 概要 この記事では NumPyro について扱います。NumPyro は確率的プログラミングを行うためのフレームワークの1つで、バックエンドに JAX を使っていることが特徴的です。この時点で次のような疑問が生まれるでしょう。 そもそもなんで確率なの?サイコロを投げるの? 確率的プログラミングとは? JAXって? これにできる限り真正面から答えようというのがこの記事の目的です。まず確率モデルを導入する理由について述べます。次に、確率的プログラミングが扱う課題について述べます。その後、 NumPyro に関係する技術である Pyro や JAX について確認したあとに NumPyro について触れます。 このような構成のため、それぞれの構成要素について深くは触れません。また、ベイズ推論や機械学習に関

    NumPyro について、確率モデルを扱いたい理由を再確認したあとに動かしてみる
    sh19910711
    sh19910711 2025/05/08
    2020 / "NumPyro が登場した背景について / NumPyro: HMM の実行において、Pyro と比較して 340 倍、Stan と比較して 6倍の高速に実行"
  • 【機械学習】Hugging faceの評価指標計算ライブラリ「Evaluate」を使ってみた。

    NLPのライブラリ「transformers」などで有名なHugging face社の評価値計算ライブラリ、「Evaluate」を使ってみます。 記事のGoogleColabで動かせるコードをこちらで公開中です。 Hugging faceの新ライブラリ「Evaluate」を使ってみた。 こんにちは。PlayGroundのデータコースに所属している安藤太一です。 NLPモデルのライブラリ「transformers」などで有名なHugging face社が最近新しいライブラリ、「Evaluate」を発表したので、使ってみようと思います。 目次 Evaluateとは 基的な評価値の計算 Evaluatorを使う まとめ 参考文献 Evaluateとは Evaluateはモデルの評価や比較、性能のレポートをより簡単に、標準的に行うためのライブラリです。 既存の評価指標(メトリクス)はNLP(自

    【機械学習】Hugging faceの評価指標計算ライブラリ「Evaluate」を使ってみた。
    sh19910711
    sh19910711 2025/05/05
    2022 / "Evaluate: モデルの評価や比較、性能のレポートをより簡単に、標準的に行うためのライブラリ / オリジナルの評価指標を作成して、Hugging face Hubにアップロードし、共有する機能もある"
  • pyannote.audioとOpenSearchで類似話者検索を試す - Qiita

    はじめに 朝日新聞社メディア研究開発センターの嘉田です。 最近類似話者検索を実現するために、OpenSearchのベクトル検索機能を利用して実験を行いました。音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定します。 記事では、類似話者検索の流れを解説するとともに、OpenSearchのベクトル検索を利用する上で確認しておくとよいことをご紹介します。 ※ベクトル検索の技術説明、ベクトルデータベース比較、各アルゴリズムの技術説明は行いません。 類似話者検索の仕組み 筆者のケースでは、話者分離後の各話者に対して類似話者を検索するというフローを想定しました。そのため、既存の話者分離フローと組み合わせて次のプロセスで実現を目指しました。 1. 話者分離と話者の埋め込みベクトル生成 話者分離にはpyannote.audioというフレームワークを使用していま

    sh19910711
    sh19910711 2025/05/05
    2024 / "音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定 / 話者分離にはpyannote.audioというフレームワークを使用"
  • Zスコアの基礎と応用:データ分析での活用とPython実装方法

    Zスコアはデータ分析において、多くのシーンで利用される重要な指標です。以下では、より読みやすくなるようにZスコアの説明を行い、具体的な業務での活用例、他の統計処理との比較を交えながら解説します。 Zスコアの基 Zスコアとは? Zスコアは、データの分布に基づいて、あるデータ点が平均からどれだけ離れているかを標準偏差(データの散らばり具合を表す指標)の単位で示すものです。 例えば、Zスコアが1の場合、平均から1標準偏差だけ離れていることを意味し、同様にZスコアが-2の場合、平均より2標準偏差だけ下の位置にあることを示します。 これにより、データポイントがデータ全体の中で相対的にどのような位置にあるかを理解でき、特異なデータや異常な値の発見、データの標準化に役立ちます。 Zスコアの計算式 Zスコアを求める公式は次のようになります。 Z = \frac{X - \text{平均値}}{\text

    Zスコアの基礎と応用:データ分析での活用とPython実装方法
    sh19910711
    sh19910711 2025/05/04
    2024 / "Zスコア: 分布に基づいて、あるデータ点が平均からどれだけ離れているかを標準偏差(データの散らばり具合を表す指標)の単位で示す / Zスコアが1の場合、平均から1標準偏差だけ離れている"
  • Deep SVDDに基づく外れ値検知をPyTorchで実装した - 備忘録

    はじめに 外れ値検知の機械学習モデルの一つとして"Deep SVDD" が知られている。 今回はこれを、異常検知/外れ値検知のためのPythonパッケージPyODの仕様に沿った形で、PyTorchにより実装したということである。 外れ値検知は1クラス分類と捉えることができ、「通常」クラスか「それ以外(=外れ値、つまり異常)」という分類が行われる。 "Deep SVDD"は、外れ値検知の既存手法であるOne-Class SVM / Support Vector Data Description (SVDD) の非線形カーネルをニューラルネットワークで置き換えたものである。 準備 PyODはpipでインストール可能である。 pip3 install pyod ほか、torch, sklearn, numpy, tqdmのインストールを済ませておく。 Deep SVDDについて 概要は以下の記事

    Deep SVDDに基づく外れ値検知をPyTorchで実装した - 備忘録
    sh19910711
    sh19910711 2025/05/04
    2021 / "Deep SVDD: 外れ値検知の既存手法であるOne-Class SVM / Support Vector Data Description (SVDD) の非線形カーネルをニューラルネットワークで置き換え"
  • FastRTCを使って爆速でVoicebotを構築する | 株式会社AI Shift

    Cookbookに乗っているサンプルコードを参考に、レストラン予約を行うVoicebotを構築してみたいと思います。ロールプレイングでDB接続などは行いません。 import base64 import asyncio import numpy as np import openai from fastrtc import ( AdditionalOutputs, AsyncStreamHandler, Stream, get_twilio_turn_credentials, wait_for_item, ) from gradio.utils import get_space from openai.types.beta.realtime import ResponseAudioTranscriptDoneEvent, ResponseOutputItemDoneEvent SAMPLE

    FastRTCを使って爆速でVoicebotを構築する | 株式会社AI Shift
    sh19910711
    sh19910711 2025/05/01
    "FastRTC: Pythonでリアルタイムの音声およびビデオストリーミングアプリケーションを構築するためのライブラリ / 作成したアプリケーションはGradioのUIやTwilioのIP電話として簡単に公開することができ ~ "
  • ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments

    いつの間にかシリーズ化して、今回はロジスティック回帰をやる。自分は行列計算ができないクラスタ所属なので、入力が3次元以上 / 出力が多クラスになるとちょっときつい。教科書を読んでいるときはなんかわかった感じになるんだが、式とか字面を追ってるだけだからな、、、やっぱり自分で手を動かさないとダメだ。 また、ちょっとした事情により今回は Python でやりたい。Python のわかりやすい実装ないんかな?と探していたら 以下の ipyton notebook を見つけた。 http://nbviewer.ipython.org/gist/mitmul/9283713 こちらのリンク先に2クラス/多クラスのロジスティック回帰 (確率的勾配降下法) のサンプルがある。ありがたいことです。理論的な説明も書いてあるので ロジスティック回帰って何?という方は上を読んでください (放り投げ)。 この記事で

    ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments
    sh19910711
    sh19910711 2025/05/01
    2014 / "SGD: 入力をランダムに (確率的に) 並べ替えて、データ一行ずつから勾配を求めて係数/バイアスを更新 / 各クラスを分割する位置に少しずつ回帰直線が寄っていく"
  • 【ベイズ深層学習】Pyroでベイズニューラルネットワークモデルの近似ベイズ推論の実装 - Qiita

    今回は,確率的プログラミング言語『Pyro』を使って2層ベイズニューラルネットワークモデルに対して変分推論(平均場近似),ラプラス近似,MCMC(NUTS)の3つの手法を試してみました. 『ベイズ深層学習』第5章5.1節の図5.2のデータを使います. 環境 Python 3.7.5 PyTorch 1.3.0 Pyro 0.5.1 ソースコード 今回のソースコードはGitHub上(こちら)に上げました. ベイズニューラルネットワークモデル 入力の次元を$H_{0}$, 出力の次元を$D$とするデータ集合$\mathcal{D} = \{ \mathbf{x}_n, \mathbf{y}_n \}_{n = 1}^{N}$が与えられたとします.ただし,データは$\mathcal{i.i.d}$であると仮定します. この時,入力$\mathbf{x}_n \in \mathbb{R}^{H_{

    【ベイズ深層学習】Pyroでベイズニューラルネットワークモデルの近似ベイズ推論の実装 - Qiita
    sh19910711
    sh19910711 2025/04/30
    2019 / "各確率変数の従う分布からサンプルを生成していくように記述 / `nn.Module`クラスで記述した決定論的なモデルを`pyro.random_module`によって確率的生成モデルへと"lift"する"
  • ガウス過程回帰とGPyのメモ

    はじめに Kindle の日替わりセールで買って積読になっていた『ガウス過程と機械学習』を読んだので,ガウス過程回帰について整理し,GPy で試してみました.この記事の内容は『ガウス過程と機械学習』の 2-4 章に対応しています. ガウス過程回帰とは回帰分析手法の一種で,非線形な関数関係を表すことができます.ガウス過程回帰ではカーネル関数と呼ばれる類似度を表す関数を設定しますが,このカーネル関数を変えることで無限回微分可能な滑らかな関数やブラウン運動,周期性など様々なものを扱えます. ガウス分布 平均 \mu,分散 \sigma ^2 のガウス分布の確率密度関数は, \mathcal{N}\left(x | \mu, \sigma^2\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^2}{2 \sigma^2}\

    ガウス過程回帰とGPyのメモ
    sh19910711
    sh19910711 2025/04/29
    2023 / "ガウス過程回帰: 非線形な関数関係を表す + カーネル関数と呼ばれる類似度を表す関数を設定 / 『ガウス過程と機械学習』は非常にわかりやすく楽しかった"
  • Python: scikit-learn の Pipeline 機能のキャッシュを試す - CUBE SUGAR CONTAINER

    今回は scikit-learn の Pipeline に存在するキャッシュの機能を試してみる。 scikit-learn の Pipeline は、データセットの前処理・特徴量抽出からモデルの学習・推論までの一連の処理手順をひとまとめにして扱うことのできる機能。 以前に、このブログでも扱ったことがある。 blog.amedama.jp 機械学習のタスクにおいて、データセットの前処理や特徴量抽出には意外と時間がかかる。 大抵の場合、特徴量エンジニアリングを通してモデルで使う特徴量はどんどん増えていく。 そうした状況で、同じ特徴量を毎回ゼロから計算するのは時間がもったいない。 そこで、計算済みの特徴量についてはキャッシュしておきたくなる。 そのニーズを Pipeline で満たすのがキャッシュ機能になる。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS

    Python: scikit-learn の Pipeline 機能のキャッシュを試す - CUBE SUGAR CONTAINER
    sh19910711
    sh19910711 2025/04/28
    2018 / "sklearn.externals.joblib.memory.Memory オブジェクト / キャッシュされるものは Pipeline の最終段に位置するモデル (Estimator) に渡される直前のデータ"
  • Python: 機械学習で分類問題のモデルを評価する指標について - CUBE SUGAR CONTAINER

    今回は、機械学習において分類問題のモデルを評価するときに使われる色々な指標について扱う。 一般的な評価指標としては正確度 (Accuracy) が使われることが多いけど、これには問題も多い。 また、それぞれの指標は特徴が異なることから、対象とする問題ごとに重視するものを使い分ける必要がある。 今回扱う代表的な評価指標は次の通り。 正確度 (正解率、Accuracy) 適合率 (精度、陽性反応的中度、Precision) 再現率 (感度、真陽性率、Recall) F-値 (F-score, F-measure) AUC (Area Under the Curve) 上記それぞれの指標について、特徴を解説すると共に Python を使って計算してみる。 データセットには scikit-learn に組み込みの乳がんデータセットを用いた。 今回は「機械学習で」と書いてしまったけど、上記は実際には

    sh19910711
    sh19910711 2025/04/26
    2017 / "混同行列: 横軸は事実 + 縦軸はモデルや検査の推定 / Precision: モデルが陽性と判断したものの中に、どれだけ本当に陽性なものが含まれていたかを示す + FN が発生することが許容できるケース"
  • uvでPythonのバージョンに合わせてインストールするライブラリのバージョンを変える

    Pythonのパッケージ管理ツールのuvには、PEP 508に基づいたDependency specificationの記述が可能です。 例えば、uvでPyTorchをインストールする場合はenvironment marker expressionの記法で、Linuxかそれ以外のOSかでインストールするPyTorchのindexを変更することが可能です[1]。 [project] name = "project" version = "0.1.0" requires-python = ">=3.12.0" dependencies = [ "torch>=2.6.0", "torchvision>=0.21.0", ] [tool.uv.sources] torch = [ { index = "pytorch-cpu", marker = "sys_platform != 'linux'

    uvでPythonのバージョンに合わせてインストールするライブラリのバージョンを変える
    sh19910711
    sh19910711 2025/04/24
    "PEP 508: マーカー式を用いることで、Pythonのバージョンごとのインストールするパッケージのバージョンを記述 / Python 3.11であればnumpy<2.00、Python 3.12以上であればnumpy>=2.0.0をインストールする"
  • Polars, DuckDBのデータソースの違いによる性能比較

    この記事は毎週必ず記事がでるテックブログ Loglass Tech Blog Sprint の62週目の記事です! 2年間連続達成まで残り44週となりました! ログラスの龍島(@hryushm)です。寒くなってきましたね。最近は鴨肉を焼くのがマイブームです。ということで今日はPolarsとDuckDBの話です。 PolarsとDuckDBは、近年注目を集めているデータ処理のための高速なクエリエンジンです。それぞれ異なる強みを持っていますが、どちらもシングルノードでOLAPの分析処理を非常に高速に実行できるという共通点があります。この記事では、データソースにPostgreSQLを用いた場合において、PolarsとDuckDBのパフォーマンスにどのような違いが現れるのかについて比較します。 Polarsとは Polarsは、Rustで実装されたデータフレームライブラリで、特にパフォーマンスに優

    Polars, DuckDBのデータソースの違いによる性能比較
    sh19910711
    sh19910711 2025/04/24
    2024 / "PolarsとDuckDBのベンチマーク比較は多く行われていますが、対象データの性質やクエリの内容によるというのが正直なところ / 共通するのはよく比較対象となるPandasよりは圧倒的に速い"
  • Python3.12からPEP695-Type Parameter Syntax(型引数構文)が導入され、型変数を使ったクラスや関数の定義が大きく変わる - Qiita

    目次 はじめに PEP全文 このPEPが提案された経緯 「混乱のもと」とは何か 型変数のスコープルールがわかりにくい いつcovariantとcontravariantを使う(使わない)べきかわかりにくい 型引数の順番ルールがわかりにくい グローバルに宣言しているので「すべての参照」に引っかかる 型変数の命名にはプライベート性と冗長さを意識しなければならない TypeVarライクやGenericライクなシンボルをtypingからインポートする必要がある PEP695導入後にPythonの書き方はどう変わるか TypeVarシンボルの宣言を新たな構文に置き換えることができる 関数の場合 クラスの場合 Protocolを定義するための構文 TypeVarTupleやParamSpecの宣言を代替する構文 ジェネリック型エイリアスを表現するためのtype文の登場 型の束縛(TypeVarのbou

    Python3.12からPEP695-Type Parameter Syntax(型引数構文)が導入され、型変数を使ったクラスや関数の定義が大きく変わる - Qiita
    sh19910711
    sh19910711 2025/04/23
    2023 / "Python3.12では型エイリアスをtyping.TypeAliasなしで明示することができるように、ソフトキーワードリストにtypeが追加 / ソフトキーワード: 特定の文脈でのみ予約される識別子"