サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

python

NetworkX: 'import networkx' fails: TypeError: entry_points() got an unexpected keyword argument 'group'

I encountered the following error in Python3.9 environment. NetworkX: 'import networkx' fails: TypeError: entry_points() got an unexpected keyword argument 'group' This error seems to be caused by the fact that NetworkX v3.3 does not suppo…

スタックトレース; Python & C++

スタックトレースとは、実行していた関数やメソッドなどの履歴のことです。バグやエラーが発生した際にスタックトレースを表示させることでデバッグを行いやすくします。 Python tmp.py f = lambda: g() g = lambda: h() h = lambda: i() def i(): return 2/…

Read the Docsでコンパイル時のPythonのバージョンを変更する

Read the Docsでは現在(2022年10月)ではPython3.7を用いてドキュメントのコンパイルが行われており、プロジェクトがPython3.7に対応していない場合はコンパイル時にエラーが生じて内容がうまく表示されない場合があります。(例えばPython3.8 以上で導入され…

flopt 仕様 v0.5.5: 全体構成

これから数回にわたってfloptという私が開発している最適化モデリングツールの構成について紹介したいと思います。具体的な使い方というよりは、その仕様について記録を残すのがメインです。 具体的な使用方法やチュートリアルはこちら。 本稿ではfloptの構…

RangeMinimumQuery, RangeMaximumQuery, BitIndexTree coded by Python

I show the RangeMinimumQuery, RangeMaximumQuery and BitIndexTree python class implementations. RangeMinimumQuery and RangeMaximumQuery are data structures for faster obtaining the minimum and maximum value of sub sequential array. BitIndex…

(BFS) 幅優先探索; python

今更感ありますが、、二分木構造に関するDFSで、1. 行きがけ、2. 帰りがけ, 3. 全記録、のPythonコードを紹介します。本稿では下記の木を例に使用します。 幅優先探索(BFS)はオレンジ色の順番のように、深さが浅いノードを優先して探索を行います。 ここで…

C++コードで実装されたPythonパッケージの作成; pybind11

本稿ではC++コードを含むPythonパッケージの作成方法を紹介します。処理が重い部分をC++でコーディングすることで、パッケージが提供する関数の実行速度を向上させることができます。 pybind11を用いれば意外と(?)簡単に作成することができて素晴らしい。…

DistributedDataParallel (pytorch) の内部デザイン

https://pytorch.org/docs/stable/notes/ddp.html#internal-design の日本語訳 + おまけの脚注 pytorch はv1.12 Internal Design ここでは、torch.nn.parallel.DistributedDataParallelがどのように動作しているかを、1つの反復処理の各ステップの詳細に踏み…

DistributedDataParallel (pytorch) サンプルコード

本稿ではDistributedDataParallelのサンプルコードを示し、また実行中にどのような通信が行われているかを確認します。 参考: Getting Started with Distributed Data Parallel — PyTorch Tutorials 1.13.0+cu117 documentation pytorch DistributedDataPara…

pyenvとvirtualenvの使い方

本稿ではpyenv, virtualenvを用いたpythonの仮想環境の構築方法とその操作方法をまとめます。 pyenv install pyenv操作 pyenv-virtualenv install virtualenv操作 インストール時のエラー & Warning 参考 pyenv pythonの複数バージョンのインストールや、そ…

import torch; from torch._C import * # noqa: F403 ImportError: undefined symbol

>>> import torch Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/tateiwa/.pyenv/versions/3.10.5/lib/python3.10/site-packages/torch/__init__.py", line 202, in <module> from torch._C import * # noqa: F403 ImportError: /home/tatei</module></module></stdin>…

(DFS) 深さ優先探索; Python

二分木構造に関するDFSで、1. 行きがけ、2. 帰りがけ、 3. 通りがけ、 4. 全記録、のPythonコードを紹介します。本稿では下記の木を例に使用します。 深さ優先探索(DFS)はご存知のようにオレンジ色の順番のように、深く(子孫側に)進む方向を優先して二分…

クラスタコンピュータで MPI + Pythonを実行する

本稿ではクラスタコンピュータでMPIを用いてPythonを並列実行するまでの手順を紹介します。 1ノードでの実行の場合 クラスタでの実行の場合 sshログインの整備 python環境の整備 実行コマンド おまけ open-mpiのオプションについて mpi4pyのインストールに失…

beam search; ビームサーチのpython実装

幅優先探索の亜種ですね。 アルゴリズムの流れは下記です。 rootノードのみからなるpath、を持つpathsリストを生成(paths = [ [root] ]) paths内の全てのpathを1階層分だけ展開しpathsを更新 スコアが最も高いk個のpathのみをpathsに残す 2に戻る 補足: ht…

最適化モデリングツール flopt を試してみる

Qiitaに記事を投稿しました。 Dev Community Medium 本稿では、最適化モデリングツールfloptの基本的な使い方やいくつかの機能の具体例を紹介します。(私も開発者の一人です) 最適化モデリングツールとは、ユーザーが解きたい問題を表現、具現化する作業をサ…

small_parallel_enjaデータセット利用のサンプルコード, python, pytorch

田中コーパス python, pytorchによるサンプルコード pytorchでの使用を前提にして、 torchtext.vocab.Vocab (vocabulary)の作成 DatasetとDataLoaderの作成例 を紹介しています。

kfttデータセット利用のサンプルコード, python, pytorch

kfttについて python, pytorchでの使用例 pytorchでの使用を前提にして、 torchtext.vocab.Vocab (vocabulary)の作成 DatasetとDataLoaderの作成例 を紹介しています。

seaborn.regplotでのdotやlineの属性を変更する

seaborn.regplotのサンプルコード(https://seaborn.pydata.org/generated/seaborn.regplot.html) import seaborn as sns; sns.set_theme(color_codes=True) tips = sns.load_dataset("tips") ax = sns.regplot( x="total_bill", y="tip", data=tips, ) ここ…

gurobipy エラー

gurobipy とは GUROBI optimizerが提供するpythonインターフェイスです. pip で installできます. gurobipyをクラス内で用いるときの注意点; 下記のプログラムは2変数(x, y)からなる簡単な最適化問題を求解するもの. solve()関数で問題の定式化と求解を行な…

networkit, networkx によるグラフのクラスタ係数の算出

networkit と networkxのクラスタ係数算出関数の比較 networkx ... networkx.algorithms.cluster.average_clustering — NetworkX 2.6.2 documentation netwokit ... networkit.globals Package Version ----------------------------- ----------- networkit…

Cython コンパイルエラー

Cythonのコンパイルエラー デフォルトのgccのバージョンが古い可能性があります. 1. gccのバージョンを変える $ls /usr/local/bin/ や $ls /usr/bin/ でインストールされているgccのバージョンを調べて, 新しそうなやつを $export CC=gccXX で指定してから実…

Matplotlib 軸メモリの左肩のまとまりを無くす

"軸メモリの左肩のまとまり"とはなんのこっちゃですが, 図を見てくだい. コレです. 本記事ではこの"軸メモリの左肩のまとまり"を無くす方法を紹介します. で, これの正式名称がわからないので検索も困ったものですが, "Offset"という名称でした. これをoffに…

枝集合が単調増加するグラフの平均クラスタ係数更新方法

平均クラスタ係数とは 枝集合の単調増加 実装 保持情報 枝増加時の更新 テスト コード 出力 まとめ 参考 平均クラスタ係数とは グラフ構造の特徴づけ指標の一つです. ノードごとに, そのノードを含む三角形(クリーク)の割合を算出します. 具体的には グラフ,…

CBC ソルバ ログの可視化

最終的に描写するもの 暫定解値と, 下限値の時間推移 最適値 CBCログ 問題サイズなど Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Dec 15 2019 command line - xxxx At line 2 NAME MODEL At line 3 ROWS At line 2426 COLUMNS At line 145…

pulp制約の削除, 入れ替え

pulpにおける動的な制約の削除, 入れ替えのサンプルコード gist.github.com

pulpとamplifyの相互変換

Qiitaに記事を投稿しました qiita.com

Python Colorlog サンプルコード

colorlog ( https://github.com/borntyping/python-colorlog ) を用いれば ロギング(logging) を色付きで簡単に表示できます. 若干使い方が難しいと思いますので, サンプルコードを作成しました. 下記を _logginig.pyの名前で保存して, 同ディレクトリ内で以…

【Python】multiprocessing.Queueを活用した並列処理の最適化(サンプルコード付き)

Pythonでプロセス並列処理を効率的に行うためのツールとして、multiprocessing.Poolは非常に便利です。しかし、下記のような状況では並列化により逆に処理速度が低下することがあります。 data = xxx # 非常に大きなオブジェクト (巨大なリストなど) def fun…

Python モデラーとソルバーまとめ (解ける問題の比較)

Solver (May 22, 2020) [S] Solver (問題を解くアルゴリズムを内包し, それを実行して解を探索するアプリケーション) [M] Modeler (解く問題をプログラムで作成するためのアプリケーション) Nonlinear or Linear Programming NLP (Nonlinear Programming) MI…

pulp.GUROBI_CMD での 時間 スレッド数 制約

バージョン pulp: 2.2 python: 3.8.4 サンプルコード スレッド数 = 5, 時間制約 30s にする場合 problem = ... solver = pulp.GUROBI_CMD( options=[ ('Threads', 5), ('TimeLimit', 30) ] ) problem.solve(solver=solver) 他に入れられるオプション www.gur…