Help us understand the problem. What is going on with this article?

Pythonでの機械学習の環境構築にAnacondaはいかがでしょうか

主張

ほぼタイトルで完結しています。
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などがありますが、それらについては全く調査していません。
もっといい方法があるという場合は、是非ともご教授お願い致します。

最後に

意見、反論、コメントなどいろいろ歓迎です。
特に、繰り返しになりますが、もっといい方法があるという場合はコメントか記事の投稿をお願いします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした