snovaのブログ

主にプログラミングやデジタルコンテンツについて書きます。最近はPython, Flutter, VRに興味があります。

Dockerを使ってPytorchのsec2secサンプルプログラムを動かすまで(M1 MacbookAir)

はじめに

M1 MacbookでDockerを使いPyTorchが動くようになったので、備忘録です。 まだM1チップに対応していないアプリケーションもあり、今後も同様の方法で動作するかはわからないので、変更があれば修正していきたいと思います。

目次

DockerからPythonの起動

Dockerデスクトップをインストールします。インストール方法は過去記事を参照してください。

snova301.hatenablog.com

※2021/3/26にApple Silicon Tech Previewのアップデートが行われたようです。

次に、Pythonのイメージをインストールします。M1チップに対応するPythonのバージョンは3.9以降ですので、今回はバージョン3.9.2Pythonイメージをpullしてコンテナをrunさせます。

docker pull python:3.9.2
docker run -i -t --name torchtest python bash

コンテナが無事に起動できたらOK。

root@***:/# python
Python 3.9.2 (default, Mar 12 2021, 14:36:23) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

PyTorchの導入

先ほど作成したコンテナの中にPyTorchを導入します。今回はPythonイメージからコンテナをrunしていますので、ついでに、numpyなどもインストールします。

pip install --upgrade pip
pip install numpy matplotlib pandas scikit-learn pandas scipy

# pytorch
pip install torch torchvision

テキストの前処理をしてくれるtorchtextは、pip installだと2021/3/27現在でバージョン0.6がインストールされてしまうので、公式Githubから最新バージョンのtorchtextをcloneします。なお、PyTorchのバージョンが1.8だと、torchtextは0.9以上でなければなりません。

apt update
apt upgrade -y
apt install cmake
git clone https://github.com/pytorch/text torchtext
cd torchtext
git submodule update --init --recursive
python setup.py clean install

また、vscodeなどのDockerに接続できるエディタを使っていない場合、vimlessあたりは必要だと思うので導入します。

apt install -y less vim

一通りインストールできたら、pip listで各モジュールのバージョンを確認しておきましょう。

PyTorchを実行

インストール関係が全て終了したら、公式チュートリアルを動かしてみます。まだ、Dockerに慣れていないので、原始的な方法でファイルを作成します。

mkdir workdir
cd workdir
touch test.py
vim test.py

ソースコードは以下の公式サイトを参照。

pytorch.org

実行します。

python test.py

無事に動きました。epoch=1で実行した結果は以下の通り。公式の結果より悪いですが、epoch数を減らしたからだと思います。

| end of epoch   1 | time: 1038.88s | valid loss  5.80 | valid ppl   331.51
-----------------------------------------------------------------------------------------
=========================================================================================
| End of training | test loss  5.72 | test ppl   305.24
=========================================================================================

まとめと今後について

M1 MacbookでPyTorch on Dockerができるようになりました。今後はPyTorchを使って、自然言語処理のプログラムを作成し、共有していきたいと思います。

参考サイト

※いずれも2021/3/27参照

Google Play and the Google Play logo are trademarks of Google LLC.