昨日の記事で以下を実行できるようになったが、なぜ PyPI から pipenv で入れたときは動かなかったのか、pipenv で fast_transoformers は管理できないのか。
$ python >>> import fast_transformers.causal_product.causal_product_cuda
適当なディレクトリに pipenv 環境を構築し、pytorch-fast-transformers を PyPI からインストールし、~/.local/share/virtualenvs/ 以下をみてみる。causal_product.causal_product_cpu しかない。causal_product.causal_product_cuda が import できないのは当然である。実際 _cuda は import できず _cpu は import できる。
$ pipenv install pytorch-fast-transformers $ ls ~/.local/share/virtualenvs/20220502_sandbox-j2IpnJRo/lib/python3.8/site-packages/fast_transformers/causal_product/ __init__.py __pycache__ causal_product_cpu.cpython-38-x86_64-linux-gnu.so
先の pipenv 環境を一旦削除し、今度は pytorch-fast-transformers を GitHub からインストールする。と、今度は PyTorch が必要だと怒られるので先に PyTorch を入れる。→ ことをしたかったが Pipfile の Lock が終わらない。
$ pipenv install "https://download.pytorch.org/whl/cu115/torch-1.11.0%2Bcu115-cp38-cp38-linux_x86_64.whl" $ pipenv install git+https://github.com/idiap/fast-transformers.git#egg=pytorch-fast-transformers $ ls ~/.local/share/virtualenvs/20220502_sandbox-j2IpnJRo/lib/python3.8/site-packages/fast_transformers/causal_product/