主張
ほぼタイトルで完結しています。
Anacondaでは余計なパッケージが多すぎるという場合には、Minicondaで必要なパッケージだけをインストールすればいいと思います。
主張の理由
定期的に初心者向けにPythonの環境構築の記事が投稿されています。
そして、その多くで一緒にTensorflowかPytorchもインストールしていると思います。
環境構築で問題になるのがCUDAです。
CUDAのバージョンとTensorflowやPytorchのバージョンを正しく選んでインストールする必要があります。
これは、以下のような面倒くささがあると思います。
- 単純に対応するバージョンを調べてインストールするのが面倒くさい
- ついでにCuDNNのインストールも面倒くさい
- 迂闊にTensorflowやPytorchのバージョンを上げられない
- 複数のバージョンのTensorflowやPytorchを切り替えたい場合にCUDAのバージョンの切り替え(パスの設定)が面倒くさい
Anacondaではこれらの面倒くささを解決してくれます。
Anacondaがお勧めの理由
Pythonのパッケージと一緒にCUDAもインストールできる
TensorflowやPytorchの依存するパッケージとしてCUDAも紐付けられているので、適切なバージョンが自動的に選択されてインストールされます。
また、CUDA以外にもgitやcmakeなどのツールもインストールできるので、ルート権限がない場合にも重宝します。
仮想環境ごとCUDAのバージョンも切り替えられる
複数のPythonの環境を共存させるための仮想環境の機能がAnacondaにもあります。
Anacondaを使うとCUDAがその仮想環境の内側にインストールされるので、複数のCUDAの環境を共存できます。
この時、CUDAのパスの設定で苦しむことはありません。
Anacondaがダメかもしれない点
pipを使うと環境が壊れる場合がある
pipでインストールしようとした仮想環境だけでなく他の仮想環境も一緒に壊れるようです。
そのため、pyenvで仮想環境を作ってその上でAnacondaをインストールすべきという主張もあります。
(pyenvでは各仮想環境は完全に独立だが、Anacondaでは仮想環境にインストールされたパッケージがハードリンクされているために他の仮想環境にも影響するという違いがあります。)
ちなみに私はpipで環境が壊れたことはありませんが、Anacondaのパッケージマネージャcondaのバグで環境が壊れたことがあります。
ライトユーザーには過剰かもしれない
大学や会社でそれなりにTensorflowやPytorchを利用する人が対象ということでお願いします。
他のパッケージマネージャの方が優れているかもしれない
pyenvやpipenvなどがありますが、それらについては全く調査していません。
もっといい方法があるという場合は、是非ともご教授お願い致します。
最後に
意見、反論、コメントなどいろいろ歓迎です。
特に、繰り返しになりますが、もっといい方法があるという場合はコメントか記事の投稿をお願いします。