訓練済みモデルと書籍
訓練済みモデル
Xenonpy公式サイトによると、訓練済みモデルライブラリXenonpy.MDLが利用できなくなっているようだ。version 0.7(2024年予定)にて利用可能なように目指すということ。
yoshida-lab/XenonPy: XenonPy is a Python Software for Materials Informatics (github.com)
個別のモデルに関しては、github管理をしている先生に所属機関と目的を伝えれば、何らかの方法で利用可能となっている。
書籍
昨年の夏にXenonpyの利用例などが掲載された書籍が発売されている。CrysPyの利用方法も載っている。
マテリアルズインフォマティクス - 共立出版 (kyoritsu-pub.co.jp)
MI-book
前述の書籍内のXenonpy利用に際して取り扱ったコードを公開しているようだ。熱伝導率・線膨張係数・密度などに対する予測モデル構築も取り扱っている。転移学習に利用できる訓練済みモデルが提供されないので、一部動かないという内容だが、MD計算結果がついているので、ランダムフォレストでモデリングができる状態にある。これを用いて逆解析をできる事例がついている。
yoshida-lab/MI-Book (github.com)
というわけで、Amazonにて購入いたしました。
マテリアルズインフォマティクス | 伊藤 聡, 吉田 亮, 劉 暢, Stephen Wu, 野口 瑶, 山田 寛尚, 赤木 和人, 大林 一平, 山下 智樹 |本 | 通販 | Amazon
論文に記載されている内容を数学的にわかりやすく起こしたものなのかなと想像しています。
Xenonpyのインストール
動機
2023年3月17日より、Xenonpyを使った機械学習の方法を勉強するためにしばらくは、Xenonpyに関する事柄を自分のために記録する。小目標として、「Xenonpy(https://github.com/yoshida-lab/XenonPy)を使いこなす。」
を掲げて、しばらく続けていく。
しかしながら、少しの縛りを設ける必要がある。
機材と環境
Macbookpro(2021,14inch)
Miniconda (arm64 Apple Silicon)インストール済み
準備
Xenonpyの環境を作成するのがまず最初にやるべきことで、コマンドを羅列していく。
conda create -n xenonpy python=3.8 conda activate xenonpy pip install xenonpy
不足しているパッケージ
- PyTorch
- Tensorly
- Matminer
- Xgboost
- Ngboost
- Fastcluster
- Rdkit
- OpenNMT-py
- Optuna
- Ipympl
Pytorch2.0.0がリリースされて話題になっているが、pytorch_geometricを使いたいので、あえて1.13を入れる。M1 Apple silicon用にバイナリが用意されていないため、pyg-libはソースからコンパイルする必要がある。ここではbrewでcmakeを導入した。
pip3 install torch==1.13 torchvision torchaudio pip install pytorch-lightning pip install torch_scatter torch_sparse torch_cluster torch_spline_conv torch_geometric brew install cmake pip install git+https://github.com/pyg-team/pyg-lib.git
ここまでできたら、そのほかの足りないライブラリーを入れる。
pip install tensorly matminer xgboost ngboost fastcluster rdkit-pypi OpenNMT-py optuna ipympl jupyterlab
Pythonのコンソール画面で試してみて、表面上はインストールできていることを確認した。
Python 3.8.16 | packaged by conda-forge | (default, Feb 1 2023, 16:01:13) [Clang 14.0.6 ] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import xenonpy >>> xenonpy.__version__ '0.6.7' >>> from rdkit import Chem >>> mol=Chem.MolFromSmiles("C") >>> mol <rdkit.Chem.rdchem.Mol object at 0x104c65120>