Posted at

PyTorchの環境作ってIntelliJ IDEAで動かすところまで

More than 1 year has passed since last update.

pyenv + Anaconda + PyTorch + IntelliJ IDEA 環境を構築するときの手順メモです。

Anacondaで環境揃えてた所にIntelliJ IDEAからも触れるようにしたいなぁと思った人用です。果たしてどれだけ需要があるのやら。。。


前提


  • MacBook Pro 2016(High Sierra)で構築しています。

  • Windows10な環境でも一応同じような手順でできることは確認してます。


Anaconda入れる


windowsの場合

以下からwindows用のAnaconda(python3系)をダウンロードして、インストールします。

https://www.anaconda.com/download/#windows

もろもろの環境がセットされているので楽です。


Macの場合

PythonやAnacondaぐらいしか触らないという場合は、同じように以下からダウンロードしてインストールでもよいです。

https://www.anaconda.com/download/#macos

が、他にも色々開発していたり、複数のpythonバージョンの共存を気にする場合はpyenvなどの環境分離ツールを使っておくと安全です。

特にAnacondaはシステムのデフォルトpythonのPATHなんかを上書きしたりするので注意が必要です。

今回は、Mac自体のpython(2系がデフォルトで入っている)を生かしつつ、開発用のプロジェクトディレクトリのみAnacondaで導入される3系を使うようにしています。


pyenv入れる

まずMacで定番のパッケージ管理ツールhomebrewを入れておきます。

これ。

Homebrew


homebrew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


続いてhomebrewでpyenvをインストール

これ。

pyenv


pyenv

$ brew update

$ brew install pyenv

インストール可能なリストを表示


anaconda

$ pyenv install --list

3.6.4
3.7.0b2
3.7-dev
anaconda-1.4.0
・・・
anaconda3-5.1.0

$ pyenv install anaconda3-5.1.0


3.x.xみたいなのはpythonのバージョンです。pythonだけインストールしたい場合はこちら。

今回はanaconda3-5.x.xを選択します。

インストール後、現在インストールされている内容をversionsで確認してみます。


確認

$ pyenv versions

* system
anaconda3-5.1.0

$ mkdir qiita
$ cd qiita
$ pyenv local anaconda3-5.1.0


特定のディレクトリ下だけにanaconda環境を反映したい場合は、そのディレクトリでpyenv local anaconda3-5.1.0のように設定をするとOKです。

デフォルト設定自体を変えたい場合はlocalのところをglobalで。


PyTorch入れる

続いて機械学習ライブラリであるPyTorchを入れてみます。

といっても公式サイトにあるように1、2行で終わりです。

https://pytorch.org/

今回はAnacondaを使っているので、package managerはcondaを選びましょう。


pytorch_mac

conda install pytorch torchvision -c pytorch


CUDAあるなしで少し変わりますね。

windowsの場合はAnaconda promptから実行しましょう。


IntelliJ IDEAで開く

PyCharmの場合はpython用なので何も問題なしです。

IntelliJ IDEAをお使いの場合は、pythonプライグインをインストールしておきます。

次に先ほど諸々設定したディレクトリを開き、プロジェクトの設定(File -> Project structure)を開きます。

Project SDKというところに何も設定されていない状態かと思いますので、Python環境の設定を行います。

Newをクリック

Existing environmentの所に自動的に設定したanacondaの設定が出て来ます。

(出てこない場合もありましたが、再起動したり、後述のScientific Modeなどに切り替えてたりすると認識されました。もしくはそれでもダメなら手動設定)

そちらを選択してOKを押すと、環境の読み込みがバックグラウンドで実行されます。


コード書いて確認

pythonファイルを追加し、動作確認を行います。

PyTorchのような機械学習ライブラリを使う場合、コードを書いては消してというような試行錯誤を行うことが多いので、適したモードに切り替えます。

Scientific Modeというもので、JupterNotebookとかspyderとかに近い使い勝手になります。すごい。

View -> Scientific Mode で切り替わります。ついでにTool -> Python Consoleも表示しておくといい感じです。

ではpythonファイルを作成して、以下を記述。


sample

from __future__ import print_function

import torch
import matplotlib.pyplot as plt

#%%
x = torch.empty(5, 3)
print(x)

#%%
plt.plot([1,2,4,2])
plt.show()


#%%という記述でブロックの区切り目が作れます。そしてCtrl+Enterで、現在カーソルがあるブロックのみを実行できるので便利です。

また、カーソルがある一行だけを実行というのもできます。ショートカットは"Execute selection"あたりで検索すると出てきます。

これで、ソースコード+コンソールで対話的に実行+グラフやドキュメント表示+変数の中身確認ができる環境ができました。何これ強化版spyder

環境設定周りはもっとうまくできそうな気もしますが、ひとまず既存のプロジェクトをIntelliJに認識さすということをしたかったので、ザクっとやった手順メモでした。


補足とか言い訳


  • PyTorch動かすだけならAnacondaいらない可能性...

  • IntelliJ IDEA上でプロジェクト作成&PyTorchインストールしたら、何も難しい設定いらない可能性...

既存のプロジェクトがある所に後からIntelliJ導入したので。。。