前回の記事では補助変数を利用することで、論理包含のある一見すると非線形な制約を線形制約へ変形し、PuLP で整数制約問題を解くことができました。
現実の問題を扱う際には、「ある特定の状況が望ましくないので、この条件を満たす場合にのみペナルティを足そう」というモデリングを行いたくなることが容易に想像できます。
そこで、論理積の線形表現を PuLP で実現する抽象を導出してみました。論理和もついでにやっておきました。 …

画像生成の主戦場はすっかり拡散モデルですが、大学時代に作成していた「プリキュア StyleGAN」を紹介します。プロフィールアイコン程度に使える画像の生成を目標としていました。
最終形態(この記事よりもさらに追加で改善を実施)のリポジトリは以下です。 Chainer で出来ているので、保守作業がやや面倒なことになっていますが、ちゃんと動くはずです。 …
Civilization IV の Mod 開発のため、Python 2 のコードを扱える自動フォーマッターを探していました。
結論を言うと Black を使うと良いです。
これ以外だと、まともなものは見つかりませんでした。
ただし、Black は初安定版リリースと同時に Python 2 を陳腐化させたので、ちょっと前のプレリリース版を使うほかないです。 …

仕事上必要になり、OpenAI CLIP によるエンコーディングを使って画像分類をするロジスティック回帰モデルを作成していました。
反応位置を見るために、Grad-CAM を適用できそうだなと考えていたのですが、Grad-CAM は One-Hot エンコーディングによる出力を想定しているように見えるので、スカラー値で出力をする二項のロジスティック回帰だと、どう計算すれば良いか自明ではありませんでした(少なくとも私には)。 …
scikit-learn で学習したロジスティック回帰モデルに対して、勾配を利用した操作を行いたかったので、PyTorch へのインポートをやってみました。 …
Python でジェネリック型の型パラメータをランタイム時に取得できる抽象を提供するライブラリ Reification を作りました。前回記事「Python のジェネリック型から実行時に型パラメータを取得する方法」の内容を綺麗に実装した感じです。
このライブラリを使用すると、ジェネリックなクラスにランタイムでその型パラメータを認識させ、それに基づいた動作をさせることができます。具体的なユースケースとしては、コードの動的型検査の強化や、型パラメータを動作上の意味付けとして利用することなどが考えられます。 …