Changes between Version 10 and Version 11 of misc/setup_for_ML


Ignore:
Timestamp:
05/11/23 16:02:56 (14 months ago)
Author:
obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • misc/setup_for_ML

    v10 v11  
    1515 * !TensorFlow インストール、動作確認 
    1616 * !PyTorch インストール、動作確認 
    17  
    18  
    19 ※ 【注】以下の手順で!TensorFlow/PyTorchの共存は可能ですが、GPyOpt のコンパイル時に不具合が出ることが分かりました。もしGPyOptを使う予定があるのならば、以下の手順のうち Python 3.11 → 3.10 に変更してください。それだけで問題無く動作します。あとで本記事全体を書き直しますが取り急ぎ連絡まで(2023/05/11; T.Obina) 
     17 * GPyOpt インストール、動作確認 
     18 
    2019 
    2120== WSL2のインストール == 
     
    137136 
    138137== python3インストール == 
    139 Ubuntu22.04にデフォルトでインストールされているpythonは/usr/bin/pythonに存在。バージョンは 3.10.6なので古くは無いが、システムで使われることも多いのでこれとは別にインストールする方針とする。 
     138Ubuntu22.04にデフォルトでインストールされているpythonは/usr/bin/pythonに存在。バージョンは 3.10.6なので古くは無いが、システムで使われることも多いのでこれとは別にインストールする方針とする。venvを使うだけならばシステム標準のpythonをそのまま使っても問題無いので、ここは好みの問題です。 
    140139 
    141140/usr/localに入れると他のプログラムと干渉する可能性もあるので、 /opt/python/... 以下にインストールしていく方針としている。ここはお好みで。(EPICSを入れるときに、 /opt/epics に入れているので似たような方針とした) 
     
    152151}}} 
    153152 
    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 を作成しておく。 
    159157ownerを自分に設定することで、後の作業は一般ユーザー権限で行う。 
    160158{{{ 
     
    164162obina@notepc:/opt$ sudo chown obina:obina python 
    165163obina@notepc:/opt$ cd python 
    166 obina@notepc:/opt/python$ mkdir 3.11.3 
     164obina@notepc:/opt/python$ mkdir 3.10.11 
    167165obina@notepc:/opt/python$ ls 
    168 3.11.3 
     1663.10.11 
    169167}}} 
    170168 
     
    173171obina@notepc:~$ mkdir work 
    174172obina@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 を指定する。 
     173obina@notepc:~/work$ wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz 
     174.... 
     175}}} 
     176 
     177configureでインストール先として /opt/python/3.10.11 を指定する。 
    189178 
    190179lto (Link time optimization) はリンク時間が長くなる替わりに実行速度が上がる...らしい。(自分では未検証) 
    191180 
    192181{{{ 
    193 obina@notepc:~/work$ tar xvfz Python-3.11.3.tgz 
    194 obina@notepc:~/work$ cd Python-3.11.3/ 
    195 obina@notepc:~/work/Python-3.11.3$ ls 
     182obina@notepc:~/work$ tar xzvf Python-3.10.11.tgz 
     183obina@notepc:~/work$ cd Python-3.10.11/ 
     184obina@notepc:~/work/Python-3.10.11$ ls 
    196185Doc      LICENSE  Makefile.pre.in  Objects  Parser    README.rst  config.guess  configure.ac   setup.py 
    197186Grammar  Lib      Misc             PC       Programs  Tools       config.sub    install-sh 
    198187Include  Mac      Modules          PCbuild  Python    aclocal.m4  configure     pyconfig.h.in 
    199188 
    200 obina@notepc:~/work/Python-3.11.3$ ./configure --prefix=/opt/python/3.11.3 --enable-optimizations --with-lto 
    201  
    202 obina@notepc:~/work/Python-3.11.3$ make -j8 # 並列化の数はCPU数に応じて適当に 
     189obina@notepc:~/work/Python-3.10.11$ ./configure --prefix=/opt/python/3.10.11 --enable-optimizations --with-lto 
     190 
     191obina@notepc:~/work/Python-3.10.11$ make -j8 # 並列化の数はCPU数に応じて適当に 
    203192.... 
    204 obina@notepc:~/work/Python-3.11.3$ make install 
     193obina@notepc:~/work/Python-3.10.11$ make install 
    205194.... 
    206195}}} 
     
    208197環境設定用のスクリプトを作成。WSLの場合はユーザーが自分だけなので~/.bashrcに直接書いても良いのだが、今後pythonのバージョンによって切り分けたいこともあると思うので/opt/python以下につくっておく 
    209198{{{ 
    210 $ vi /opt/python/setup_py3.11.3.sh 
    211 export PATH=/opt/python/3.11.3/bin:$PATH 
     199$ vi /opt/python/setup_py3.10.11.sh 
     200export PATH=/opt/python/3.10.11/bin:$PATH 
    212201}}} 
    213202 
     
    216205obina@notepc:~$ which python3 
    217206/usr/bin/python3 
    218 obina@notepc:~$ source /opt/python/3.11.3/setup_py3.11.3.sh 
     207obina@notepc:~$ source /opt/python/3.10.11/setup_py3.10.11.sh 
    219208obina@notepc:~$ which python3 
    220 /opt/python/3.11.3/bin/python3 
     209/opt/python/3.10.11/bin/python3 
    221210}}} 
    222211 
     
    224213{{{ 
    225214obina@notepc:~$ which pip3 
    226 /opt/python/3.11.3/bin/pip3 
     215/opt/python/3.10.11/bin/pip3 
    227216obina@notepc:~$ 
    228217obina@notepc:~$ pip3 list 
     
    239228{{{ 
    240229obina@notepc:~$ pip3 install --upgrade pip 
    241 Requirement already satisfied: pip in /opt/python/3.11.3/lib/python3.11/site-packages (22.3.1) 
     230Requirement already satisfied: pip in /opt/python/3.10.11/lib/python3.10.11/site-packages (22.3.1) 
    242231Collecting pip 
    243232  Downloading pip-23.1.2-py3-none-any.whl (2.1 MB) 
     
    286275{{{ 
    287276obina@notepc:~$ which python3 
    288 /opt/python/3.11.3/bin/python3 
     277/opt/python/3.10.11/bin/python3 
    289278obina@notepc:~$ python3 -m venv ~/.venv/tf2.12 
    290279}}} 
     
    295284bin  include  lib  lib64  pyvenv.cfg 
    296285obina@notepc:~$ ls ~/.venv/tf2.12/bin/ 
    297 Activate.ps1  activate  activate.csh  activate.fish  pip  pip3  pip3.11  python  python3  python3.11 
     286Activate.ps1  activate  activate.csh  activate.fish  pip  pip3  pip3.10  python  python3  python3.10 
    298287}}} 
    299288 
     
    313302obina@notepc:~$ 
    314303obina@notepc:~$ which python3 
    315 /opt/python/3.11.3/bin/python3 
     304/opt/python/3.10.11/bin/python3 
    316305}}} 
    317306 
     
    341330{{{ 
    342331(tf2.12) obina@notepc:~$ python3 
    343 Python 3.11.3 (main, May  9 2023, 20:29:30) [GCC 11.3.0] on linux 
    344 Type "help", "copyright", "credits" or "license" for more information. 
    345332>>> 
    346333>>> import tensorflow as tf 
     
    398385(tf2.12) obina@notepc:~$  
    399386(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 information 
    402387IPython 8.13.2 -- An enhanced Interactive Python. Type '?' for help. 
    403388In [1]: 
     
    608593{{{ 
    609594obina@notepc:~$ which python3 
    610 /opt/python/3.11.3/bin/python3 
     595/opt/python/3.10.11/bin/python3 
    611596obina@notepc:~$ python3 -m venv ~/.venv/torch2.0 
    612597obina@notepc:~$ source ~/.venv/torch2.0/bin/activate 
     
    638623{{{ 
    639624(torch2.0) obina@notepc:~$ python 
    640 Python 3.11.3 (main, May  9 2023, 20:29:30) [GCC 11.3.0] on linux 
    641 Type "help", "copyright", "credits" or "license" for more information. 
    642 >>> 
    643625>>> 
    644626>>> import torch 
     
    656638 
    657639https://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 
    683641あとはjupyter notebook, matplotlib, plotly, seabornなど、お好みで。 
    684642お手軽に使うには ax-platformを入れるのも楽。 
    685643 
    686 ※ PyTorchでは numpy  1.24.1, TensorFlowでは  1.23.5 を使用している 
     644※ PyTorchでは numpy 1.24.1, TensorFlowでは  1.23.5 を使用している 
    687645 
    688646ここでは、!BoTorch, Ax を入れる。notebook, matplotlibも。 
     
    737695 
    738696== GPyOpt == 
    739 いくつかの注意点のみ 
    740  - python3.11ではコンパイルできないので python3.10を使用する 
     697いくつかの注意点のみ記載 
     698 - python3.11ではコンパイルできないので python3.10を使用する(3.10->3.11でlongintrepr.hが無くなったことに起因) 
    741699 - numpy, matplotlibのバージョン指定が必要 
    742700 - venv でGPyOpt用の環境を作成して !TensorFlow/PyTorchと分離するのが簡単