/ml-gcn

Course project for CS410. Drug Molecular Toxicity Prediction with GCN + Cloud ML Infra.

Primary LanguagePythonApache License 2.0Apache-2.0

Machine Learning Course Project

Introduction

通过 GCN 对 SMILES 表示的化学分子毒性进行预测。更多信息请参见课程 Kaggle

本项目通过一套 Cloud ML Infra 管理上百个机器学习模型,实现了 "implement once, run anywhere"。 仓库里包含了整个 infra 的相关脚本和代码。

report.pdf 是本项目的实验报告。

Getting Started

在使用这套工具前,你需要安装必要的工具。

brew install minio/stable/mc
conda install tqdm tensorflow-gpu=1.15 keras=2.2.4 numpy pandas
pip install minio

Run an Experiment

在项目根目录下,使用 run.sh 执行指令。

./run.sh python ./src/train.py

如果程序出错,数据不会被上传到对象存储。你可以手动上传。

./save.sh

可以通过 list.sh 列出所有实验。

./list.sh

可以通过 recover.sh 将某一次实验恢复到本地。

./recover.sh 20201111_221731_alexchi_31db906-dirty

可以使用 clean.sh 将缓存的实验数据清除。

./clean.sh

在实验过程中可能生成大量的数据。使用样例程序,仅 30 轮训练就能产生 1GB 数据。可以考虑:

  • 每 10 轮 checkpoint 一次。
  • 仅仅 checkpoint 最后一轮
  • ...

File Management

在预处理、训练过程中的所有文件都存放在交大对象储存上。你可以安装 minio 来查看对象云上的数据。 在项目目录中,也有对 minio API 的封装。

训练的结果和 log 应当全部存放在 run_dir() 函数返回的位置中。

请注意,下面的语句中含有 key 等隐私数据。请不要上传到各种公开平台上。

mc alias set sjtu-skyzh https://s3.jcloud.sjtu.edu.cn:443 [ACCESS KEY REDACTED] [SECRET KEY REDACTED]
mc ls sjtu-skyzh

对象存储的 [BUCKET NAME REDACTED]/ bucket 存放本次训练过程中的所有文件。