Changes between Version 14 and Version 15 of misc/setup_for_ML


Ignore:
Timestamp:
05/11/23 17:28:35 (14 months ago)
Author:
obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • misc/setup_for_ML

    v14 v15  
    465465== !PyTorch インストール == 
    466466 
    467 次にPyTorchを入れていく。やはり公式サイトからスタート 
     467最初に venv 環境を設定する。上の作業と続けるには deactivate してからおこなうこと。 
     468 
     469どのpythonを使っているのかを確認してから。ベースとなるpythonは /opt/python 以下のものであること確認してから venv を作成する。 
     470{{{ 
     471obina@notepc:~$ which python3 
     472/opt/python/3.10.11/bin/python3 
     473obina@notepc:~$ python3 -m venv ~/.venv/torch2.0 
     474obina@notepc:~$ source ~/.venv/torch2.0/bin/activate 
     475(torch2.0) obina@notepc:~$ 
     476}}} 
     477 
     478次に、venv環境内にPyTorchをインストールする。やはり公式サイトからスタート 
    468479https://pytorch.org/get-started/locally/ 
    469480PyTorchのOSやバージョン、GPUの有無などを選択。 
     
    485496}}} 
    486497となったので、これをいれる。 
    487  
    488  
    489 まずは venv として設定するときのバージョンは2.0.1とする。 
    490 最初にどのpythonを使っているのかを確認してから。 
    491 {{{ 
    492 obina@notepc:~$ which python3 
    493 /opt/python/3.10.11/bin/python3 
    494 obina@notepc:~$ python3 -m venv ~/.venv/torch2.0 
    495 obina@notepc:~$ source ~/.venv/torch2.0/bin/activate 
    496 (torch2.0) obina@notepc:~$ 
    497 }}} 
    498498 
    499499ここからは先ほどと同様にpipの更新を行った後で、torch入れる。 
     
    542542※ PyTorchでは numpy 1.24.1, TensorFlowでは  1.23.5 を使用している 
    543543 
    544 ここでは、!BoTorch, Ax を入れる。notebook, matplotlibも。 
    545 {{{ 
    546 (torch2.0) obina@notepc:~$ pip install botorch ax-platform 
    547 (torch2.0) obina@notepc:~$ pip install notebook matplotlib 
     544ここではサンプルとして、!BoTorch, Ax を入れる。notebook, matplotlibもまとめて入れてしまう。 
     545{{{ 
     546(torch2.0) obina@notepc:~$ pip install botorch ax-platform notebook matplotlib 
    548547}}} 
    549548 
     
    592591[Ax ・ Adaptive Experimentation Platform](https://ax.dev/) 
    593592 
    594 == GPyOpt == 
    595 いくつかの注意点のみ記載 
     593== GPyOptインストール == 
     594先にいくつかの注意点のみ記載しておく。 
    596595 - python3.11ではコンパイルできないので python3.10を使用する(3.10->3.11でlongintrepr.hが無くなったことに起因) 
    597596 - numpy, matplotlibのバージョン指定が必要 
     
    600599 
    601600 
     601先ほどと同様に、~/.venv/gpyopt を作成してく方針とする。 
     602{{{ 
     603obina@notepc:~$ which python3 
     604/opt/python/3.10.11/bin/python3 
     605obina@notepc:~$ python3 -m venv ~/.venv/gpyopt 
     606obina@notepc:~$ source ~/.venv/gpyopt/bin/activate 
     607(gpyopt) obina@npc:~$ 
     608}}} 
     609pipをupdateした後で、GPyOptを入れる 
     610{{{ 
     611(gpyopt) obina@notepc:~$ pip install --upgrade pip 
     612... 
     613(gpyopt) obina@notepc:~$ pip install GPyOpt numpy==1.23.1 notebook matplotlib==3.1.3 
     614... 
     615}}} 
     616 
     617notebookのエンジンをブラウザ無しで起動する 
     618{{{ 
     619(gpyopt) obina@npc:~$ jupyter notebook --no-browser 
     620.... 
     621    Or copy and paste one of these URLs: 
     622        http://localhost:8888/?token=91bde12e208d9c0fc57a9e23ee78264f5da132cee93f0d09 
     623}}} 
     624最後に出てくる{{{ http://... }}} URLをPCのブラウザで開く。 
     625 
     626ここではサンプルとして、加速器学会の例 https://www.pasj.jp/web_publish/pasj2021/proceedings/PDF/WEOB/WEOB03_oral.pdf をそのまま実行する。 
     627 
     628{{{ 
     629import numpy as np 
     630import GPy 
     631import GPyOpt 
     632 
     633def targ_func(x): 
     634    val = np.cos(2.3*x) + 0.5*x 
     635    return val 
     636 
     637#__main__ 
     638bounds = [{'name': 'x', 'type': 'continuous', 'domain': (0,10)}] 
     639 
     640# ベイズ推定用のオブジェクト作成 
     641myBopt = GPyOpt.methods.BayesianOptimization(f=targ_func, 
     642                                             domain=bounds, 
     643                                             initial_design_numdata=5, 
     644                                             acquisition_type='LCB') 
     645 
     646# 最適化実行 
     647myBopt.run_optimization(max_iter=15) 
     648 
     649# 結果表示 
     650print(myBopt.x_opt, myBopt.fx_opt) 
     651 
     652# プロット 
     653myBopt.plot_acquisition() 
     654myBopt.plot_convergence() 
     655}}} 
     656 
     657 
     658Notebookの様子はこんな感じ 
     659 
     660[[Image(GPyOpt_LCB3.png, 50%)]] 
     661 
     662 
     663LCBを使った場合の結果 
     664 
     665[[Image(GPyOpt_LCB1.png, 30%)]] 
     666[[Image(GPyOpt_LCB2.png, 30%)]] 
     667 
     668 
     669EIを使った場合の結果 
     670 
     671[[Image(GPyOpt_EI1.png, 30%)]] 
     672[[Image(GPyOpt_EI2.png, 30%)]] 
     673 
     674 
    602675== 今後 == 
    603676ここから先はまだ書いていない 
    604677 * GPU環境 (CUDA)でのセットアップ例 
    605  * GPyOptの使用例 
    606  * BOTorch, Axの使用例 
    607678 * EPICS連携