Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.
【サイト内の関連ページ】
Windows での Git のインストール: 別ページ »で説明している.
【関連する外部ページ】
Git の公式ページ: https://git-scm.com/
【サイト内の関連ページ】
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
【サイト内の関連ページ】
NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う.
【関連する外部ページ】
コマンドプロンプトを管理者として実行: 別ページ »で説明
PyTorch のページ: https://pytorch.org/index.html
次のコマンドは, PyTorch 2.0 (NVIDIA CUDA 11.8 用) をインストールする. 但し,Anaconda3を使いたい場合には別手順になる.
事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).
PyTorch で,GPU が動作している場合には,「torch.cuda.is_available()」により,True が表示される.
python -m pip install -U --ignore-installed pip python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu118 python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
Anaconda3を使いたい場合には, Anaconda プロンプト (Anaconda Prompt) を管理者として実行し, 次のコマンドを実行する. (PyTorch と NVIDIA CUDA との連携がうまくいかない可能性があるため,Anaconda3を使わないことも検討して欲しい).
conda install -y pytorch torchvision torchaudio pytorch-cuda=11.8 cudnn -c pytorch -c nvidia py -c "import torch; print(torch.__version__, torch.cuda.is_available())"
【サイト内の関連ページ】
【関連する外部ページ】
コマンドプロンプトを管理者として実行: 別ページ »で説明
python -m pip install -U timm
mkdir %HOMEPATH%\timm cd %HOMEPATH%\timm notepad classify.py
【プログラムの説明】
import timm import torch import requests from PIL import Image from io import BytesIO # ImageNet 1kのラベル情報をダウンロード IMAGENET_1k_URL = 'https://storage.googleapis.com/bit_models/ilsvrc2012_wordnet_lemmas.txt' IMAGENET_1k_LABELS = requests.get(IMAGENET_1k_URL).text.strip().split('\n') def load_image(url, transform): """ 指定されたURLから画像をダウンロードし、モデルの入力形式に変換する関数。 """ image = Image.open(requests.get(url, stream=True).raw) image_tensor = transform(image) return image_tensor def classify_image(model, image_tensor, topk=5): """ 画像をモデルで分類し、トップkのクラスを返す関数。 """ output = model(image_tensor.unsqueeze(0)) probabilities = torch.nn.functional.softmax(output[0], dim=0) values, indices = torch.topk(probabilities, topk) return [{'label': IMAGENET_1k_LABELS[idx], 'index': idx, 'value': val.item()} for val, idx in zip(values, indices)] if __name__ == "__main__": # モデルを読み込む model_name = 'eva02_large_patch14_448.mim_in22k_ft_in1k' model = timm.create_model(model_name, pretrained=True).eval() transform = timm.data.create_transform(**timm.data.resolve_data_config(model.pretrained_cfg)) # 画像ファイルの指定 url = 'https://datasets-server.huggingface.co/assets/imagenet-1k/--/default/test/12/image/image.jpg' image_tensor = load_image(url, transform) # 画像を分類し、結果を表示 top_classes = classify_image(model, image_tensor) print(top_classes) # 期待される結果 expected_indices = torch.tensor([162, 166, 161, 164, 167]) print("Expected Indices:", expected_indices)
Python プログラムの実行
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
プログラムを classify.pyのようなファイル名で保存したので, 「python classify.py」のようなコマンドで行う.
python classify.py