Changes between Version 10 and Version 11 of misc/setup_for_ML
- Timestamp:
- 05/11/23 16:02:56 (19 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
misc/setup_for_ML
v10 v11 15 15 * !TensorFlow インストール、動作確認 16 16 * !PyTorch インストール、動作確認 17 18 19 ※ 【注】以下の手順で!TensorFlow/PyTorchの共存は可能ですが、GPyOpt のコンパイル時に不具合が出ることが分かりました。もしGPyOptを使う予定があるのならば、以下の手順のうち Python 3.11 → 3.10 に変更してください。それだけで問題無く動作します。あとで本記事全体を書き直しますが取り急ぎ連絡まで(2023/05/11; T.Obina) 17 * GPyOpt インストール、動作確認 18 20 19 21 20 == WSL2のインストール == … … 137 136 138 137 == python3インストール == 139 Ubuntu22.04にデフォルトでインストールされているpythonは/usr/bin/pythonに存在。バージョンは 3.10.6なので古くは無いが、システムで使われることも多いのでこれとは別にインストールする方針とする。 138 Ubuntu22.04にデフォルトでインストールされているpythonは/usr/bin/pythonに存在。バージョンは 3.10.6なので古くは無いが、システムで使われることも多いのでこれとは別にインストールする方針とする。venvを使うだけならばシステム標準のpythonをそのまま使っても問題無いので、ここは好みの問題です。 140 139 141 140 /usr/localに入れると他のプログラムと干渉する可能性もあるので、 /opt/python/... 以下にインストールしていく方針としている。ここはお好みで。(EPICSを入れるときに、 /opt/epics に入れているので似たような方針とした) … … 152 151 }}} 153 152 154 今回はpython公式サイトから、現時点(2023/05)の最新版であるPython3.11.3を入れる。 155 機械学習環境を構築する目的からは必ずしも最新版が良いとは限らない(ときどき最新バージョンに対応できていないことがある)が、今回はこれで問題なさそう。 156 157 158 あらかじめインストール先として /opt/python/3.11.3 を作成しておく。 153 今回はpython公式サイトから、Python3.10.11を入れる。(現時点(2023/05)の最新版はPython3.11.3ですが、これだとGPyOptがインストールできないという問題があったので少し古いバージョンを選んでいます)。 154 155 156 あらかじめインストール先として /opt/python/3.10.11 を作成しておく。 159 157 ownerを自分に設定することで、後の作業は一般ユーザー権限で行う。 160 158 {{{ … … 164 162 obina@notepc:/opt$ sudo chown obina:obina python 165 163 obina@notepc:/opt$ cd python 166 obina@notepc:/opt/python$ mkdir 3.1 1.3164 obina@notepc:/opt/python$ mkdir 3.10.11 167 165 obina@notepc:/opt/python$ ls 168 3.1 1.3166 3.10.11 169 167 }}} 170 168 … … 173 171 obina@notepc:~$ mkdir work 174 172 obina@notepc:~$ cd work 175 obina@notepc:~/work$ wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz 176 --2023-05-09 20:11:15-- https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz 177 Resolving www.python.org (www.python.org)... 151.101.108.223, 2a04:4e42:1a::223 178 Connecting to www.python.org (www.python.org)|151.101.108.223|:443... connected. 179 HTTP request sent, awaiting response... 200 OK 180 Length: 26455738 (25M) [application/octet-stream] 181 Saving to: ‘Python-3.11.3.tgz’ 182 183 Python-3.11.3.tgz 100%[=================================================>] 25.23M 19.5MB/s in 1.3s 184 185 2023-05-09 20:11:17 (19.5 MB/s) - ‘Python-3.11.3.tgz’ saved [26455738/26455738] 186 }}} 187 188 configureでインストール先として /opt/python/3.11.3 を指定する。 173 obina@notepc:~/work$ wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz 174 .... 175 }}} 176 177 configureでインストール先として /opt/python/3.10.11 を指定する。 189 178 190 179 lto (Link time optimization) はリンク時間が長くなる替わりに実行速度が上がる...らしい。(自分では未検証) 191 180 192 181 {{{ 193 obina@notepc:~/work$ tar x vfz Python-3.11.3.tgz194 obina@notepc:~/work$ cd Python-3.1 1.3/195 obina@notepc:~/work/Python-3.1 1.3$ ls182 obina@notepc:~/work$ tar xzvf Python-3.10.11.tgz 183 obina@notepc:~/work$ cd Python-3.10.11/ 184 obina@notepc:~/work/Python-3.10.11$ ls 196 185 Doc LICENSE Makefile.pre.in Objects Parser README.rst config.guess configure.ac setup.py 197 186 Grammar Lib Misc PC Programs Tools config.sub install-sh 198 187 Include Mac Modules PCbuild Python aclocal.m4 configure pyconfig.h.in 199 188 200 obina@notepc:~/work/Python-3.1 1.3$ ./configure --prefix=/opt/python/3.11.3--enable-optimizations --with-lto201 202 obina@notepc:~/work/Python-3.1 1.3$ make -j8 # 並列化の数はCPU数に応じて適当に189 obina@notepc:~/work/Python-3.10.11$ ./configure --prefix=/opt/python/3.10.11 --enable-optimizations --with-lto 190 191 obina@notepc:~/work/Python-3.10.11$ make -j8 # 並列化の数はCPU数に応じて適当に 203 192 .... 204 obina@notepc:~/work/Python-3.1 1.3$ make install193 obina@notepc:~/work/Python-3.10.11$ make install 205 194 .... 206 195 }}} … … 208 197 環境設定用のスクリプトを作成。WSLの場合はユーザーが自分だけなので~/.bashrcに直接書いても良いのだが、今後pythonのバージョンによって切り分けたいこともあると思うので/opt/python以下につくっておく 209 198 {{{ 210 $ vi /opt/python/setup_py3.1 1.3.sh211 export PATH=/opt/python/3.1 1.3/bin:$PATH199 $ vi /opt/python/setup_py3.10.11.sh 200 export PATH=/opt/python/3.10.11/bin:$PATH 212 201 }}} 213 202 … … 216 205 obina@notepc:~$ which python3 217 206 /usr/bin/python3 218 obina@notepc:~$ source /opt/python/3.1 1.3/setup_py3.11.3.sh207 obina@notepc:~$ source /opt/python/3.10.11/setup_py3.10.11.sh 219 208 obina@notepc:~$ which python3 220 /opt/python/3.1 1.3/bin/python3209 /opt/python/3.10.11/bin/python3 221 210 }}} 222 211 … … 224 213 {{{ 225 214 obina@notepc:~$ which pip3 226 /opt/python/3.1 1.3/bin/pip3215 /opt/python/3.10.11/bin/pip3 227 216 obina@notepc:~$ 228 217 obina@notepc:~$ pip3 list … … 239 228 {{{ 240 229 obina@notepc:~$ pip3 install --upgrade pip 241 Requirement already satisfied: pip in /opt/python/3.1 1.3/lib/python3.11/site-packages (22.3.1)230 Requirement already satisfied: pip in /opt/python/3.10.11/lib/python3.10.11/site-packages (22.3.1) 242 231 Collecting pip 243 232 Downloading pip-23.1.2-py3-none-any.whl (2.1 MB) … … 286 275 {{{ 287 276 obina@notepc:~$ which python3 288 /opt/python/3.1 1.3/bin/python3277 /opt/python/3.10.11/bin/python3 289 278 obina@notepc:~$ python3 -m venv ~/.venv/tf2.12 290 279 }}} … … 295 284 bin include lib lib64 pyvenv.cfg 296 285 obina@notepc:~$ ls ~/.venv/tf2.12/bin/ 297 Activate.ps1 activate activate.csh activate.fish pip pip3 pip3.1 1 python python3 python3.11286 Activate.ps1 activate activate.csh activate.fish pip pip3 pip3.10 python python3 python3.10 298 287 }}} 299 288 … … 313 302 obina@notepc:~$ 314 303 obina@notepc:~$ which python3 315 /opt/python/3.1 1.3/bin/python3304 /opt/python/3.10.11/bin/python3 316 305 }}} 317 306 … … 341 330 {{{ 342 331 (tf2.12) obina@notepc:~$ python3 343 Python 3.11.3 (main, May 9 2023, 20:29:30) [GCC 11.3.0] on linux344 Type "help", "copyright", "credits" or "license" for more information.345 332 >>> 346 333 >>> import tensorflow as tf … … 398 385 (tf2.12) obina@notepc:~$ 399 386 (tf2.12) obina@notepc:~$ ipython3 --nosep 400 Python 3.11.3 (main, May 9 2023, 20:29:30) [GCC 11.3.0]401 Type 'copyright', 'credits' or 'license' for more information402 387 IPython 8.13.2 -- An enhanced Interactive Python. Type '?' for help. 403 388 In [1]: … … 608 593 {{{ 609 594 obina@notepc:~$ which python3 610 /opt/python/3.1 1.3/bin/python3595 /opt/python/3.10.11/bin/python3 611 596 obina@notepc:~$ python3 -m venv ~/.venv/torch2.0 612 597 obina@notepc:~$ source ~/.venv/torch2.0/bin/activate … … 638 623 {{{ 639 624 (torch2.0) obina@notepc:~$ python 640 Python 3.11.3 (main, May 9 2023, 20:29:30) [GCC 11.3.0] on linux641 Type "help", "copyright", "credits" or "license" for more information.642 >>>643 625 >>> 644 626 >>> import torch … … 656 638 657 639 https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html 658 この段階でのパッケージ一覧 659 {{{ 660 (torch2.0) obina@notepc:~$ pip3 list 661 Package Version 662 ------------------ ---------- 663 certifi 2022.12.7 664 charset-normalizer 2.1.1 665 filelock 3.9.0 666 idna 3.4 667 Jinja2 3.1.2 668 MarkupSafe 2.1.2 669 mpmath 1.2.1 670 networkx 3.0 671 numpy 1.24.1 672 Pillow 9.3.0 673 pip 23.1.2 674 requests 2.28.1 675 setuptools 65.5.0 676 sympy 1.11.1 677 torch 2.0.1+cpu 678 torchaudio 2.0.2+cpu 679 torchvision 0.15.2+cpu 680 typing_extensions 4.4.0 681 urllib3 1.26.13 682 }}} 640 683 641 あとはjupyter notebook, matplotlib, plotly, seabornなど、お好みで。 684 642 お手軽に使うには ax-platformを入れるのも楽。 685 643 686 ※ PyTorchでは numpy 644 ※ PyTorchでは numpy 1.24.1, TensorFlowでは 1.23.5 を使用している 687 645 688 646 ここでは、!BoTorch, Ax を入れる。notebook, matplotlibも。 … … 737 695 738 696 == GPyOpt == 739 いくつかの注意点のみ 740 - python3.11ではコンパイルできないので python3.10を使用する 697 いくつかの注意点のみ記載 698 - python3.11ではコンパイルできないので python3.10を使用する(3.10->3.11でlongintrepr.hが無くなったことに起因) 741 699 - numpy, matplotlibのバージョン指定が必要 742 700 - venv でGPyOpt用の環境を作成して !TensorFlow/PyTorchと分離するのが簡単