1. 目的
機械学習系はRよりPythonが充実しているがVSCode等を試すもどうしてもRStudioが使いたい者向けのメモ
2. 前提
- R/RStudioはインストール済み
- Python/Anacondaなどは未インストール
- OSはWindows 10 Pro(古い)
3.手順
3.1.Minicondaのインストール
- Anacondaはデカくて大変なので,コンパクトにMiniconda経由でPythonをインストール
- こちらから最新版のMinicondaをインストール
- 執筆時点ではPython3.12
- インストーラ(Miniconda3-latest-Windows-x86_64.exe)を起動後は基本「Next」「I Agree」で進み,チェックボックは全部☑し,「Install」
3.2.RStudioでPythonの環境構築
- まず,RでPythonを使うためreticulateパッケージをインストール
install.packages("reticulate")
library(reticulate)
- 次に,torchでGPUを使える仮想環境を1つ作成
- 仮想環境の名前はr-envとするが何でもよい
- numpy, pandasはどうせ後々使うだろうから先に入れておくが,仮想環境の作成と同時に入れれるためそうする
#仮想環境の名前を保存
env_name <- "r-env"
#py_installでnumpy, pandasをインストール
#env_nameの指定で同時に仮想環境を構築
reticulate::py_install(c("numpy", "pandas"),
envname = env_name,
method = "conda",
python_version = "3.10")
- これ以降,use_condaenvで作成した仮想環境下とする
reticulate::use_condaenv(env_name, required = TRUE)
- 仮想環境のpythonバージョンが新しいとエラーが生じる可能性あり(例えば執筆時点における3.12)
- 少し前のバージョンを推奨(ここでは3.10)
- py_installでpython_versionの指定を忘れデフォルトの最新バージョンとなった場合,再びpy_installでpython_versionを指定し実行してもバージョンは上書きされない
- reticulateでは仮想環境を削除できないため,別の名前の仮想環境を新しく作成するか,コマンドプロンプト(cmd)などのシェルで削除する必要がある
- cmdで仮想環境を削除する場合は以下でr-envを削除可
conda remove --name r-env --all
3.3.RStudioでPyTorchの導入
- GPU版pytorchを使用するため,CUDA(NVIDIAのGPU向け並列計算フレームワーク)のバージョンを確認
- Rよりもcmdからがシンプルなので,cmdで以下を実行
nvidia-smi
reticulate::py_install(
packages = c("pytorch", "torchvision", "torchaudio", "pytorch-cuda=12.4"),
method = "conda",
channel = c("pytorch", "nvidia")
)
- use_condaenvで仮想環境下にあるのでenvnameは指定無し
- pytorchとpytorch-cudaの2つが必要だが,画像・音声処理系のパッケージも入れたい場合はtorchvision, torchaudioもご一緒に
- pytorch-cudaがnvidiaチャネルにしかないので,チャネル指定しないと入らない
- 最新版のpytorchはpipでのみインストール可で,condaで入れる場合は少し前のv2.5.1が自動で入る
- pytorchとcudaのバージョンの組み合わせには制限があり,pytorch2.5.1ではCUDA11.8,12.1,12.4が使えるっぽい(参考)
- 今回確認したCUDAのバージョンは12.6だったので12.4に下げている(下げないとエラー)
3.4.RStudioでPythonモードに切り替え
repl_python()
- 以降python,quit/exitの実行でRに戻る
- 最後に,torchをインポートし目的達成
import torch
- .Rから.pyのpythonスクリプトへ使用変更をお忘れなく
4.コメント
- 結局,パスとバージョンからは逃げられない