メインコンテンツへスキップ
見出し画像

Pythonの環境構築(Windows)

    概要

     Pythonの環境構築の手順を記載します。自分がやりたいこと(業務の効率化、機械学習・深層学習、個人でのAI開発)をベースに作成しております(Web開発などはしない予定)。
     環境構築めんどくさいのでとにかくPython触ってみたいという方は下記記事をご参照ください。

    1.Pythonのインストール:ANACONDA

     私はPythonを直接DLではなく環境構築の手間を省くためANACONDAを使用しますPython環境構築用のパッケージ。

     ANACONDAは商用利用では有償ですが一般個人レベルでは無料です。インストール要領は下記記事がオススメです。

     インストール後に「ユーザー環境変数」に下記パスが通っていることを確認します。

    画像

    2.Pythonライブラリのインストール

     Pythonで使用するライブラリを入れますインストール(各種ライブラリは「Pythonライブラリの紹介」参照)。ANACONDA導入時に大部分が入っておりますが足りない分は追加でインストールします。
     なお本などで勉強される方はライブラリのVersionはご留意くださいエラーが出たりAPIの記載方法が異なったりします。

    2-1.インストール方法(pip install)

     インストールしたいライブラリはターミナルAnaconda promptやcmdで下記を実行します。

    pip install {ライブラリ名}

     参考までに、Anacondaでは「conda installの方がよい」とか「pipとcondaを混ぜるな」とかありますが、今のところAnacondaを使用しながらpipでも問題が出ていないためそのまま使用しています。

    2-2.一括:pip install -r requirements.txt

     複数のライブラリをまとめてインストールしたい時初期設定時、仮想環境作成時、クラウド環境使用時などは下記を実施します。

    ①requirements.txtという名前のテキストファイルメモ帳を使用して自分で作りますにライブラリインストールしたいを記載します。参考例は下記の通りVersion指定方法も含めてです。

    xgboost
    streamlit == 0.84.0
    helium

     ②ターミナルで下記実行

    [In]
    pip install -r requirements.txt
    画像
    仮想環境の起動->Desktopへ移動後に処理

     自分用のライブラリは参考までに下記参照(2023年4月19更新)。

    3.Pytorchの環境構築

    3-1.WindowsユーザーのCUDAセットアップ

     Windows OSの場合、Pytorchによる機械学習でGPUを使用するためには特殊な環境構築が必要となります。(※PCにNVIDIA社製のGPUがない場合は使用できないため不要)
     なお内容の一部は下記を参照しております。

    https://www5.dent.niigata-u.ac.jp/~nisiyama/grad/python/pipenv-sys-install-GPU-j.pdf

    https://www.nvidia.com/docs/IO/116711/sc11-cuda-c-basics.pdf

    3-1-1.CUDAのセットアップ

     下記サイトからCUDAのインストーラをダウンロードして実行します(下記ではOSはWindows11)。

    【最新版のCUDAインストール】

    画像

    【Archiveから旧Ver.CUDAのインストール】

    3-1-2.cuDNNのセットアップ

     cuDNNのサイトからcuDNNをDLします(事前に要ログイン)。

    画像

     DLしたZipファイル内の(bin, include, lib)を3-1-1.でインストールしたCUDA\versionフォルダ内に入れて上書きする。

    画像

    3-1-3.再起動

     更新したら一度再起動します。

    3-2.Pytorchのインストール

    3-2-1.Pytorchのインストール

     深層学習フレームワークのPytorch機械学習をしない方は不要をインストールします。

     上記サイトから「INSTALL PYTORCH」にPC環境を入力すると「Run this Command:」にコマンドが出ます(GPUがない人はCPUを選択)。3-1.で環境構築した時の私のPCでの設定は下記のとおりです。

    画像

     下記をプロンプトにコピー して実行外部モジュールをインストールするのと同じ要領します。

    pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

    3-2-2.Pytorch/GPU動作の確認

     GPUが使用可能か確認するためのコードは下記のとおりです。出力がTrueでGPU名がでれば問題なく使用できるはずです(VS CODEで実行する場合は一度再起動すること)。

    [In]
    import torch
    
    print(torch.cuda.is_available())
    torch.cuda.get_device_name()
    
    [Out]
    True
    'NVIDIA GeForce RTX 3050 Laptop GPU'

    3-3.別添

    3-3-1.複数のCUDA環境の環境構築

     Windows上に複数のCUDA環境を設定することもできます。下記記事がそのまま参考になるためURLのみの紹介となります。

    https://www5.dent.niigata-u.ac.jp/~nisiyama/grad/python/pipenv-sys-install-GPU-j.pdf

     下図左はCUDA11.1のみ、右はCUDA10.0追加した時の環境変数の状態です。

    [ユーザー環境変数]
    変化なし
    [システム環境変数]
    {
    CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,
    CUDA_PATH_V10_0:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,
    CUDA_PATH_V111_1:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
    NVCUDASAMPLES_ROOT:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1,
    NVCUDASAMPLES10_0_ROOT:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0,
    NVCUDASAMPLES11_1_ROOT:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1,
    NVTOOLSEXT_PATH:C:\Program Files\NVIDIA Corporation\NvToolsExt\,
    }
    画像

     追加すると"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA"に追加したVersionのフォルダが作成されます。

    画像

    3-3-2.エラー対応

     エラーが出た場合の対応方法の記事を参考までに紹介します。

    【import torchがエラーで失敗した時の対処方法】


    4.ライブラリ専用の環境構築

    4-1.Graphviz(Windows)

     可視化ツールのGraphvizは下記のような図を出力できます。

    画像

     このライブラリは「pip install graphviz」だけでは不十分でありGraphvizのサイトから別途インストールが必要です。インストールは下記サイトを参考にしており、セットアップ時にPathは通しておきます。

    画像

    5.その他(Pythonには直接関係なし)

     Python+機械学習をするために必須でないですが自分が開発したい物に使う可能性があるツールも環境構築します。
     Pythonでは必須ではなく内容が多いため別記事にしました。

    6.補足

    6-1.PROXYの設定(会社内でpip install)

     社内で環境構築する時にPROXYが設定されている場合、pip installする時にエラーがでたりします。事前に情シスにPROXYのアドレスを確認のうえターミナルで下記を入力するとPROXY環境下でも自由に実行できます。


    参考資料

    Pythonが遅いというツイートを見たけど、これはPythonが苦手とする書き方なので速くするなら別の書き方が色々あります。あとPython3.11にすれば元の書き方でも倍以上速くなります。コード含めて結果まとめました。元ツイのコードだと19.7秒だけどとりあえず1マイクロ秒以下まで高速化できました https://t.co/OP963PFcxI pic.twitter.com/mUGKlGHJtO

    — Sho Shimauchi (@shiumachi) September 8, 2022

    あとがき

     新しいPCを購入して再度環境構築しないといけないので取り合えず書き出しました。特にCUDAが鬼門なのに完全に忘れた(正確にいうとあれこれやりすぎて何が正しかったか覚えてない)ので後日修正。
     とりあえず新PCでもそれなりに動いたのでOK。ただパッケージ管理がAnaconda任せなので、Anacondaがなくなったらヤバイ・・・・・・


     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ