私的AI研究会 > ProjectEnv3

AI開発プロジェクト環境構築(Windows編)

anaconda-logo.png
win_logo.jpg

 AI開発プロジェクト実行に必要な環境を新しく作成する手順(最新版)
 『PyTorch ではじめる AI開発』以降のページを実行するために新しく環境を作成する
 同時に「NVIDIA cuda GPU」を使用できる環境構築をする

▼ 目 次
※ 最終更新:2024/06/11 

Anaconda のインストールと設定

設定動作環境

hp-envy.jpg

 HP ENVY Desktop TE02-1097jp

anaconda のダウンロードとインストール

  1. オフィシャルサイト https://www.anaconda.com/products/distribution にアクセス

     ● 画面の「Download」ボタン(赤丸)を押してダウンロード

     ● ダウンロード・ファイル名(2023/12/12 現在)
      Anaconda3-2023.09-0-Windows-x86_64.exe

  2. インストーラ「Anaconda3-2023.09-0-Windows-x86_64.exe」を実行し手順に従ってインストールする

Anaconda の起動と Python 環境の構築

  1. Windows のスタートメニューから「Anaconda Powershell Prompt」を選択する
    ・「すべてのアプリ」→「Anaconda3 (64-bit)」を展開 →「Anaconda Powershell Promp」(※ Windows11の場合)
    ・以降の作業は「Anaconda Powershell Prompt (anaconda3)」内で行う
    ・表示ウインドウのサイズや文字の大きさなどは、ウインドウ上部のタイトルバーを右クリック「プロパティ」で設定する。

  2. Anaconda を最新版に更新
    ※ コマンドプロンプトの最初が (base) になっているのを確認すること
    (base) PS > conda update -n base -c defaults conda
    Collecting package metadata (current_repodata.json): done
    Solving environment: done
        :
    Proceed ([y]/n)? y             ← 'y' を入力する
        :
    Executing transaction: done
    Retrieving notices: ...working... done

環境変数の設定

  1. 検索ウィンドウに「システムの詳細設定」と入力し「システムの詳細設定」ダイアログを表示する。
  2. 「環境変数」ボタンを押して環境変数ダイアログを表示する。
  3. 新規に「PYTHONPATH」「C:\anaconda_win\workspace_py37\mylib;C:\anaconda_win\workspace\lib」(オリジナル Python 共有ライブラリの場所)を追加する
  4. そのほかの環境変数は、後でプロジェクトの環境設定で追加する

  5. 「Anaconda Powershell Prompt (anaconda3)」を再起動して設定を確認する。
    (base) PS > echo $env:PYTHONPATH
    C:\anaconda_win\workspace_py37\mylib;C:\anaconda_win\workspace\lib

Windowsのターミナルで ANSI エスケープシーケンスを有効にする設定

20220107_000003m.jpg
  1. 「Anaconda Powershell Prompt (anaconda3)」「Anaconda (py38)」でANSI エスケープシーケンスを有効にする
  2. 「レジストリエディタ」で「_HKEY_CURRENT_USER\Console\」を開く
  3. DWORDキー「VirtualTerminalLevel」を作成し(必要な場合)、その値を '1' に設定する
    デフォルトでANSI処理をグローバルに 1:有効化 0:無効化`

ターミナル起動時の環境設定

  1. 「スタートボタン」を押し「Anaconda Powershell Prompt」の上で 右クリック → その他 → ファイルの場所を開く を選択する
  2. 表示されるエクスプローラ上の「Anaconda Powershell Prompt」で 右クリック → プロパティ を選ぶ
  3. リンク先の項目を変更する。
    ・元の記述
    %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\<User>\anaconda3' "
    ・次のように変更 <User> = ユーザー名 C: = anaconda_winを配置したドライブ
    %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\<User>\anaconda3' ; Set-Location 'c:\anaconda_win' "
  4. 「Anaconda Powershell Prompt」を再起動して設定を確認する。
    ※ コマンドプロンプトの最初が (base) になっているのを確認すること

Anaconda 仮想環境一覧

Anaconda 環境設定の確認方法

  1. 仮想環境の確認
    (***) PS > conda info -e
  2. python のバージョンの確認
    (***) PS > python -V

仮想環境の選択(例:py38)

  1. 仮想環境を有効にする
    (base) PS > conda activate py38
    (py38)
  2. プロジェクトフォルダを選択する
    (py38) PS > cd /anaconda_win/work/
  3. 仮想環境から抜ける
    (py38) PS > conda deactivate
    (base)

プロジェクト環境設定1:PyTorch ではじめる AI開発 【仮想環境(py37)】

chapt05_result3_s.gif
pytorch_book_s.jpg

anaconda の環境設定(py37)

  1. Anaconda の設定 Python 3.7 の仮想環境を作成する
    (base) PS > conda create -n py37 python=3.7
    ▼「conda create -n py37 python=3.7」ログ

  2. 仮想環境を起動する
    (base) PS > conda activate py37
    (py37) PS >
  3. 仮想環境を確認する
    (py37) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py37                  *  C:\Users\USER\anaconda3\envs\py37
    ※ USER: ユーザー名, *: 現在アクティブな仮想環境

Pytorch と必要なパッケージのインストール

  1. 仮想環境に PyTorch をインストールする

    ● オフィシャルサイト PyTorch FROM RESEARCH TO PRODUCTION からインストールのためのコマンドを取得する
    (py37) PS > pip install torch torchvision torchaudio
    ▼「pip install torch torchvision torchaudio」ログ

  2. 「conda install」コマンドでパッケージをインストール
    (py37) PS > conda install opencv
    ▼「conda install opencv」ログ
    (py37) PS > conda install pandas
    ▼「conda install pandas」ログ
    (py37) PS > conda install tqdm
    ▼「conda install tqdm」ログ
    (py37) PS > conda install matplotlib
    ▼「conda install matplotlib」ログ
    (py37) PS > conda install PyYAML
    ▼「conda install PyYAML」ログ

  3. 「pip install」コマンドでパッケージをインストール
    (py37) PS > pip install scikit-learn
    ▼「pip install scikit-learn」ログ
    (py37) PS > pip install pycocotools
    ▼「pip install pycocotools」ログ
    (py37) PS > pip install facenet-pytorch
    ▼「pip install facenet-pytorch」ログ

環境の確認

  1. 「Pytorch」のインストール確認
    (py37) PS > python -c "import torch"
  2. 「PyTorch」で GPU 使用できるかの確認
    (py37) PS > python -c 'import torch;print(torch.zeros(1).cuda())'
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\izuts\anaconda3\envs\py37\lib\site-packages\torch\cuda\__init__.py", line 221, in _lazy_init
        raise AssertionError("Torch not compiled with CUDA enabled")
    AssertionError: Torch not compiled with CUDA enabled
    ※ 今回ドライバをインストールしていないのでエラーとなる
  3. 「tkinter」パッケージのインストール確認
    (py37) PS > python -c 'import tkinter'
  4. 「ffmpeg」コマンドの確認
    (py37) PS > ffmpeg -h
    ▼「ffmpeg -h」ログ

書籍サンプルファイルのダウンロードとテスト

20231215_115254_001m.jpg
  1. 書籍オフィシャルサイト にアクセスしてサンプルデータをダウンロードする。(pytc/sk353)
  2. プロジェクトのディレクトリ「/anaconda_win/workspace_py37」を作成し、解凍して配置する。
    ▼サンプルデータの配置

  3. サンプルファイル「chapt01_1.py」を実行してみる。(カメラデバイスの確認)
    (py37) PS > cd /anaconda_win/workspace_py37/sample/chapt01
    (py37) PS > python3 chapt01_1.py
    ▼「python3 chapt01_1.py」ログ

python3.7 環境構築の確認

  1. python のバージョンの確認
    (py37) PS > python --version
    Python 3.7.16
  2. conda の動作確認
    ※ エラーメッセージが出なければ OK.
    (py37) PS > conda info
    ▼「conda info」ログ

  3. Anaconda の Python の numpy を確認
    ※ バージョン番号が表示されれば OK.
    (py37) PS > python -c "import numpy; print( numpy.__version__ )"
    1.21.5

PyTorch ではじめる AI開発 【仮想環境(py37)】実行プロジェクト 環境は既に構築済み

chapt05_result_s.gif
  1. Chapter2: 定点カメラの映像を認識する
     OpenVINO™ を利用する(ONNXモデルコンバート検証)
  2. Chapter3: 教師データにない状況を異常検出
  3. Chapter4: 物体検出と学習済みモデル
  4. Chapter5: 動画の背景を入れ替える
  5. Chapter6: アジア人向けに強化された顔認証 (保留)
  6. Chapter7: 線画をイラストに変換する
  7. Chapter8: OCR における文字認識
  8. Chapter9: OCR を完成させる

プロジェクト環境設定2:文字認識「OCR」【仮想環境(py37x)】

20220106_000000_001m.jpg

プロジェクトパッケージの配置

  1. 「プロジェクト・パッケージ for windows」をダウンロード
    anaconda_win_20220107.zip (1.55GB) <TryOCR 環境・以前のプロジェクト一式>
    anaconda_win_20220416.zip (712MB) <FormOCR 環境・プロジェクト一式>

  2. 「anaconda_win_20220107.zip」を解凍してできた「anaconda_win」フォルダ内の「anaconda」フォルダ以外を「anaconda_win」フォルダ内に上書きコピーする

  3. 「anaconda_win_20220416.zip」を解凍してできた「anaconda_win」フォルダ内の「workspace_py37」フォルダを「anaconda_win」フォルダ内に上書きコピーする

仮想環境(py37x) の作成

  1. 環境設定ファイルから conda 仮想環境を構築する
    (base) PS > cd /anaconda_win/workspace_py37         ← 「environment_py37x.yaml」ファイルのある場所へ
    (base) PS > conda env create -f environment_py37x.yaml
    ▼「conda env create -f environment_py37x.yml」ログ

  2. 仮想環境を起動する。
    (base) PS > conda activate py37x
    (py37x) PS >
  3. 仮想環境の確認
    (py37x) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
    py37                     C:\Users\USER\anaconda3\envs\py37
    py37x                 *  C:\Users\USER\anaconda3\envs\py37x
    py38                     C:\Users\USER\anaconda3\envs\py38
  4. パッケージの確認(エラーが出なければ OK)
    (py37x) PS > python -c "import torch"
    (py37x) PS > python -c "import tkinter"
    (py37x) PS > python -c "from openvino.inference_engine import IECore"

OCRパッケージ「tesseract」の導入

20231218_095702_001m.jpg
  1. 「tesseract」のインストールは、windowsの場合 anaconda からはうまくいかないようなので、サイト からインストールパッケージをダウンロードする。

  2. ダウンロードした「tesseract-ocr-w64-setup-5.3.3.20231005.exe」を実行する。
  3. 「Choose Components」画面が表示されたら「Additional script data(download)」を展開して「Japanese script」と「Japanese vertical script」にチェックを入れる。
  4. 同様に「Additional language data(download)」を展開して「Japanese」と「Japanese(Vertical)」にチェックを入れる。
  5. 4箇所を追加で選択したら、以降デフォールトのままインストールを進めて完了する。

環境変数の設定「tesseract」

  1. 検索ウィンドウに「システムの詳細設定」と入力し「システムの詳細設定」ダイアログを表示する。
  2. 「環境変数」ボタンを押して環境変数ダイアログを表示する
  3. 「Path」に「C:\Program Files\Tesseract-OCR」を追加する
  4. 新規に「TESSDATA_PREFIX」「C:\Program Files\Tesseract-OCR\tessdata」を追加する
  5. 新規に「PYTHONPATH」「C:\anaconda_win\workspace\lib」(追加した Python パッケージの場所)を追加する

  6. 「Anaconda Powershell Prompt (anaconda3)」を再起動して設定を確認する。
    (base) PS > echo $env:Path
    C:\Users\USER\anaconda3;.................................;C:\Program Files\Tesseract-OCR;.
    (base) PS > echo $env:TESSDATA_PREFIX
    C:\Program Files\Tesseract-OCR\tessdata
    (base) PS > echo $env:PYTHONPATH
    C:\anaconda_win\workspace_py37\mylib

『OCR アプリケーション基礎編:文字認識エンジン「Tesseract」』で作成したプログラムの実行

Tesseract_logo_001.png

参照ページ → 「実用的な AI開発へ - 文字認識エンジン「Tesseract」
ソースコードの場所 (すべて Linux/Windows 環境に対応)

(py37x) PS > cd /anaconda_win/workspace_py37/pyocr
  1. 環境構築と対応言語の確認
    (py37x) PS > python initialization.py
    Will use tool 'Tesseract (sh)'
    Available languages: eng, jpn, jpn_vert, osd, script/Japanese, script/Japanese_vert
    Will use lang 'eng'
  2. OCR としての簡単なテスト
    (py37x) PS > python ocrtest.py
  3. Webカメラ入力の簡単なテスト「ocrtest_cam.py」
    (py37x) PS > python ocrtest_cam.py
  4. Step 1 イメージ画像からテキストを認識する「ocrtest1.py」
    (py37x) PS > python ocrtest1.py
  5. Step 2 イメージ画像から文字と文字の位置を認識する「ocrtest2.py」
    (py37x) PS > python ocrtest2.py
  6. Step 3 イメージ画像から文章と文章の位置と信頼性スコアを取得する「ocrtest3.py」
    (py37x) PS > python ocrtest3.py
  7. Step 4 文章と文章の位置と信頼性スコアを表示する「ocrtest4.py」
    (py37x) PS > python ocrtest4.py
  8. OCR アプリケーション 試作版「tryocr.py」
    (py37x) PS > python tryocr.py

『OCR アプリケーション基礎編:OCR アプリケーションを作る』で作成したプログラムの実行

参照ページ → 実用的な AI開発へ - OCR アプリケーションを作る
ソースコードの場所 (すべて Linux/Windows 環境に対応)

(py37x) PS > cd /anaconda_win/workspace_py37/tryocr
  1. Step 1 帳票画像の一部領域を指定して文字認識させる「tryocr_step1.py」
    (py37x) PS > python tryocr_step1.py
  2. Step 2 指定した領域の切り出しをオリジナルの元画像で行うようにする「tryocr_step2.py」
    (py37x) PS > python tryocr_step2.py
  3. Step 3 切り出した画像に前処理を加えて文字認識を行う「tryocr_step3.py」
    (py37x) PS > python tryocr_step3.py
  4. 設定ファイルを作成・編集する「mylib_yaml.py」
    (py37x) PS > python mylib_yaml.py
  5. Step 4 位置情報を入力・編集・ファイルするプログラムを考える 「tryocr_step4.py」
    (py37x) PS > python tryocr_step4.py
  6. Step 5 配置情報ファイルを利用して伝票内を一括処理する 「tryocr_step5.py」
    (py37x) PS > python tryocr_step5.py
  7. Step 6 Step 6 OCR から得られた各項目の妥当性の検査と CSV 出力 「tryocr_step6.py」
    (py37x) PS > python tryocr_step6.py

『OCR アプリケーション実践編:帳票OCRプログラム「FormOCR」』で作成したプログラムの実行

参照ページ → 帳票OCRプログラム「FormOCR」:サンプルデータを使って練習
ソースコードの場所 (すべて Linux/Windows 環境に対応)

(py37x) PS > cd /anaconda_win/workspace_py37/formocr
  1. サンプルデータの水平傾き補正をする
    (py37x) PS > python prepros.py -r 0
  2. サンプル帳票を自動識別処理する
    (py37x) PS > python formocr.py
  3. サンプル帳票のフォーム編集プログラム
    (py37x) PS > python formocr_edit.py

『AI・エッジコンピューティング』で作成したプログラムの実行

  1. 感情分析 / 年齢/性別分析 / 物体検出 / 人物追跡 / 顔追跡
    (py37x) PS > python emotion2.py
    (py37x) PS > python age_gender2.py
    (py37x) PS > python object_detect_yolo3_2.py
    (py37x) PS > python person-tracking2.py
    (py37x) PS > python face-tracking2.py
  2. リアルタイム感情分析 / リアルタイム画像分類 / メガネ・帽子 バーチャル試着 / マスク着用の有無を調べる
    (py37x) PS > python sentiment_analysis2.py
    (py37x) PS > python image_classification.py
    (py37x) PS > python virtual_fitting.py
    (py37x) PS > python face_mask.py

プロジェクト環境設定3:顔認証「Face recognition」【仮想環境(py37y)】

output.jpg

顔認証/顔認識 (Face recognition)

  1. プロジェクトの準備
    update_20220617.zip をダウンロード

  2. 環境設定ファイルから conda 仮想環境を構築する
    (base) PS > cd /anaconda_win/workspace_py37         ← 「win_environment_py37y.yaml」ファイルのある場所へ
    (base) PS > conda env create -f win_environment_py37y.yaml
  3. 仮想環境(py37y)を有効にする
    (base) PS > conda activate py37y
    (py37y) PS >
  4. InsightFace の検証
    build Tools のダウンロードとインストール
    ・ InsightFace のインストール
    (py37y) PS > pip install protobuf==3.20
    (py37y) PS > pip install onnxruntime
    (py37y) PS > cd /anaconda_win/workspace_py37/inface
    (py37y) PS > pip install insightface
    ・「opencv-python-headless」がインストールされるので削除
    (py37y) PS > pip uninstall opencv-python-headless
    ・ InsightFace のテスト
    (py37y) PS > cd /anaconda_win/workspace_py37/inface
    (py37y) PS > python face_test.py
    ・ InsightFace でカメラ入力をテスト
    (py37y) PS > python face_test1.py

  5. Face Recognition の検証
    ・パッケージ(dlib/face_recognition) のインストール
    (py37y) PS > conda install -c conda-forge dlib
    (py37y) PS > conda install -c conda-forge face_recognition
    ・「face recognition」パッケージのテスト
    (py37y) PS > cd /anaconda_win/workspace_py37/inface
    (py37y) PS > python face_rec_test.py
    (py37y) PS > python face_rec_test1.py
    ・カメラによるリアルタイム顔判定
    (py37y) PS > cd /anaconda_win/workspace_py37/inface
    (py37y) PS > python face_rec_test2.py

顔認証プログラムの開発 Step 1

face_rec1_out1.gif
  1. プロジェクトの準備
    update_20220719.zip をダウンロード

  2. カメラによるリアルタイム顔判定「face_rec1.py」
    (py37y) PS > cd /aconda_win/workspace_py37/face_rec
    (py37y) PS > python face_rec1.py
    Starting..
     - Program title  : Face recognition (step1)  Ver 0.02
        :
    FPS average:      14.20
    Finished.

顔認証プログラムの開発 Step 2

20231219_162811_001m.jpg
  1. カメラで認識した顔画像を登録「face_rec2.py」
    (py37y) PS > python face_rec2.py
    Starting..
     - Program title  : Face recognition (step2)  Ver 0.02
        :
    FPS average:      20.20
    Finished.

顔認証/顔認識パッケージ「Face recognition」のテスト

20220715_043415_000m.jpg
  1. [顔検出] 画像から顔を見つける「find_faces_in_picture.py」
    (py37y) PS > cd /anaconda_win/workspace_py37/face_rec_try/
    (py37y) PS > python find_faces_in_picture.py
  2. [顔検出] 画像から顔を見つける(ディープラーニングを使用する)「find_faces_in_picture_cnn.py」
    (py37y) PS > python find_faces_in_picture_cnn.py
  3. [顔認識] k近傍法で顔認識する「face_recognition_knn.py」
    (py37y) PS > python face_recognition_knn.py
  4. [顔認識] 人物ごとに複数の画像をトレーニングし、SVM(サポートベクターマシン)を用いて顔認識する「face_recognition_svm.py」
    (py37y) PS > python face_recognition_svm.py

顔認証プログラムの開発 Step 3

20231220_093209_001m.jpg
  1. 顔登録の方法と認識手法を改良する「face_rec3.py」
    (py37y) PS > cd /anaconda_win/workspace_py37/face_rec/
    (py37y) PS > python face_rec3.py
  2. 静止画像を対象にした顔認識アプリケーション「face_rec_still.py」
    (py37y) PS > python python face_rec_still.py --tol 0.5.py

顔認証プログラムの開発 Step 4「顔認証の結果で『自動ドア』を制御する」

auto_door.gif
  1. 開発手順 / 事前準備
    update_20220820.zip をダウンロード
    ・必要なパッケージの導入
    (py37y) PS > conda install -c conda-forge readchar
    (py37y) PS > conda install -c conda-forge pyserial
  2. ドア制御付き顔認証プログラム「face_rec3d.py」の実行
    (py37y) PS > python door_ctrl.py /dev/ttyUSB0
    'COM3' port ready.
    b'd'
    b'o'
    b'c'
    b'q'
    Program Finished.
    (py37y) PS > python face_rec3d.py -p /dev/ttyUSB0
    Starting..
     - Program title  : Face recognition (step3)  Ver 0.02
        :
     - UART port name : COM3
    '/dev/ttyUSB0' port ready.
    FPS average:      26.70
    Finished.

Open JTalk で日本語発声

openjtalk.png
  1. OpenJtalk のインストール Windows 環境の場合
    update_20220916.zip をダウンロード
    ・ページ記載の手順でインストール

  2. Python による再生プログラム Windows 環境の場合
    (py37y) PS > cd /anaconda_win/workspace_py37/jtalk/
    (py37y) PS > python jtalkw.py

Pythonでメール送信

  1. パッケージ化する テスト実行 (Windowsの例)
    (py37y) PS > cd /anaconda_win/workspace_py37/jtalk/
    (py37y) PS > python mail.py

顔認証プログラムの開発 Step 5「認証結果を音声とメールで知らせる」

ai_jtalk_20220916m.jpg
  1. プロジェクトの準備(前項で済み)
    ・(参考)「Reception」プロジェクトの動作環境構築
    ・Pyserialのインストール

  2. 設定ファイルアクセス・プログラム「face_rec_yaml.py」
    (py37y) PS > cd /anaconda_win/workspace_py37/face_rec
    (py37y) PS > python face_rec_yaml.py
  3. 顔認証結果の処理・プログラム「rec_result.py」
    (py37y) PS > python rec_result.py
  4. 顔認証プログラム (Step 6)「face_rec4.py」
    (py37y) PS > python face_rec4.py
    Starting..
     - Program title  : Face recognition (step4)  Ver 0.04
        :
    subject : '2024/01/12 10:37:40 : 受付'
    message : '井筒 政弘 様 来社です
    hostname : ubuntu-HP-ENVY
    from : aipromotion999@gmail.com
    to : izutsum-sp@docomo.ne.jp'
    FPS average:      25.70
    Finished.

受付システム・プログラム「Reception.py」

20221014_000000_001m.jpg
  1. 「Reception」プロジェクトのインストールと環境設定
    update_20221015.zip をダウンロード

  2. 更新ファイルのインストール
    update_20221109.zip をダウンロード
    ・解凍して「update/」フォルダ内を「anaconda_win/」フォルダ内に上書き配置する
  3. 受付システム・プログラムの起動
    (py37y) PS > cd /anaconda_win/workspace_py37/reception
    (py37y) PS > python reception.py 
    Starting..
     - Program title  : Reception System Ver 0.01
        :
    'COM3' port ready.
    QWindowsWindow::setGeometry: Unable to set geometry 98x69+21+31 (frame: 114x108+13+0) on QWidgetWindow/"Reception System Ver 0.01  (hit 'q' or 'esc' key to exit)Window" on "\\.\DISPLAY1". Resulting geometry: 120x69+21+31 (frame: 136x108+13+0) margins: 8, 31, 8, 8 minimum size: 98x69 maximum size: 98x69 MINMAXINFO maxSize=0,0 maxpos=0,0 mintrack=114,108 maxtrack=114,108)
    subject : '2023/12/20 15:01:50 : 受付'
    message : '井筒 政弘 様 来社です
    hostname : HP-ENVY_TE02
    from : aipromotion999@gmail.com
    to : izutsum-sp@docomo.ne.jp'
    [ WARN:0] global D:\bld\libopencv_1632857438825\work\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
    FPS average:      25.60
    Finished.

OpenVINO™ 推論プログラムの再検証

  1. 感情分析 / 年齢/性別分析 / 物体検出 (YOLO V3) / 物体検出 (YOLO V5) / 人物追跡 / 顔追跡
    (py37y) PS > python emotion3.py
    (py37y) PS > python age_gender3.py
    (py37y) PS > python object_detect_yolo3_3.py
    (py37y) PS > python object_detect_yolo5.py
    (py37y) PS > python person-tracking3.py
    (py37y) PS > python face-tracking3.py
  2. 感情分析 / 画像分類 / メガネ・帽子 バーチャル試着 / マスク着用の検査
    (py37y) PS > python sentiment_analysis3.py
    (py37y) PS > python image_classification3.py
    (py37y) PS > python virtual_fitting3.py
    (py37y) PS > python face_mask3.py

プロジェクト環境設定4:画像生成「Stable-diffusion」【仮想環境(py38)】

20230202_000015_001m.jpg

仮想環境(py38) の作成

  1. 新しく仮想環境を作成する
    (base) PS > conda create -n py38 python=3.8
  2. できた仮想環境の確認
    (base) PS > conda info -e
    # conda environments:
    #
    base                  *  C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
    py37                     C:\Users\USER\anaconda3\envs\py37
    py38                     C:\Users\USER\anaconda3\envs\py38
    
    (base) PS > conda activate py38
    (py38) PS >                ← (py38) に切り替わっていることを確認する

画像生成「Stable-diffusion」パッケージの配置

  1. プロジェクト・ファイルのダウンロード
    AI_project_20230203.zip (55.9MB) <Stable-deffusion プロジェクト一式> をダウンロード
  2. ドライブ直下に「anaconda_win」フォルダを作成する
  3. 「AI_project」フォルダ内をすべて「anaconda_win」直下に配置する
    ドライブ直下のプロジェクト・ディレクトリ
    c:/anaconda_win
    ├─workspace_py37
    │  ├─mylib             ← python 共有ライブラリ (パスが通っていること)
    │  └─openvino
    └─workspace_py38        ← anaconda 環境下のアプリケーション・プロジェクト
        ├─googletrans
        └─stable_diffusion
  4. 「Stable-diffusion」パッケージのインストール
    (py38) PS > cd /anaconda_win/workspace_py38\stable_diffusion
    (py38) PS > python -m pip install --upgrade pip
    (py38) PS > pip install openvino==2022.1.0
    (py38) PS > pip install -r requirements.txt

「Stable-diffusion」動作確認

自動翻訳パッケージ「googletrans」インストール

「googletrans」の動作確認

GUI 画像生成プログラム

output_0705810762.jpg
output_0496114559.jpg
output_3581691526.jpg

画像生成 【仮想環境(py38)】実行プロジェクト 環境は既に構築済み

try_008m.jpg
  1. 「Stable-Diffusion」を試してみる
  2. 「Stable-Diffusion」GUIを作る
  3. 「Stable-Diffusion」画像生成を試す
  4. 「Stable-Diffusion」パラメータを検証する
  5. 「Stable-Diffusion」画像生成速度を検証する
  6. 「Stable-Diffusion」自動翻訳を組み合わせる
    update_20230104.zip (1.27GB)   (result_data/フォルダのみ配置)
  7. 「Stable-Diffusion」色々な画像生成を試す
  8. 「Stable-Diffusion」実用性を探る
  9. 「Stable-Diffusion」人物画像を生成する
  10. 「Stable-Diffusion」画像を元にして生成する
  11. Stable diffusion の Webサービス「Dream Studio」
  12. 「Stable-Diffusion infinity」を試してみる

プロジェクト環境設定5:物体認識「YOLO V7」【仮想環境(py38a)】

yolov7_out.jpg

プロジェクトパッケージの配置

  1. 「プロジェクト・パッケージ for Windows/Linux」をダウンロード
    AI_project_20230413.zip (216MB) <YOLO v7 プロジェクト一式>

  2. 「AI_project_20230413.zip」を解凍してできた「update」フォルダ内をすべてプロジェクトのホームディレクトリに配置する(上書き保存)
    プロジェクトのディレクトリ配置
    プロジェクト・ホーム(c:/anaconda_win または ~/)
    ├─Images                ← 画像データ
    ├─model                 ← 学習済みモデル
    ├─Videos                ← 動画データ
    │       :
    ├─work                  ← 今回使用するプロジェクト・ディレクトリ
    │  ├─openvino
    │  └─yolov7
    ├─workspace_py37
    │  └─mylib             ← python 共有ライブラリ (パスが通っていること)
    └─workspace_py38        ← anaconda 環境下のアプリケーション・プロジェクト
        ├─ :
        └─stable_diffusion

仮想環境(py38a) の作成

  1. 新しく仮想環境を作成する
    (base) PS > conda create -n py38a python=3.8
  2. できた仮想環境の確認
    (base) PS > $ conda activate py38a
    (py38a) PS >                ← (py38a) に切り替わっていることを確認する
    (py38a) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
        :
    py38                     C:\Users\USER\anaconda3\envs\py38
    py38a                 *  C:\Users\USER\anaconda3\envs\py38a

新規の仮想環境「py38a」に必要なパッケージをインストール

  1. パッケージのインストール
    「/anaconda_win/work/requirements.txt」設定ファイル
    # Stable Diffusion & YOLOv7_OpenVINO
    openvino==2022.1.0
    numpy==1.19.5
    opencv-python==4.5.5.64
    transformers==4.16.2
    diffusers==0.2.4
    tqdm==4.64.0
    huggingface_hub==0.9.0
    scipy==1.9.0
    streamlit==1.12.0
    watchdog==2.1.9
    ftfy==6.1.1
    PyMuPDF
    torchvision
    matplotlib
    seaborn
    onnx
    googletrans==4.0.0-rc1
    (py38a) PS > cd /anaconda_win/work
    (py38a) PS > pip install -r requirements.txt
    ▼「pip install -r requirements.txt」ログ

  2. 「YOLOv7_OpenVINO」「YOLO V7」を実装する
    YOLOv7_OpenVINO のテスト のページ以下を実行する

物体認識 【仮想環境(py38a)】実行プロジェクト

jankenn_tet2.gif
  1. 物体認識の深層学習タスク:YOLO V7 実行プログラムの作成
    (py38a) PS > cd /anaconda_win/work/yolov7
    (py38a) PS > python object_detect_yolo7.py
    (py38a) PS > cd /anaconda_win/work/openvino/
    (py38a) PS > python object_detect_yolo5.py
    (py38a) PS > python object_detect_yolo3.py
  2. カスタムデータによる学習1「マスク着用の判定」  update_20230519.zip (235MB)
    (py38a) PS > cd /anaconda_win/work/yolov7
    (py38a) PS > python object_detect_yolo7.py -m mask_best.onnx -l mask.names_jp -i ../../Images/mask.jpg -o out_mask.jpg
  3. カスタムデータによる学習2「じゃんけんの判定1」 update_20230616.zip (1.22GB)
    (py38a) PS > pip install labelImg
    (py38a) PS > cd /anaconda_win/work/labelImg/janken/
    (py38a) PS > labelImg par predefined_classes.txt par
    (py38a) PS > cd /anaconda_win/work/yolov7-main
    (py38a) PS > python detect2.py --weights runs/train/yolov7x_custom2_60/weights/best.pt --conf 0.25 --img-size 640 --source ../../Images/janken2.jpg --view-img
    (py38a) PS > cd /anaconda_win/work/yolov7
    (py38a) PS > python object_detect_yolo7.py -m ../yolov7-main/runs/train/yolov7x_custom2_60/weights/best.onnx -l janken.names_jp -i cam
    (py38a) PS > python object_detect_yolo7.py -m ../yolov7-main/runs/train/yolov7x_custom2_60/weights/best.onnx -l janken.names_jp -i ../../Images/janken2.jpg
  4. 学習パラメータ考察
  5. カスタムデータによる学習3「じゃんけんの判定2」 update_20230718.zip (784MB)
    (py38a) PS > cd /anaconda_win/work/yolov7
    (py38a) PS > python object_detect_yolo7.py -m ../yolov7-main/runs/train/yolov7x_custom4_60/weights/best.onnx -l janken.names_jp -i ../../Images/janken3.jpg -o janken3_custom4_60.jpg
  6. カスタムデータによる学習4「じゃんけんの判定3」 update_20230813.zip (1.32GB)
  7. 元になる学習モデルの違いによる考察
  8. 「じゃんけん」カスタムデータによる学習モデルまとめ

プロジェクト環境設定6:ローカルマシンで学習【仮想環境(py38b)】

仮想環境(py38b) の作成

  1. 新しく仮想環境を作成する
    (base) PS > conda create -n py38b python=3.8
  2. できた仮想環境の確認
    (base) PS > $ conda activate py38b
    (py38b) PS >                ← (py38b) に切り替わっていることを確認する
    (py38b) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
        :
    py38b                 *  C:\Users\USER\anaconda3\envs\py38b

新規の仮想環境「py38b」に必要なパッケージをインストール

  1. パッケージのインストール
    「/anaconda_win/work/requirements.txt」設定ファイル
    # Stable Diffusion & YOLOv7_OpenVINO
    openvino==2022.1.0
    numpy==1.19.5
    opencv-python==4.5.5.64
    transformers==4.16.2
    diffusers==0.2.4
    tqdm==4.64.0
    huggingface_hub==0.9.0
    scipy==1.9.0
    streamlit==1.12.0
    watchdog==2.1.9
    ftfy==6.1.1
    PyMuPDF
    torchvision
    matplotlib
    seaborn
    onnx
    googletrans==4.0.0-rc1
    (py38b) PS > cd /anaconda_win/work
    (py38b) PS > pip install -r requirements.txt

インストール結果の確認

インストールされている NVIDIA ドライバーの確認

「Pytorch」インストール

  1. Pytorch オフィシャルサイト のインストールコマンドを実行
    (py38b) PS > pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    ▼ - log - NVIDIA GeForce RTX 4070 Ti

  2. インストール結果の確認
    (py38b) PS > conda list
    # packages in environment at C:\Users\USER\anaconda3\envs\py38b:
    #
    # Name                    Version                   Build  Channel
        :
    torch                     2.1.2+cu121              pypi_0    pypi
    torchaudio                2.1.2+cu121              pypi_0    pypi
    torchvision               0.16.2+cu121             pypi_0    pypi
        :
    (py38b) PS > python
    Python 3.8.18 (default, Sep 11 2023, 13:39:12) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import torch
    >>> print(torch.__version__)
    2.1.2+cu121
    >>> import torchvision
    >>> print(torchvision.__version__)
    0.16.2+cu121
    >>> quit()

  3. GPU を認識しているかのテスト「workspace_py37/cuda_test.py」
    (py38b) PS > cd /anaconda_win/workspace_py37
    (py38b) PS > python cuda_test.py
    2.1.2+cu121
    cuda, True
    compute_89
    find gpu devices, 1
    cuda:0, NVIDIA GeForce RTX 4070 Ti
    end

パッケージの追加

Git のインストール

20231221_100516_001m.jpg
  1. Windows用インストーラを オフィシャルサイトgit for windows からダウンロード
  2. インストールと設定をする → Gitのインストール方法(Windows版)
    (py38b) PS > git config --global user.name izuts
    (py38b) PS > git config --global user.email izutsum@venus.dti.ne.jp
    (py38b) PS > ssh-keygen
    Generating public/private rsa key pair.
        :
    デフォルトで問題ないので何も入力せずにEnterを押す
  3. インストール確認
    (py38b) PS > git --version
    git version 2.43.0.windows.1

学習 Training を実行

20240115_123232_001_m.jpg
  1. データ・セット「janken_dataset」をフォルダごと「yolov7-main/data」にアップする

  2. 学習するのに必要な情報を記述したyamlファイル「janken_dataset.yaml」を「yolov7-main」の直下にアップする

  3. 「Official YOLOv7」 から、学習済みモデル「yolov7x.pt」をダウンロードし「/work/yolo7-main」の下にコピーする

  4. 下記のコマンドで学習を実行する
    GeForce RTX 4070 メモリーサイズ(12GB) から バッチサイズ:8 で実行できる
    (py38b) PS > cd /anaconda_win/work/yolov7-main
    (py38b) PS > python train.py --workers 8 --batch-size 16 --data janken_dataset.yaml --cfg cfg/training/yolov7x.yaml --weights 'yolov7x.pt' --name yolov7x_custom2 --hyp data/hyp.scratch.p5.yaml --epochs 300 --device 0
    ▼ - log - NVIDIA GeForce RTX 4070 Ti

  5. 正常に終了すると、学習結果は「yolov7-main/runs/train/yolov7x_custom2*/」に保存される
    ・学習結果モデルは「yolov7x_custom26/weights」評価指標は「yolov7x_custom26」
    この学習にかかった時間 → 1時間 19分
    F1 curveP curvePR curveR curve

  6. 「GoogleColab」と同じバッチサイズ:16 で実行した場合はメモリースワップにより時間がかかる
    (py38b) PS > cd /anaconda_win/work/yolov7-main
    (py38b) PS > python train.py --workers 16 --batch-size 16 --data janken_dataset.yaml --cfg cfg/training/yolov7x.yaml --weights 'yolov7x.pt' --name yolov7x_custom2 --hyp data/hyp.scratch.p5.yaml --epochs 300 --device 0
    ▼ - log - NVIDIA GeForce RTX 4070 Ti

    この学習にかかった時間 → 13時間 19分

  7. 搭載メモリー以内で使用した場合、Colab 基本実装 GPU T4 の およそ 4.5倍の速度(51.5/11.5 = 4.5)
    NVIDIA GeForce RTX 4070 Ti 12GB(11.5s / 1 Epoch)
            :
         Epoch   gpu_mem       box       obj       cls     total    labels  img_size
         1/299     9.13G   0.05278   0.01643   0.02072   0.08993        24       640: 100%|█| 60/60 [00:12<00:00,  4.97it/s]
                   Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█| 8/8 [00:00<00:00, 
                     all         120         120       0.251       0.283       0.197      0.0455
    
         Epoch   gpu_mem       box       obj       cls     total    labels  img_size
         2/299     10.7G   0.04662    0.0146    0.0188   0.08003        28       640: 100%|█| 60/60 [00:11<00:00,  5.01it/s]
                   Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█| 8/8 [00:00<00:00, 
                     all         120         120       0.229       0.533       0.289      0.0803
            :
    Tesla T4 16GB(51.5s / 1 Epoch)
            :
         Epoch   gpu_mem       box       obj       cls     total    labels  img_size
         1/299     9.48G   0.05013   0.01651   0.01977   0.08641        27       640: 100% 60/60 [00:53<00:00,  1.13it/s]
                   Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100% 8/8 [00:03<00:00,  2.29it/s]
                     all         120         120       0.168       0.292       0.149      0.0273
    
         Epoch   gpu_mem       box       obj       cls     total    labels  img_size
         2/299       11G     0.047   0.01419   0.01878   0.07998        20       640: 100% 60/60 [00:50<00:00,  1.19it/s]
                   Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100% 8/8 [00:03<00:00,  2.27it/s]
                     all         120         120       0.182         0.4       0.217      0.0691
            :

プロジェクト環境設定7:GAN(敵対的生成ネットワーク)【仮想環境(py38_gan)】

teaser_m.jpg

仮想環境(py38_gan) の作成

  1. 新しく仮想環境を作成する
    (base) PS > conda create -n py38_gan python=3.8
  2. できた仮想環境の確認
    (base) PS > $ conda activate py38_gan
    (py38_gan) PS >                ← (py38a) に切り替わっていることを確認する
    (py38_gan) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
        :
    py38_gan              *  C:\Users\USER\anaconda3\envs\py38_gan

必要なパッケージと「StarGAN-V2」導入

  1. 「StarGAN-V2」の導入 オフィシャルサイト から stargan-v2一式をダウンロード
    (py38_gan) PS > cd /anaconda_win/work/
    $ git clone https://github.com/clovaai/stargan-v2.git
    ▼「git clone https://github.com/clovaai/stargan-v2.git」ログ

  2. 学習済みモデルとプロジェクトファイルの配置
    下記のダウンロードしたファイルを解凍し「/work」フォルダ以降を「/anaconda_win/work」に上書き配置する
    update_20231015.zip (687MB) <アップデート・データ>

  3. パッケージのインストール
    (py38_gan) PS > pip install -r requirements.txt
    ▼「/anaconda_win/work/requirements.txt」設定ファイル
    ▼「pip install -r requirements.txt」ログ

  4. 不足しているパッケージをインストール
    (py38_gan) PS > pip install munch scikit-image ffmpeg
    ▼「pip install munch scikit-image ffmpeg」ログ

  5. 「StarGAN-V2」ソースコードを修正する
    下記「/anaconda_win/work/stargan-v2/core」フォルダ内の 3ファイルを名前を変えて上書きコピーする
    checkpoint_patch.py  →  checkpoint.py
    solver_patch.py      →  solver.py
    wing_patch.py        →  wing.py

画像生成 2 GAN(敵対的生成ネットワーク) 環境構築と実行

07.gif
age+pose_03.gif
  1. 顔の合成:StarGAN-v2 StarGAN-V2 の実行 環境は既に構築済み
    ・付属サンプル画像を使って実行する
    (py38_gan) PS > cd /anaconda_win/work/stargan-v2/
    (py38_gan) PS > python main.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 --checkpoint_dir expr/checkpoints/celeba_hq --result_dir expr/results/celeba_hq --src_dir assets/representative/celeba_hq/src_0 --ref_dir assets/representative/celeba_hq/ref_0
    (py38_gan) PS > python main2.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 --checkpoint_dir expr/checkpoints/celeba_hq --result_dir expr/results/celeba_hq --src_dir assets/representative/celeba_hq/src_0 --ref_dir assets/representative/celeba_hq/ref_0
    ・カスタム画像を変換する
    (py38_gan) PS > python main.py --mode align --inp_dir assets/representative/custom_1/male --out_dir assets/representative/celeleba_hq --src_dir assets/representative/celeba_hq/src_0 --ref_dir assets/representative/celeba_hq/ref_0
    ・カスタム画像を使って実行する
    (py38_gan) PS > python main2.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 --checkpoint_dir expr/checkpoints/celeba_hq --result_dir expr/results/celeba_hq --src_dir assets/representative/celeba_hq/src --ref_dir assets/representative/celeba_hq/ref_1
    (py38_gan) PS > python main2.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 --checkpoint_dir expr/checkpoints/celeba_hq --result_dir expr/results/celeba_hq --src_dir assets/representative/celeba_hq/src_3 --ref_dir assets/representative/celeba_hq/ref_1
    (py38_gan) PS > python main2.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 --checkpoint_dir expr/checkpoints/celeba_hq --result_dir expr/results/celeba_hq --src_dir assets/representative/celeba_hq/src --ref_dir assets/representative/celeba_hq/ref_0
    (py38_gan) PS > python main2.py --mode sample --num_domains 3 --resume_iter 100000 --w_hpf 0 --checkpoint_dir expr/checkpoints/afhq --result_dir expr/results/afhq --src_dir assets/representative/afhq/src_0 --ref_dir assets/representative/afhq/ref_0
  2. 画像スタイル変換:CycleGAN               update_20231103.zip (165MB)
    ・動作環境の準備と設定
    (py38_gan) PS > cd /anaconda_win/work/
    (py38_gan) PS > git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git
    (py38_gan) PS > pip install dominate visdom
    ▼インストール ログ

    ・CycleGan の実行
    (py38_gan) PS > cd /anaconda_win/work/pytorch-CycleGAN-and-pix2pix/
    (py38_gan) PS > python test.py --dataroot datasets/images --name style_ukiyoe_pretrained --model test --no_dropout --preprocess scale_width --load_size 1024 --gpu_ids -1
    (py38_gan) PS > python test.py --dataroot datasets/images --name style_monet_pretrained --model test --no_dropout --preprocess scale_width --load_size 1024 --gpu_ids -1
    (py38_gan) PS > python test.py --dataroot datasets/images --name style_cezanne_pretrained --model test --no_dropout --preprocess scale_width --load_size 1024 --gpu_ids -1
    (py38_gan) PS > python test.py --dataroot datasets/images --name style_vangogh_pretrained --model test --no_dropout --preprocess scale_width --load_size 1024 --gpu_ids -1
  3. 人間の年齢による顔の変化:DLFS              update_20231117.zip (18.3MB)
  4. StyleGANを使った画像編集:StyleGAN e4e
  5. StyleGAN3による画像とビデオの編集:StyleGAN3
  6. 静止画から作るフェイク動画:First Order Motion Model
  7. GANによる似顔絵生成:QMUPD
  8. 画像に別の画像のスタイルを転送:PAMA          update_20231209.zip (115MB)
  9. 音声で顔画像を動かす:One Shot Talking Face
  10. 顔画像に様々なスタイルをブレンドする:BlendGAN
  11. 個別の学習プロセス無しでFaceSwapを実現する:SberSwap

動画編集 Tips

NVIDIA cuda GPU の設定

cuda_nvidia_m.jpg

NVIDIAのGPUアーキテクチャ

アーキテクチャ
(読み方)
プロセスルール販売開始採用シリーズ
Kepler
(ケプラー)
28nm2012年GeForce GTX/GT 600シリーズ
2012年GeForce GTX/GT 700シリーズ
2013年GeForce GTX TITANシリーズ
Maxwell
(マクスウェル)
28nm2014年GeForce GTX 700シリーズ
2015年GeForce GTX 900シリーズ
Pascal
(パスカル)
16nm/14nm2016年GeForce GTX 10シリーズ
Turing
(チューリング)
12nm2018年GeForce RTX 20シリーズ
2019年GeForce GTX 16シリーズ
Ampere
(アンペア)
8nm2020年GeForce RTX 30シリーズ
Ada Lovelace
(エイダ・ラブレス)
5nm2022年GeForce RTX 40シリーズ

NVIDIA Graphic board の確認

NVIDIA ドライバーのインストール(バージョンアップ)

20231215_051814_001m.jpg

cuDNN(ディープラーニングライブラリ)のインストール

20240611_111631_001m.jpg
20240611_111746_001m.jpg

仮想環境(py311)を作成

  1. python 3.11 が適合するようなので、この版の仮想環境を作る
    (base) PS > conda create -n py311 python=3.11
    ▼「conda create -n py311 python=3.11」ログ

  2. できた仮想環境の確認
    (base) PS > python -V
    Python 3.11.5
    (base) > conda info -e
    # conda environments:
    #
    base                  *  C:\Users\USER\anaconda3
    py311                    C:\Users\USER\anaconda3\envs\py311
    py37                     C:\Users\USER\anaconda3\envs\py37

  3. 仮想環境(py311)に切り替える
    (base) > conda activate py311
    (py311) PS > conda info -e
    # conda environments:
    #
    base                     C:\Users\USER\anaconda3
    py311                 *  C:\Users\USER\anaconda3\envs\py311
    py37                     C:\Users\USER\anaconda3\envs\py37
  4. 「pip」がないのでインストールする
    (py311) PS > conda install pip
    ▼「conda install pip」ログ

Pytorch のインストール

  1. 仮想環境に PyTorch をインストールする

    ● オフィシャルサイト PyTorch FROM RESEARCH TO PRODUCTION からインストールのためのコマンドを取得する

    ● Cuda 12.3 がないので、12.1 を選択する
    (py37) PS > pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    ▼「pip install torch torchvision torchaudio...」ログ

  2. パケージのインストール確認
    (py311) PS > python -c "import torch"
    (py311) PS > python -c "import tkinter"
    ※ エラーが出なければ OK

  3. 「PyTorch」から GPU を使用できているかの確認
    (py311) PS > python -c "import torch;print(torch.zeros(1).cuda())"
    tensor([0.], device='cuda:0')
    (py311) PS > python -c "import torch;print(torch.cuda.is_available())"
    True
    (py311) PS > python -c "import torch;print(torch.cuda.get_device_name(torch.device('cuda:0')))"
    NVIDIA GeForce RTX 4070 Ti
  4. GPU テストプログラム「/anaconda_win/workspace_py311/cuda_test.py」
     cuda_test.py
    import torch
    
    print(torch.__version__)
    print(f"cuda, {torch.cuda.is_available()}")
    print(f"compute_{''.join(map(str,(torch.cuda.get_device_capability())))}")
    device_num:int = torch.cuda.device_count()
    print(f"find gpu devices, {device_num}")
    for idx in range(device_num):
        print(f"cuda:{idx}, {torch.cuda.get_device_name(idx)}")
    
    print("end")
    (py311) PS > /anaconda_win/workspace_py311
    (py311) PS > python cuda_test.py
    2.1.2+cu121
    cuda, True
    compute_89
    find gpu devices, 1
    cuda:0, NVIDIA GeForce RTX 4070 Ti
    end

更新履歴

参考資料