1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Poetryを使ってディープラーニング環境を構築する

Last updated at Posted at 2023-07-23

はじめに

Pythonでパッケージ管理や環境構築が手間になることがあります。リモートリポジトリをクローンして動かそうとしたら依存関係の問題で動かなかった...というのはよくある話です。
「パッケージを推奨バージョンに合わせたいけど、ローカル環境は汚したくない...」
そんなときに役立つツールがPoetryです。

ここでは、Poetryを使用して、ディープラーニング用の環境を構築する方法について解説します。
GPU対応のPytorchを使えるようにします。

Poetryを使えるようにする

homebrewを使ってインストールするのが一番楽です。
このリンクからhomebrewのページに飛んで、指示に従ってインストールしてください。
homebrewのインストールができたら、Poetryは以下のコマンドでインストールできます。

brew install poetry

プロジェクトの作成

新規の場合:

poetry new project_name

既存のプロジェクトをpoetryで管理するには:

poetry init

Poetryを使用してrequirements.txtからパッケージをインストールする

requirements.txtファイルに記載されたパッケージをPoetryで管理したい場合は、次のコマンド:

poetry add $( cat requirements.txt )

このコマンドは、requirements.txtファイルの中身を読み込んで、そのパッケージをプロジェクトに追加します。

GPU対応のPyTorchをPoetryを用いてインストール

この方法はPoetryの新しいバージョン(1.5.1)から可能になった方法です。古いバージョンだと動かないため、まずPoetry自身のアップデートを行っておきましょう。

poetry self update

次に、GPU対応のPyTorchをインストールします。これは特定のURLから直接PyTorchをインストールするための手順です。以下のコマンドで、PyTorchのインストール先として用いるリポジトリを追加します:

poetry source add torch_cu117 --priority=explicit https://download.pytorch.org/whl/cu117

URLの「cu117」の部分は自身の使っているcudaのバージョンに応じて変更してください。

その後、次のコマンドでPyTorch、Torchvision、Torchaudioをインストールします:

poetry add torch torchvision torchaudio --source torch_cu117

これでGPU付きのPytorchをPoetryで使えるようになりました。
仮想環境内に入るには以下のコマンドを実行します。

poetry shell

実際にGPUが使えるようになっているのか確認するために、以下のような内容が書かれたファイルを用意して実行してみましょう。

import torch

print(torch.cuda.is_available())

「True」と返ってくれば成功です。

おわりに

以前までPoetryを使ってPytorchでGPUを使うには、地味に面倒なやり方を使う必要があって、あまり好きじゃなかったんですが、1.5.1から楽に導入できるようになっていました。
では、皆さんも良いPoetryライフを。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?