Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@soyiharu

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

More than 1 year has passed since last update.

主張

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

最後に

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

7
Help us understand the problem. What is going on with this article?
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
soyiharu
近畿地方の大学で大学院生をやっています。主な研究は画像処理系で、使用する言語はPythonと速度が欲しいところはC++です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?