Pytorchの環境をUbuntuで構築する方法

この記事は**pytorch**を**ubuntu**で環境構築するために忘れないように記事に起こしました。
pytorchを知りたい方は[こちら](https://udemy.benesse.co.jp/development/web/pytorch.html/)の記事を見てみてください。
##環境
>* ubuntu18.04
>* GeForce GTX TITAN X
>* CUDA 10.0
>* anaconda 4.8.3
>* python 3.7
>* pycharm

GPU関連の情報（CUDA等）知りたい場合は[こちら](https://qiita.com/sao_rio/items/4ef5604d685f04669f74)の記事を参考にしてみてください。
##環境構築
それでは環境構築を行ってきます。
###1．pycharmインストール
今回IDEはpycharmを使用します。
####方法1　サイトからダウンロードファイルを取得
インストール先は以下のURLです。
[https://www.jetbrains.com/pycharm/download/#section=linux](https://www.jetbrains.com/pycharm/download/#section=linux)

以下のCommunityの方をダウンロードで大丈夫です。（学生の方は学校指定のメールアドレスがあればProfessionalも使えます。）
![Screenshot from 2020-11-10 20-57-56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654472/75ab8846-0133-daa6-7e64-fffdd69859d8.png)
セットアップは[こちら](https://codelabo.com/posts/20200229082605)のサイトを参考にしました。

####方法2　ubuntuソフトウェアからダウンロード
ubuntuのランチャーのところかアプリケーション検索にあるubuntuソフトウェアからダウンロードできます。
![Screenshot from 2020-11-10 21-04-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654472/b47dd60a-f290-1889-510b-f275b6aeded3.png)
セットアップは上記の[サイト](https://codelabo.com/posts/20200229082605)を参考にしてみてください。
###2．anacondaインストール
インストール先は以下のURLです。
[https://www.anaconda.com/products/individual](https://www.anaconda.com/products/individual)
![Screenshot from 2020-11-10 21-18-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654472/c6aa301d-09bc-d5b3-091a-bff129646636.png)
上記のURLからダウンロードすると最新のバージョンがインストールされます。
古いバージョンがほしい方は[こちら](https://repo.anaconda.com/archive/)から選べます。

####セットアップ
まず、anacondaをダウンロードしたフォルダに端末上で移動します。
そこで、

```
$ bash Anaconda3-2020.02-Linux-x86_64.sh
```

ファイル名は自分で落としてきたファイル名です。

```
Please, press ENTER to continue
```

というコマンドが出てきたらエンターを押します。
そのあとは説明を下までスクロールして

```
Do you accept the license terms?[yes|no]
```

というコマンドが出てきたらyesを打ち込みエンターを押します。
次にパスのことについて聞かれますが特に変更しない人はそのままでエンターでOKです。
VSCode入れますかと聞かれますが今回はnoにします。

最後の以下のコマンドを打ってエラーを吐かなければOKです。

```
$ conda -V
```

#####もしエラーを吐いてしまったら
vimエディターでanacondaの設定ファイルを開きます

```
$ vi ~/.bashrc
```

どこでもいいので以下のパスを追加します。
`挿入コマンド：i`
`保存コマンド：ZZ`

```
$ export PATH=~/anaconda3/bin:$PATH
```

追加し終わったら以下のコマンドを実行

```
$ source ~/.bashrc
```

もう一度以下のコマンドを実行するとanacondaのバージョンが出てくると思います。

```
$ conda -V
```

もしパス関係で何か気になることがある場合は[こちら](https://www.kkaneko.jp/tools/ubuntu/anaconda.html)を参考にしてみてください。

###anacondaで仮想環境を作成
今回pytorchはanacondaの仮想環境上にインストールしたいのでまずはanacondaの仮想環境を作成します。
ここでpythonは自分が使いたいものを指定してください。

```
$ conda create -n test_torch python=3.7 anaconda
```

仮想環境が作られているか確認します。

```
$ conda info -e
# conda environments:
#
test_torch                       /home/user/anaconda3/envs/test_torch
```

仮想環境をActiveにします。

```
$ conda activate test_torch
```

仮想環境の状態を確認すると

```
$ conda info -e
# conda environments:
#
test_torch                    *  /home/user/anaconda3/envs/test_torch
```

無事に仮想環境が起動できていることがわかります。
ちなみに仮想環境を非Activeにしたい場合は以下のコマンドです。

```
$ conda deactivate
```

###pytorchをセットアップ
先ほどの仮想環境上でpytorchをインストールします。
今回pytorchはGPUで使う予定なのでcuda以下のコマンドでGPU版をインストールします。cudatoolkitには自分のパソコンに入っているcudaに対応しているものを入れると安心です。
対応しているcudaやコマンドは[こちら](https://pytorch.org/)から確認してください。

```
$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
```

次にpycharmでpytorch用の環境を作って行きます。詳しい手順は[こちら](https://qiita.com/fanjunwei/items/51a2e0f2fbafacf49819)のサイトを参考にしてみてください。
ここでは簡単に紹介していきます。
pycharmのnew projectでExisiting interpreterの「...」をクリックします。
　　　　　　<img width="700" alt="pycharm" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654472/e7b1e2a4-4cbb-14a5-a6f2-00d5f35f2ed7.png">
その後、Conda Environmentのinterpreterの「...」から先程作成した仮想環境のpythonを指定します。
　　　　　　<img width="700" alt="pycharm" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654472/33bb4026-05cf-337d-6627-dadc11005683.png">
最後にCreateを押したら環境が作成されます。

テストとして、newからpython fileを作ったあとに以下のコードを実行します・

```
import torch

num = torch.randn(3,3)
num.cuda()

print(num)
```

このような結果がでたら成功です。お疲れ様でした。

```
tensor([[-1.3524, -0.1332, -1.7219],
        [ 1.1739,  0.3055,  1.4518],
        [-2.2588, -1.2884, -1.4783]])
```

#最後に
KerasからPytorchに乗り換えている途中ですが、これからはPytorchが主流になってくるのではと感じているので早く身につけたいです。
####追伸
どなたかqiitaで画像を中心に配置するコードをご教授ください...