From f5ec1afe136e29952de2fdad1799f59df58b7d7e Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 10:00:58 +0800 Subject: [PATCH 01/22] Document: test grammar --- docs/source/README.md | 260 +++++++++++++++++++++ docs/source/custom_rtd_theme/versions.html | 2 +- docs/source/index.rst | 20 +- docs/source/tutorial/G2.md | 5 + docs/source/tutorial/getting_start.md | 6 +- 5 files changed, 287 insertions(+), 6 deletions(-) create mode 100644 docs/source/README.md create mode 100644 docs/source/tutorial/G2.md diff --git a/docs/source/README.md b/docs/source/README.md new file mode 100644 index 0000000..b2c4c79 --- /dev/null +++ b/docs/source/README.md @@ -0,0 +1,260 @@ +# lumo + +[![PyPI version](https://badge.fury.io/py/lumo.svg)](https://badge.fury.io/py/lumo) +![Python-Test](https://github.com/pytorch-lumo/lumo/actions/workflows/python-test.yml/badge.svg) +[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/pytorch-lumo/sailist/blob/master/LICENSE) +![Python-doc](https://github.com/pytorch-lumo/sailist/blob/master/images/docstr_coverage_badge.svg) + +`lumo` is a streamlined and efficient library that simplifies the management of all components required for experiments +and focuses on enhancing the experience of deep learning practitioners. + +- **Experimental Management**: **Assign unique id and path** for each run, distinguish and store various file types; + manage **code snapshots** through git; **record all information** generated during the experiment to ensure + traceability and reproducibility. +- **Parameter Management:** Provides more convenient **parameter management** than argparser based on fire. +- **Runtime Configuration:** Provides configuration management under multi-level scopes. +- **Visualization:** Provides an Jupyter-compatible interactive dashboard for experiment management based + on [Panel](https://panel.holoviz.org/index.html). +- Additional optimization for deep learning: + - **Training:** Provides easily extendable training logic based on Trainer and provides comprehensive callback + logic. + - **Optimizer:** Integrated parameter and optimizer construction. + - **Data:** Abstraction of dataset construction process, combination of multiple DataLoaders, etc. + - **Distributed Training:** Also supports multiple training acceleration frameworks, unified abstraction, and easy + switching at any time. +- More utilities... + +![lumo-framework](./images/lumo-intro.png) + +# :book: Table of Contents + +- :cloud: [Installation](#cloud-installation) +- :book: [Quick Start](#book-quick-start) + - :small_orange_diamond: [Embedding into Existing Projects](#small_orange_diamond-embedding-into-existing-projects) + - :small_orange_diamond: [Building from Scratch](#small_orange_diamond-building-from-scratch) + - :small_orange_diamond: [Visual Interface](#small_orange_diamond-visual-interface) + - :small_orange_diamond: [re-run](#small_orange_diamond-re-run) + - :small_orange_diamond: [backup](#small_orange_diamond-backup) +- :scroll: [License](#scroll-license) + +# :cloud: Installation + +Install the published and tested version: + +```bash +pip install -U lumo +``` + +Or install the latest version from the dev1 branch: + +```bash +pip install git+https://github.com/pytorch-lumo/lumo@dev1 +``` + +The experiment panel depends on Panel, which needs to be installed separately: + +``` +pip install panel +``` + +# :book: Quick Start + +Here are two classic scenarios: + +## :small_orange_diamond: Embedding into Existing Projects + +For existing projects, you can quickly embed Lumo by following these steps: + +- Import Lumo and initialize Logger and Experiment: + +```python +import random +from lumo import SimpleExperiment, Params, Logger, Meter, Record + +logger = Logger() +exp = SimpleExperiment(exp_name='my_exp_a') +exp.start() +logger.add_log_dir(exp.mk_ipath()) +``` + +- Initialize parameters: + +```python +params = Params() +params.dataset = params.choice('cifar10', 'cifar100') +params.alpha = params.arange(default=1, left=0, right=10) +params.from_args() # python3 train.py --dataset=cifar100 --alpha=0.2 +print(params.to_dict()) # {"dataset": "cifar100", "alpha": 0.2} +``` + +- Record parameters and store information during training: + +```python +exp.dump_info('params', params.to_dict()) +print(exp.test_name) + +params.to_yaml(exp.mk_ipath('params.yaml')) + +for i in range(10): + max_acc = exp.dump_metric('Acc', random.random(), cmp='max') + logger.info(f'Max acc {max_acc}') + + ckpt_fn = exp.mk_bpath('checkpoints', f'model_{i}.ckpt') + ... # save code given ckpt_fn + +record = Record() +for batch in range(10): + m = Meter() + m.mean.Lall = random.random() + m.last.lr = batch + record.record(m) + logger.info(record) + +exp.end() +``` + +## :small_orange_diamond: Building from Scratch + +If you want to start a new deep learning experiment from scratch, you can use Lumo to accelerate your code development. +Below are examples of Lumo training at different scales: + +one-fine training: + +| Example | CoLab | Lines of Code | +|---------------------------------------------|-------|---------------| +| [MNIST example](./examples/mnist.py) | | 118 | +| [MocoV2 trains CIFAR10](./examples/moco.py) | | 284 | +| [Multi-GPU training ImageNet]() | || + +Experimental project: + +| Project | Description | +|-----------------------------------------------------------------------------------------------------------|-------------------------------| +| [image-classification](https://github.com/pytorch-lumo/image-classification) | Reproducible code for multiple papers with full supervision, semi-supervision, and self-supervision | +| [emotion-recognition-in-coversation](https://github.com/pytorch-lumo/emotion-recognition-in-conversation) | Reproducible code for multiple papers on dialogue emotion classification and multimodal dialogue emotion classification | + +## :small_orange_diamond: Visual Interface + +In jupyter: + +```python +from lumo import Watcher + +w = Watcher() +df = w.load() +widget = w.panel(df) +widget.servable() +``` + +![Panel](./images/panel-example.png) + +Manually filtered experiments for visualization: +![Panel](./images/panel-example2.png) + +You can directly use the command line: + +``` +lumo board [--port, --address, --open] +``` + +## :small_orange_diamond: re-run + +Experiment that failed due to certain reasons can be **re-run by using the unique experiment ID (test_name)** , extra +parameters can be **reassigned and replaced**. + +``` +lumo rerun 230313.030.57t --device=0 +``` + +## :small_orange_diamond: backup + +Backing up experiment information to a Github issue (based on PyGitHub): + +```python +from lumo import Experiment, Watcher +from lumo import glob + +glob[ + 'github_access_token'] = 'ghp_*' # Default value for `access_token`. It is recommended to store the access_token in the global configuration `~/.lumorc.json`. + +w = Watcher() +df = w.load() + +# Selecting a single experiment for backup +exp = Experiment.from_cache(df.iloc[0].to_dict()) +issue = exp.backup('github', repo='pytorch-lumo/image-classification-private', + access_token='ghp_*', + update=True, # If already backed up, overwrite the previous issue + labels=None, # Optional labels + ) +print(issue.number) + +# Batch backup and add labels based on each experiment's parameters +issues = df.apply( + lambda x: Experiment.from_cache(x.to_dict()).backup(..., labels=[x['params'].get('dataset', '')]), + axis=1 +) +``` + +![backup_github](./images/backup_github.png) + +# Full properties + +``` +{'agent': nan, + 'backup': {'23-03-17-003438': {'backend': 'github', + 'number': 9, + 'repo': '...'}, + }, + 'exception': nan, + 'execute': {'cwd': '~/Documents/Python/lumo', + 'exec_argv': ['~/Documents/Python/lumo/a.py'], + 'exec_bin': '~/.pyenv/versions/3.9.16/bin/python3.9', + 'exec_file': '~/Documents/Python/lumo/a.py', + 'repo': '~/Documents/Python/lumo'}, + 'exp_name': 'my_exp_a', + 'git': {'commit': '1014b6b5', + 'dep_hash': 'c93b8c4e340882f55cf0c8e125fa0203', + 'repo': '~/Documents/Python/lumo'}, + 'hooks': {'Diary': {'loaded': True, 'msg': ''}, + 'FinalReport': {'loaded': True, 'msg': ''}, + 'GitCommit': {'loaded': True, 'msg': ''}, + 'LastCmd': {'loaded': True, 'msg': ''}, + 'LockFile': {'loaded': True, 'msg': ''}, + 'RecordAbort': {'loaded': True, 'msg': ''}}, + 'lock': {'accelerate': '0.16.0', + 'decorator': '5.1.1', + 'fire': '0.5.0', + 'hydra': '1.3.2', + 'joblib': '1.2.0', + 'lumo': '0.15.0', + 'numpy': '1.24.2', + 'omegaconf': '2.3.0', + 'psutil': '5.9.4', + 'torch': '1.13.1'}, + 'note': 'This is a Note', + 'params': {'alpha': 1, 'dataset': 'cifar10'}, + 'paths': {'blob_root': '~/.lumo/blob', + 'cache_root': '~/.lumo/cache', + 'info_root': '~/.lumo/experiments'}, + 'pinfo': {'hash': '0af4b77497c85bc5b65ccbdd9ff4ca0f', + 'obj': {'argv': ['~/.pyenv/versions/3.9.16/bin/python3.9', + '~/Documents/Python/lumo/a.py'], + 'pid': 63975, + 'pname': 'python3.9', + 'pstart': 1678898740.099484}, + 'pid': 63975}, + 'progress': {'end': '23-03-16-004542', + 'end_code': 0, + 'last_edit_time': '23-03-16-004542', + 'ratio': 1, + 'start': '23-03-16-004542', + 'update_from': None}, + 'tags': [], + 'test_name': '230316.000.8ct', + 'trainer': nan} +``` + +# :scroll: License + +Distributed under the Apache License Version 2.0. See [LICENSE](./LICENSE) for more information. diff --git a/docs/source/custom_rtd_theme/versions.html b/docs/source/custom_rtd_theme/versions.html index b5921c1..b95d995 100644 --- a/docs/source/custom_rtd_theme/versions.html +++ b/docs/source/custom_rtd_theme/versions.html @@ -5,7 +5,7 @@
Read the Docs - v: {{ current_version }} + v: {{ current_version.name }}
diff --git a/docs/source/index.rst b/docs/source/index.rst index 8774ecf..1652d50 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,16 +1,28 @@ .. lumo documentation master file, created by - sphinx-quickstart on Sat Mar 18 14:41:26 2023. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. +sphinx-quickstart on Sat Mar 18 14:41:26 2023. +You can adapt this file completely to your liking, but it should at least +contain the root `toctree` directive. Welcome to lumo's documentation! ================================ +.. include:: ../../README.md + :parser: myst_parser.sphinx_ + +.. include:: ../README.md + :parser: myst_parser.sphinx_ + +.. include:: README.md + :parser: myst_parser.sphinx_ + .. toctree:: :maxdepth: 2 :caption: Contents - ../tutorial/getting_start.md +.. toctree:: + :caption: Tutorial + :glob: + tutorial/* Indices and tables ================== diff --git a/docs/source/tutorial/G2.md b/docs/source/tutorial/G2.md new file mode 100644 index 0000000..e291780 --- /dev/null +++ b/docs/source/tutorial/G2.md @@ -0,0 +1,5 @@ +# Getting Start + +这是测试 + +Here is a Test for English. \ No newline at end of file diff --git a/docs/source/tutorial/getting_start.md b/docs/source/tutorial/getting_start.md index 8379993..e291780 100644 --- a/docs/source/tutorial/getting_start.md +++ b/docs/source/tutorial/getting_start.md @@ -1 +1,5 @@ -# Getting Start \ No newline at end of file +# Getting Start + +这是测试 + +Here is a Test for English. \ No newline at end of file From 29ab975a437e2f82cefd1ddfb50472f164459c3a Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 10:12:24 +0800 Subject: [PATCH 02/22] Document: test --- docs/source/README.md | 260 ------------------------------------------ docs/source/index.rst | 15 +-- 2 files changed, 2 insertions(+), 273 deletions(-) delete mode 100644 docs/source/README.md diff --git a/docs/source/README.md b/docs/source/README.md deleted file mode 100644 index b2c4c79..0000000 --- a/docs/source/README.md +++ /dev/null @@ -1,260 +0,0 @@ -# lumo - -[![PyPI version](https://badge.fury.io/py/lumo.svg)](https://badge.fury.io/py/lumo) -![Python-Test](https://github.com/pytorch-lumo/lumo/actions/workflows/python-test.yml/badge.svg) -[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/pytorch-lumo/sailist/blob/master/LICENSE) -![Python-doc](https://github.com/pytorch-lumo/sailist/blob/master/images/docstr_coverage_badge.svg) - -`lumo` is a streamlined and efficient library that simplifies the management of all components required for experiments -and focuses on enhancing the experience of deep learning practitioners. - -- **Experimental Management**: **Assign unique id and path** for each run, distinguish and store various file types; - manage **code snapshots** through git; **record all information** generated during the experiment to ensure - traceability and reproducibility. -- **Parameter Management:** Provides more convenient **parameter management** than argparser based on fire. -- **Runtime Configuration:** Provides configuration management under multi-level scopes. -- **Visualization:** Provides an Jupyter-compatible interactive dashboard for experiment management based - on [Panel](https://panel.holoviz.org/index.html). -- Additional optimization for deep learning: - - **Training:** Provides easily extendable training logic based on Trainer and provides comprehensive callback - logic. - - **Optimizer:** Integrated parameter and optimizer construction. - - **Data:** Abstraction of dataset construction process, combination of multiple DataLoaders, etc. - - **Distributed Training:** Also supports multiple training acceleration frameworks, unified abstraction, and easy - switching at any time. -- More utilities... - -![lumo-framework](./images/lumo-intro.png) - -# :book: Table of Contents - -- :cloud: [Installation](#cloud-installation) -- :book: [Quick Start](#book-quick-start) - - :small_orange_diamond: [Embedding into Existing Projects](#small_orange_diamond-embedding-into-existing-projects) - - :small_orange_diamond: [Building from Scratch](#small_orange_diamond-building-from-scratch) - - :small_orange_diamond: [Visual Interface](#small_orange_diamond-visual-interface) - - :small_orange_diamond: [re-run](#small_orange_diamond-re-run) - - :small_orange_diamond: [backup](#small_orange_diamond-backup) -- :scroll: [License](#scroll-license) - -# :cloud: Installation - -Install the published and tested version: - -```bash -pip install -U lumo -``` - -Or install the latest version from the dev1 branch: - -```bash -pip install git+https://github.com/pytorch-lumo/lumo@dev1 -``` - -The experiment panel depends on Panel, which needs to be installed separately: - -``` -pip install panel -``` - -# :book: Quick Start - -Here are two classic scenarios: - -## :small_orange_diamond: Embedding into Existing Projects - -For existing projects, you can quickly embed Lumo by following these steps: - -- Import Lumo and initialize Logger and Experiment: - -```python -import random -from lumo import SimpleExperiment, Params, Logger, Meter, Record - -logger = Logger() -exp = SimpleExperiment(exp_name='my_exp_a') -exp.start() -logger.add_log_dir(exp.mk_ipath()) -``` - -- Initialize parameters: - -```python -params = Params() -params.dataset = params.choice('cifar10', 'cifar100') -params.alpha = params.arange(default=1, left=0, right=10) -params.from_args() # python3 train.py --dataset=cifar100 --alpha=0.2 -print(params.to_dict()) # {"dataset": "cifar100", "alpha": 0.2} -``` - -- Record parameters and store information during training: - -```python -exp.dump_info('params', params.to_dict()) -print(exp.test_name) - -params.to_yaml(exp.mk_ipath('params.yaml')) - -for i in range(10): - max_acc = exp.dump_metric('Acc', random.random(), cmp='max') - logger.info(f'Max acc {max_acc}') - - ckpt_fn = exp.mk_bpath('checkpoints', f'model_{i}.ckpt') - ... # save code given ckpt_fn - -record = Record() -for batch in range(10): - m = Meter() - m.mean.Lall = random.random() - m.last.lr = batch - record.record(m) - logger.info(record) - -exp.end() -``` - -## :small_orange_diamond: Building from Scratch - -If you want to start a new deep learning experiment from scratch, you can use Lumo to accelerate your code development. -Below are examples of Lumo training at different scales: - -one-fine training: - -| Example | CoLab | Lines of Code | -|---------------------------------------------|-------|---------------| -| [MNIST example](./examples/mnist.py) | | 118 | -| [MocoV2 trains CIFAR10](./examples/moco.py) | | 284 | -| [Multi-GPU training ImageNet]() | || - -Experimental project: - -| Project | Description | -|-----------------------------------------------------------------------------------------------------------|-------------------------------| -| [image-classification](https://github.com/pytorch-lumo/image-classification) | Reproducible code for multiple papers with full supervision, semi-supervision, and self-supervision | -| [emotion-recognition-in-coversation](https://github.com/pytorch-lumo/emotion-recognition-in-conversation) | Reproducible code for multiple papers on dialogue emotion classification and multimodal dialogue emotion classification | - -## :small_orange_diamond: Visual Interface - -In jupyter: - -```python -from lumo import Watcher - -w = Watcher() -df = w.load() -widget = w.panel(df) -widget.servable() -``` - -![Panel](./images/panel-example.png) - -Manually filtered experiments for visualization: -![Panel](./images/panel-example2.png) - -You can directly use the command line: - -``` -lumo board [--port, --address, --open] -``` - -## :small_orange_diamond: re-run - -Experiment that failed due to certain reasons can be **re-run by using the unique experiment ID (test_name)** , extra -parameters can be **reassigned and replaced**. - -``` -lumo rerun 230313.030.57t --device=0 -``` - -## :small_orange_diamond: backup - -Backing up experiment information to a Github issue (based on PyGitHub): - -```python -from lumo import Experiment, Watcher -from lumo import glob - -glob[ - 'github_access_token'] = 'ghp_*' # Default value for `access_token`. It is recommended to store the access_token in the global configuration `~/.lumorc.json`. - -w = Watcher() -df = w.load() - -# Selecting a single experiment for backup -exp = Experiment.from_cache(df.iloc[0].to_dict()) -issue = exp.backup('github', repo='pytorch-lumo/image-classification-private', - access_token='ghp_*', - update=True, # If already backed up, overwrite the previous issue - labels=None, # Optional labels - ) -print(issue.number) - -# Batch backup and add labels based on each experiment's parameters -issues = df.apply( - lambda x: Experiment.from_cache(x.to_dict()).backup(..., labels=[x['params'].get('dataset', '')]), - axis=1 -) -``` - -![backup_github](./images/backup_github.png) - -# Full properties - -``` -{'agent': nan, - 'backup': {'23-03-17-003438': {'backend': 'github', - 'number': 9, - 'repo': '...'}, - }, - 'exception': nan, - 'execute': {'cwd': '~/Documents/Python/lumo', - 'exec_argv': ['~/Documents/Python/lumo/a.py'], - 'exec_bin': '~/.pyenv/versions/3.9.16/bin/python3.9', - 'exec_file': '~/Documents/Python/lumo/a.py', - 'repo': '~/Documents/Python/lumo'}, - 'exp_name': 'my_exp_a', - 'git': {'commit': '1014b6b5', - 'dep_hash': 'c93b8c4e340882f55cf0c8e125fa0203', - 'repo': '~/Documents/Python/lumo'}, - 'hooks': {'Diary': {'loaded': True, 'msg': ''}, - 'FinalReport': {'loaded': True, 'msg': ''}, - 'GitCommit': {'loaded': True, 'msg': ''}, - 'LastCmd': {'loaded': True, 'msg': ''}, - 'LockFile': {'loaded': True, 'msg': ''}, - 'RecordAbort': {'loaded': True, 'msg': ''}}, - 'lock': {'accelerate': '0.16.0', - 'decorator': '5.1.1', - 'fire': '0.5.0', - 'hydra': '1.3.2', - 'joblib': '1.2.0', - 'lumo': '0.15.0', - 'numpy': '1.24.2', - 'omegaconf': '2.3.0', - 'psutil': '5.9.4', - 'torch': '1.13.1'}, - 'note': 'This is a Note', - 'params': {'alpha': 1, 'dataset': 'cifar10'}, - 'paths': {'blob_root': '~/.lumo/blob', - 'cache_root': '~/.lumo/cache', - 'info_root': '~/.lumo/experiments'}, - 'pinfo': {'hash': '0af4b77497c85bc5b65ccbdd9ff4ca0f', - 'obj': {'argv': ['~/.pyenv/versions/3.9.16/bin/python3.9', - '~/Documents/Python/lumo/a.py'], - 'pid': 63975, - 'pname': 'python3.9', - 'pstart': 1678898740.099484}, - 'pid': 63975}, - 'progress': {'end': '23-03-16-004542', - 'end_code': 0, - 'last_edit_time': '23-03-16-004542', - 'ratio': 1, - 'start': '23-03-16-004542', - 'update_from': None}, - 'tags': [], - 'test_name': '230316.000.8ct', - 'trainer': nan} -``` - -# :scroll: License - -Distributed under the Apache License Version 2.0. See [LICENSE](./LICENSE) for more information. diff --git a/docs/source/index.rst b/docs/source/index.rst index 1652d50..6bbcce3 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -5,24 +5,13 @@ contain the root `toctree` directive. Welcome to lumo's documentation! ================================ -.. include:: ../../README.md - :parser: myst_parser.sphinx_ - -.. include:: ../README.md - :parser: myst_parser.sphinx_ - -.. include:: README.md - :parser: myst_parser.sphinx_ - .. toctree:: :maxdepth: 2 :caption: Contents -.. toctree:: - :caption: Tutorial - :glob: - tutorial/* + ../tutorial/getting_start.md + Indices and tables ================== From b48ddf5acfe3cea9f418dea55d5b3fbeff241f4b Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 10:39:22 +0800 Subject: [PATCH 03/22] Document: update --- docs/source/conf.py | 6 +- docs/source/index.rst | 9 +- docs/source/tutorial/G2.md | 5 - docs/source/tutorial/getting_start.md | 5 - src/lumo/sketch/memory_grab.py | 278 -------------------------- src/lumo/trainer/saver.py | 21 +- src/lumo/utils/device.py | 4 +- src/lumo/utils/memory_grab.py | 23 ++- 8 files changed, 37 insertions(+), 314 deletions(-) delete mode 100644 docs/source/tutorial/G2.md delete mode 100644 docs/source/tutorial/getting_start.md delete mode 100644 src/lumo/sketch/memory_grab.py diff --git a/docs/source/conf.py b/docs/source/conf.py index 458e778..a5fca1e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -31,7 +31,9 @@ def extract_version(): import os import sys -sys.path.insert(0, os.path.abspath('../../src/')) +sys.path.insert(0, Path(__file__).parent.parent.joinpath('src').as_posix()) + +# sys.path.insert(0, os.path.abspath('../../src/')) # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration @@ -130,7 +132,7 @@ def setup(app: Sphinx): # '.md': 'markdown', # } # -commonmark_suffixes = ['.rst'] +# commonmark_suffixes = ['.rst'] source_parsers = { '.md': CommonMarkParser, diff --git a/docs/source/index.rst b/docs/source/index.rst index 6bbcce3..34e5105 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -8,9 +8,14 @@ Welcome to lumo's documentation! .. toctree:: :maxdepth: 2 - :caption: Contents + :caption: Tutorial + :glob: - ../tutorial/getting_start.md + tutorial/* + +.. toctree:: + :maxdepth: 2 + :caption: Development Indices and tables diff --git a/docs/source/tutorial/G2.md b/docs/source/tutorial/G2.md deleted file mode 100644 index e291780..0000000 --- a/docs/source/tutorial/G2.md +++ /dev/null @@ -1,5 +0,0 @@ -# Getting Start - -这是测试 - -Here is a Test for English. \ No newline at end of file diff --git a/docs/source/tutorial/getting_start.md b/docs/source/tutorial/getting_start.md deleted file mode 100644 index e291780..0000000 --- a/docs/source/tutorial/getting_start.md +++ /dev/null @@ -1,5 +0,0 @@ -# Getting Start - -这是测试 - -Here is a Test for English. \ No newline at end of file diff --git a/src/lumo/sketch/memory_grab.py b/src/lumo/sketch/memory_grab.py deleted file mode 100644 index 857b3e5..0000000 --- a/src/lumo/sketch/memory_grab.py +++ /dev/null @@ -1,278 +0,0 @@ -""" -A hack function to monitor GPU memory usage, then occupy its access. -""" -import functools -import os -import subprocess -import time -from functools import partial - -import torch - -from lumo.core.tree import tree -from lumo.utils import re - -match_mem = re.compile('([0-9]+) +([0-9]+)[^|]* ([0-9]+)MiB') - - -class DeviceMem: - def __init__(self): - self.line_mem = tree() - - def _parse_device_pid_mem_pair(self, lines): - for lid, line in enumerate(lines): - res = re.search(match_mem, line) - if res is not None: - _device, _pid, _mib = [int(i) for i in res.groups()] - self.line_mem[_device][_pid] = lid - yield _device, _pid, _mib - - def try_parse(self, lines, pid, device): - """ try parse mem from cached lid directly. - Returns: - -1 means failed. - others means successd and its memory. - - """ - lid = self.line_mem[device][pid] - if isinstance(lid, dict): - return -1 - elif lid > len(lines): - return -1 - else: - res = re.search(match_mem, lines[lid]) - if res is None: - return -1 - else: - _device, _pid, _mib = [int(i) for i in res.groups()] - if _pid == pid and _device == device: - return _mib - else: - return -1 - - def re_parse(self, lines, pid, device): - _res = self.try_parse(lines, pid, device) - if _res != -1: - return _res - - for _device, _pid, _mib in self._parse_device_pid_mem_pair(lines): - if _pid == pid and _device == device: - return _mib - - return 0 - - def _get_nvidia_smi(self): - proc = subprocess.Popen(['nvidia-smi'], stdout=subprocess.PIPE) - lines = proc.stdout.readlines() - return [i.decode() for i in lines] - - def _device_equal(self, da, db): - if isinstance(da, (int, str)): - da = torch.device(da) - if isinstance(db, (int, str)): - db = torch.device(db) - return da == db - - def get_device_release_mem(self, device): - """ get device memory left.""" - s_pid = os.getpid() - total = self.get_device_mem(device) - for _device, _pid, _mib in self._parse_device_pid_mem_pair(self._get_nvidia_smi()): - if self._device_equal(device, _device): - total -= _mib - - return total - - def choice_free_gpu(self, non_block=False): - """choice a free gpu""" - pass - - def get_device_mem(self, device): - """ returns device total memory(unit: MB) """ - return torch.cuda.get_device_properties(device).total_memory // (1024 * 1024) - - def get_pid_device_mem(self, pid, device): - """ - 尽可能有效率的得到进程在某设备下占用的显存(通过命令行程序调用获取) - :param pid: - :param device: - :return: - """ - if isinstance(device, torch.device): - device = device.index - else: - device = torch.device(device).index - - lines = self._get_nvidia_smi() - mib = self.try_parse(lines, pid, device) - if mib == -1: - mib = self.re_parse(lines, pid, device) - - return mib - - -_memer = DeviceMem() -_pid = os.getpid() - -if torch.cuda.is_available(): - get_pid_device_mem = partial(_memer.get_pid_device_mem, pid=_pid, device=torch.cuda.current_device()) - - -class memory(object): - r""" - 优雅的抢卡 - Args: - memory: 需要占用的内存,以 MB 为单位 - device: 需要占用内存的设备 - hold: - unit: - Example:: - >>> import lumo - >>> with lumo.memory(5000): - ... y = x * 2 - - >>> @lumo.memory(1024) - ... def doubler(x): - ... ... - - >>> lumo.memory(10000).start() - ... # do something - - Why use nvidia-smi to get memory useage? see: - https://github.com/pytorch/pytorch/issues/12873 - """ - - def __init__(self, memory, device=None, hold=False) -> None: - super().__init__() - if device is None: - device = torch.cuda.current_device() - if isinstance(device, (str, int)): - device = torch.device(device) - - self.need = memory - self.device = device - self.hold = hold - self.exc_time = 0 - self.acc = 5 - self.mem = [] - self.last_success = _memer.get_pid_device_mem(_pid, self.device) - - def copy(self, pid: int, wait: bool = True): - self.need = _memer.get_pid_device_mem(pid, self.device) - if wait: - self.wait(pid) - else: - self.start() - - def wait(self, pid): - while _memer.get_pid_device_mem(pid, self.device) > 0: - time.sleep(0.5) - self.start() - - def immediately(self, pre_init=False): - """ - 等待,直到内存有空间后,开始申请相应显存,优雅,礼貌,推荐 - Args: - pre_init: 是否初始化 CUDA(这将在一开始消耗一定显存),默认为 False,即不抢占任何内存, - 直到设备释放足够空间后开始抢占。 - """ - while True: - _left = _memer.get_device_release_mem(self.device) - _allocated = _memer.get_pid_device_mem(_pid, self.device) - - if pre_init and _allocated == 0: - self._malloc(1, init=True) - continue - - _need = self.need - _allocated - if _need < 0: - return self.end() - - if _left > _need: - if _allocated == 0: - self._malloc(1, init=True) - continue - - res = self._malloc(_need) - time.sleep(0.5) - if res: - return self.end() - - print("need {}Mb, {}Mb allocated, " - "waiting for {}Mb released, " - "but only {}Mb left.".format(self.need, - _allocated, _need, - _left), end='\r') - - def _malloc(self, size, init=False): - """ unit: mb """ - try: - tmp = torch.rand(size, 1048576 // 4, device=self.device) - if not init: - self.mem.append(tmp) - return True - except Exception as e: - return False - - def end(self): - print() - if self.hold: - print('press keyboardinterrupt to end') - try: - while True: - # do some Fake thing - self.mem[-1].random_() - time.sleep(0.1) - except KeyboardInterrupt: - print('continue') - - def start(self, immediately=True): - if immediately: - self.immediately() - else: - self.invade() - - def invade(self, unit=5): - """一点一点的侵占,有多少占用多少,直到申请满为止,比较粗鲁,不友好,不推荐""" - try: - while self.last_success < self.need: - res = self._malloc(unit + self.acc) - if res: - self.acc += unit - self.last_success = _memer.get_pid_device_mem(_pid, self.device) - time.sleep(0.1) - else: - self.exc_time += 1 - self.acc = max(self.acc - unit, 0) - time.sleep(0.5) - print('{}/{}Mb, try={}, pid={}'.format(self.last_success, - self.need, - self.exc_time, - os.getpid()), end='\r') - self.end() - except KeyboardInterrupt: - print('\nabort.') - - def __enter__(self): - self.invade() - - def __exit__(self, *args): - del self.mem[:] - torch.cuda.empty_cache() - return True - - def __call__(self, func): - @functools.wraps(func) - def decorate_no_grad(*args, **kwargs): - with self: - return func(*args, **kwargs) - - return decorate_no_grad - - @staticmethod - def hold_current(): - count = torch.cuda.device_count() - mems = [_memer.get_pid_device_mem(_pid, i) for i in range(count)] - for i, mem in enumerate(mems): - if mem > 0: - memory(mem, device=i, hold=(i == count - 1)).start() diff --git a/src/lumo/trainer/saver.py b/src/lumo/trainer/saver.py index 1088e03..1f6c4df 100644 --- a/src/lumo/trainer/saver.py +++ b/src/lumo/trainer/saver.py @@ -27,14 +27,16 @@ class state_dict_tuple: IndexError: If the index is not 0 or 1. Examples: - # Create an instance of state_dict_tuple with state_dict and meta_info - >>> sd = state_dict_tuple({'a': 1, 'b': 2}, 'meta') - - # Access the state_dict and meta_info using the [] operator - >>> sd[0] - {'a': 1, 'b': 2} - >>> sd[1] - 'meta' + ```python + # Create an instance of state_dict_tuple with state_dict and meta_info + >>> sd = state_dict_tuple({'a': 1, 'b': 2}, 'meta') + + # Access the state_dict and meta_info using the [] operator + >>> sd[0] + {'a': 1, 'b': 2} + >>> sd[1] + 'meta' + ``` """ def __init__(self, state_dict=None, meta_info=None): @@ -75,8 +77,7 @@ class Saver: """ Write state_dict into test dirs, record save log into /.lumo/save..log - format: - -> + format: -> Raises: When save/load operations happend, you may meet Out Of Space, FileNotExist, or other problems, diff --git a/src/lumo/utils/device.py b/src/lumo/utils/device.py index ef6ee94..6539568 100644 --- a/src/lumo/utils/device.py +++ b/src/lumo/utils/device.py @@ -37,9 +37,9 @@ def recursively_apply(func, data, *args, test_type=is_torch_tensor, error_on_oth The data on which to apply `func` *args: Positional arguments that will be passed to `func` when applied on the unpacked data. - main_type (`type`, *optional*, defaults to `torch.Tensor`): + main_type (`type`, optional, defaults to `torch.Tensor`): The base type of the objects to which apply `func`. - error_on_other_type (`bool`, *optional*, defaults to `False`): + error_on_other_type (`bool`, optional, defaults to `False`): Whether to return an error or not if after unpacking `data`, we get on an object that is not of type `main_type`. If `False`, the function will leave objects of types different than `main_type` unchanged. **kwargs: diff --git a/src/lumo/utils/memory_grab.py b/src/lumo/utils/memory_grab.py index a49c31d..b96ddbc 100644 --- a/src/lumo/utils/memory_grab.py +++ b/src/lumo/utils/memory_grab.py @@ -184,23 +184,26 @@ class memory(object): A graceful memory allocator that optimizes GPU memory allocation by incrementally increasing the memory footprint to minimize fragmentation. + ```python + import lumo + with lumo.memory(5000): + y = x * 2 + + @lumo.memory(1024) + def doubler(x): + ... + + lumo.memory(10000).start() + ... + ``` + Args: memory (int): Memory size to be allocated in MB. device (str or int, optional): Device to allocate memory on. Defaults to the current CUDA device. hold (bool, optional): Whether to hold the memory after allocation. Defaults to False. invade (bool, optional): Whether to use aggressive memory allocation. Defaults to False. - Examples: - >>> import lumo - >>> with lumo.memory(5000): - ... y = x * 2 - - >>> @lumo.memory(1024) - ... def doubler(x): - ... ... - >>> lumo.memory(10000).start() - ... # do something References: To get GPU memory usage, we use nvidia-smi. Refer to this link for details: From d2c372432dc479f79a9b39f6e0d882746e6bb285 Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 22:22:17 +0800 Subject: [PATCH 04/22] Experiment: fix access access token from glob --- src/lumo/exp/experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index 0e128a9..c283218 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -914,7 +914,7 @@ def backup(self, backend: str = 'github', **kwargs): """ from .backup import backup_regist if backend == 'github': - kwargs.setdefault('access_token', glob['github_access_token']) + kwargs.setdefault('access_token', glob.get('github_access_token')) return backup_regist[backend](exp=self, **kwargs) From 1c488248e702da8cad535ce06adb7d0aa6d0cdd4 Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 22:26:31 +0800 Subject: [PATCH 05/22] Experiment: from_cache will load information from disk if any changes is made --- src/lumo/exp/experiment.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index c283218..96a4f06 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -845,7 +845,10 @@ def from_cache(cls, dic: dict): paths = dic.pop('paths', {}) _ = dic.pop('metrics') self = cls(exp_name=dic['exp_name'], test_name=dic['test_name'], paths=paths) + if os.path.exists(self.heartbeat_fn): + return cls.from_disk(self.info_dir) self._prop.update(dic) + return self @classmethod From b9b06fb572bc561b37e37d2aa3ae1dc4f096ae9f Mon Sep 17 00:00:00 2001 From: sailist Date: Mon, 20 Mar 2023 22:30:10 +0800 Subject: [PATCH 06/22] Experiment: .from_cache() will load information from disk if any changes is made --- src/lumo/exp/experiment.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index 96a4f06..5d6972b 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -831,13 +831,15 @@ def exp_func(): @classmethod def from_cache(cls, dic: dict): """ - Creates an Experiment object from a cached dictionary. + Create an Experiment object from cached Experiment data. - The cached dictionary should have the same format as the one returned by the Experiment.to_cache() method. + If the disk has been modified (as detected by `~Experiment.heartbeat_fn`), + reload the Experiment from disk. Otherwise, create a new Experiment + object with the cached data. Args: - cls: the Experiment class. - dic: a dictionary with the cached Experiment data. + cls: The Experiment class. + dic: A dictionary containing cached Experiment data. Returns: An Experiment object. From b39266fd2f80ac079af0654c72116326ef5d4d21 Mon Sep 17 00:00:00 2001 From: sailist Date: Fri, 24 Mar 2023 16:03:52 +0800 Subject: [PATCH 07/22] Experiment: Better __repr__ --- src/lumo/exp/experiment.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index 5d6972b..19b0923 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -190,7 +190,7 @@ def __repr__(self): Returns: str: A string representation of the Experiment object. """ - return f'{self.__class__.__name__}(info_dir="{self.info_dir})"' + return f'{self.__class__.__name__}(info_dir="{self.info_dir}")' def __str__(self): """ @@ -709,7 +709,7 @@ def rerun(self, arg_list: List[str]): # self.properties[''] new_test_name = self._create_test_name(self.exp_dir) new_exp = Experiment(self.exp_name, test_name=new_test_name) - self.dump_info('deprecated', {'rerun_at': {new_exp.test_name: True}}, append=True) + self.dump_info('rerun', {'rerun_at': {new_exp.test_name: True}}, append=True) old_rerun_info = self.properties.get('rerun', {}) count = 1 if isinstance(old_rerun_info, dict): From 4ed913b9b5c503dc1fc4b96023938bf67245faeb Mon Sep 17 00:00:00 2001 From: sailist Date: Fri, 24 Mar 2023 16:04:11 +0800 Subject: [PATCH 08/22] Trainer: backend interface --- src/lumo/trainer/accelerator.py | 292 +----------------- src/lumo/trainer/backend/accelerator.py | 137 ++++++++ src/lumo/trainer/backend/base.py | 147 +++++++++ .../trainer/backend/horovod_accelerator.py | 32 ++ src/lumo/trainer/backend/original.py | 27 ++ 5 files changed, 349 insertions(+), 286 deletions(-) create mode 100644 src/lumo/trainer/backend/base.py create mode 100644 src/lumo/trainer/backend/horovod_accelerator.py create mode 100644 src/lumo/trainer/backend/original.py diff --git a/src/lumo/trainer/accelerator.py b/src/lumo/trainer/accelerator.py index 72de399..90ec7dd 100644 --- a/src/lumo/trainer/accelerator.py +++ b/src/lumo/trainer/accelerator.py @@ -1,293 +1,13 @@ -import warnings -from torch import nn -import torch -from torch import distributed -from torch.utils.data import DataLoader -from lumo.data.loader import DataLoaderSide -from lumo.proc.dist import gather - - -class Accelerator: - """ - A class to define the interface for various types of accelerator. - - Attributes: - _prop (dict): A dictionary of keyword arguments. - - Methods: - device: A property method to get the device. - set_device: A method to set the device. - prepare_data_loader: A method to prepare the data loader. - prepare_model: A method to prepare the model. - prepare_optimizer: A method to prepare the optimizer. - unwrap_model: A method to unwrap the model. - prepare: A method to prepare the inputs for training. - wait_for_everyone: A method to wait for all processes to synchronize. - gather: A method to gather the tensor data. - backward: A method to compute the gradients using backpropagation. - """ - - def __init__(self, **kwargs): - """ - Initialize the class with a dictionary of keyword arguments. - """ - self._prop = kwargs - - @property - def device(self) -> torch.device: - """ - Get the device. - """ - return self._prop.get('device', None) - - def set_device(self, device: torch.device): - """ - Set the device. - - Args: - device (torch.device): The device to be set. - """ - assert isinstance(device, torch.device) - self._prop['device'] = device - - def prepare_data_loader(self, dataloader): - """ - Prepare the data loader. - - Args: - dataloader: The data loader. - - Returns: - The prepared data loader. - """ - return dataloader - - def prepare_model(self, model: torch.nn.Module): - """ - Prepare the model. - - Args: - model (torch.nn.Module): The model. - - Returns: - The prepared model. - """ - return model.to(self.device) - - def prepare_optimizer(self, optimizer: torch.optim.Optimizer): - """ - Prepare the optimizer. - - Args: - optimizer (torch.optim.Optimizer): The optimizer. - - Returns: - The prepared optimizer. - """ - return optimizer - - def unwrap_model(self, model): - """ - Unwrap the model. - - Args: - model: The model. - - Returns: - The unwrapped model. - """ - return model - - def prepare(self, *args): - """ - Prepare the inputs for training. - - Args: - *args: The inputs. - - Returns: - The prepared inputs. - """ - res = [] - for item in args: - if isinstance(item, nn.Module): - res.append(self.prepare_model(item)) - elif isinstance(item, (DataLoader, DataLoaderSide)): - res.append(self.prepare_data_loader(item)) - elif isinstance(item, torch.optim.Optimizer): - res.append(self.prepare_optimizer(item)) - else: - raise NotImplementedError() - return res - - def wait_for_everyone(self): - """ - Wait for all processes to synchronize. - """ - torch.distributed.barrier() - - def gather(self, tensor: torch.Tensor): - """ - Gather the tensor data. - - Args: - tensor (torch.Tensor): The tensor to be gathered. - - Returns: - The gathered tensor data. - """ - return gather(tensor) - - def backward(self, loss: torch.Tensor, **kwargs): - """ - Compute the gradients using backpropagation. - - Args: - loss (torch.Tensor): The loss tensor. - **kwargs: The additional keyword arguments. - """ - loss.backward(**kwargs) - -class HugAccelerator(Accelerator): - """ - A class to define the interface for Hugging Face accelerator. - - Methods: - set_device: A method to set the device. - prepare_data_loader: A method to prepare the data loader. - prepare_model: A method to prepare the model. - prepare_optimizer: A method to prepare the optimizer. - unwrap_model: A method to unwrap the model. - prepare: A method to prepare the inputs for training. - wait_for_everyone: A method to wait for all processes to synchronize. - gather: A method to gather the tensor data. - backward: A method to compute the gradients using backpropagation. - """ - - def __init__(self, **kwargs): - """ - Initialize the class with a dictionary of keyword arguments. - """ - super().__init__(**kwargs) - from .backend.accelerator import Accelerator - self._backbone = Accelerator() - - @property - def device(self): - """ - Get the device. - """ - return self._backbone.device - - def set_device(self, device: torch.device): - """ - Set the device. - - Args: - device (torch.device): The device to be set. - """ - assert isinstance(device, torch.device) - self._backbone.state.device = device - - def prepare_data_loader(self, loader): - """ - Prepare the data loader. - - Args: - loader: The data loader. - - Returns: - The prepared data loader. - """ - from accelerate.data_loader import DataLoaderShard, DataLoaderDispatcher - if isinstance(loader, (DataLoaderShard, DataLoaderDispatcher)): - warnings.warn('Duplicated prepare a same DataLoader twice, check your code.') - return loader - return self._backbone.prepare_data_loader(loader) - - def prepare_model(self, model): - """ - Prepare the model. - - Args: - model: The model. - - Returns: - The prepared model. - """ - return self._backbone.prepare_model(model) - - def prepare_optimizer(self, optimizer): - """ - Prepare the optimizer. - - Args: - optimizer: The optimizer. - - Returns: - The prepared optimizer. - """ - return self._backbone.prepare_optimizer(optimizer) - - def unwrap_model(self, model): - """ - Unwrap the model. - - Args: - model: The model. - - Returns: - The unwrapped model. - """ - return self._backbone.unwrap_model(model) - - def prepare(self, *args): - """ - Prepare the inputs for training. - - Args: - *args: The inputs. - - Returns: - The prepared inputs. - """ - return self._backbone.prepare(*args) - - def wait_for_everyone(self): - """ - Wait for all processes to synchronize. - """ - self._backbone.wait_for_everyone() - - def gather(self, tensor): - """ - Gather the tensor data. - - Args: - tensor: The tensor to be gathered. - - Returns: - The gathered tensor data. - """ - return self._backbone.gather(tensor) - - def backward(self, loss: torch.Tensor, **kwargs): - """ - Compute the gradients using backpropagation. - - Args: - loss (torch.Tensor): The loss tensor. - **kwargs: The additional keyword arguments. - """ - self._backbone.backward(loss, **kwargs) - +from lumo.trainer.backend.accelerator import HugAccelerator +from lumo.trainer.backend.base import Accelerator +from lumo.trainer.backend.horovod_accelerator import Horovod +from lumo.trainer.backend.original import TorchDist register = { - 'none': Accelerator, + 'original': TorchDist, 'accelerator': HugAccelerator, - 'deepspeed': None, - 'horovod': None, + 'horovod': Horovod, } diff --git a/src/lumo/trainer/backend/accelerator.py b/src/lumo/trainer/backend/accelerator.py index 5c64a75..ffa376b 100644 --- a/src/lumo/trainer/backend/accelerator.py +++ b/src/lumo/trainer/backend/accelerator.py @@ -1,5 +1,9 @@ +import warnings + +import torch from accelerate.accelerator import Accelerator as _Accelerator from accelerate.data_loader import prepare_data_loader +from lumo.trainer.backend.base import Accelerator as Base class Accelerator(_Accelerator): @@ -31,3 +35,136 @@ def prepare_data_loader(self, data_loader, **kwargs): rng_types=self.rng_types.copy(), dispatch_batches=self.dispatch_batches, ) + + +class HugAccelerator(Base): + """ + A class to define the interface for Hugging Face accelerator. + + Methods: + set_device: A method to set the device. + prepare_data_loader: A method to prepare the data loader. + prepare_model: A method to prepare the model. + prepare_optimizer: A method to prepare the optimizer. + unwrap_model: A method to unwrap the model. + prepare: A method to prepare the inputs for training. + wait_for_everyone: A method to wait for all processes to synchronize. + gather: A method to gather the tensor data. + backward: A method to compute the gradients using backpropagation. + """ + + def __init__(self, **kwargs): + """ + Initialize the class with a dictionary of keyword arguments. + """ + super().__init__(**kwargs) + self._backbone = Accelerator() + + @property + def device(self): + """ + Get the device. + """ + return self._backbone.device + + def set_device(self, device: torch.device): + """ + Set the device. + + Args: + device (torch.device): The device to be set. + """ + assert isinstance(device, torch.device) + self._backbone.state.device = device + + def prepare_data_loader(self, loader): + """ + Prepare the data loader. + + Args: + loader: The data loader. + + Returns: + The prepared data loader. + """ + from accelerate.data_loader import DataLoaderShard, DataLoaderDispatcher + if isinstance(loader, (DataLoaderShard, DataLoaderDispatcher)): + warnings.warn('Duplicated prepare a same DataLoader twice, check your code.') + return loader + return self._backbone.prepare_data_loader(loader) + + def prepare_model(self, model): + """ + Prepare the model. + + Args: + model: The model. + + Returns: + The prepared model. + """ + return self._backbone.prepare_model(model) + + def prepare_optimizer(self, optimizer): + """ + Prepare the optimizer. + + Args: + optimizer: The optimizer. + + Returns: + The prepared optimizer. + """ + return self._backbone.prepare_optimizer(optimizer) + + def unwrap_model(self, model): + """ + Unwrap the model. + + Args: + model: The model. + + Returns: + The unwrapped model. + """ + return self._backbone.unwrap_model(model) + + def prepare(self, *args): + """ + Prepare the inputs for training. + + Args: + *args: The inputs. + + Returns: + The prepared inputs. + """ + return self._backbone.prepare(*args) + + def wait_for_everyone(self): + """ + Wait for all processes to synchronize. + """ + self._backbone.wait_for_everyone() + + def gather(self, tensor): + """ + Gather the tensor data. + + Args: + tensor: The tensor to be gathered. + + Returns: + The gathered tensor data. + """ + return self._backbone.gather(tensor) + + def backward(self, loss: torch.Tensor, **kwargs): + """ + Compute the gradients using backpropagation. + + Args: + loss (torch.Tensor): The loss tensor. + **kwargs: The additional keyword arguments. + """ + self._backbone.backward(loss, **kwargs) diff --git a/src/lumo/trainer/backend/base.py b/src/lumo/trainer/backend/base.py new file mode 100644 index 0000000..1f870ee --- /dev/null +++ b/src/lumo/trainer/backend/base.py @@ -0,0 +1,147 @@ +import torch +from lumo import DataLoaderSide +from lumo.proc.dist import gather +from torch import nn +from torch.utils.data import DataLoader + + +class Accelerator: + """ + A class to define the interface for various types of accelerator. + + Attributes: + _prop (dict): A dictionary of keyword arguments. + + Methods: + device: A property method to get the device. + set_device: A method to set the device. + prepare_data_loader: A method to prepare the data loader. + prepare_model: A method to prepare the model. + prepare_optimizer: A method to prepare the optimizer. + unwrap_model: A method to unwrap the model. + prepare: A method to prepare the inputs for training. + wait_for_everyone: A method to wait for all processes to synchronize. + gather: A method to gather the tensor data. + backward: A method to compute the gradients using backpropagation. + """ + + def __init__(self, **kwargs): + """ + Initialize the class with a dictionary of keyword arguments. + """ + self._prop = kwargs + + @property + def device(self) -> torch.device: + """ + Get the device. + """ + return self._prop.get('device', None) + + def set_device(self, device: torch.device): + """ + Set the device. + + Args: + device (torch.device): The device to be set. + """ + assert isinstance(device, torch.device) + self._prop['device'] = device + + def prepare_data_loader(self, dataloader): + """ + Prepare the data loader. + + Args: + dataloader: The data loader. + + Returns: + The prepared data loader. + """ + return dataloader + + def prepare_model(self, model: torch.nn.Module): + """ + Prepare the model. + + Args: + model (torch.nn.Module): The model. + + Returns: + The prepared model. + """ + return model.to(self.device) + + def prepare_optimizer(self, optimizer: torch.optim.Optimizer): + """ + Prepare the optimizer. + + Args: + optimizer (torch.optim.Optimizer): The optimizer. + + Returns: + The prepared optimizer. + """ + return optimizer + + def unwrap_model(self, model): + """ + Unwrap the model. + + Args: + model: The model. + + Returns: + The unwrapped model. + """ + return model + + def prepare(self, *args): + """ + Prepare the inputs for training. + + Args: + *args: The inputs. + + Returns: + The prepared inputs. + """ + res = [] + for item in args: + if isinstance(item, nn.Module): + res.append(self.prepare_model(item)) + elif isinstance(item, (DataLoader, DataLoaderSide)): + res.append(self.prepare_data_loader(item)) + elif isinstance(item, torch.optim.Optimizer): + res.append(self.prepare_optimizer(item)) + else: + raise NotImplementedError() + return res + + def wait_for_everyone(self): + """ + Wait for all processes to synchronize. + """ + torch.distributed.barrier() + + def gather(self, tensor: torch.Tensor): + """ + Gather the tensor data. + + Args: + tensor (torch.Tensor): The tensor to be gathered. + + Returns: + The gathered tensor data. + """ + return gather(tensor) + + def backward(self, loss: torch.Tensor, **kwargs): + """ + Compute the gradients using backpropagation. + + Args: + loss (torch.Tensor): The loss tensor. + **kwargs: The additional keyword arguments. + """ + loss.backward(**kwargs) diff --git a/src/lumo/trainer/backend/horovod_accelerator.py b/src/lumo/trainer/backend/horovod_accelerator.py new file mode 100644 index 0000000..6b62db1 --- /dev/null +++ b/src/lumo/trainer/backend/horovod_accelerator.py @@ -0,0 +1,32 @@ +import torch +from lumo import DataLoaderSide +from lumo.proc.dist import gather +from torch import nn +from torch.utils.data import DataLoader +from .base import Accelerator + + +class Horovod(Accelerator): + """ + A class to define the interface for various types of accelerator. + + Attributes: + _prop (dict): A dictionary of keyword arguments. + + Methods: + device: A property method to get the device. + set_device: A method to set the device. + prepare_data_loader: A method to prepare the data loader. + prepare_model: A method to prepare the model. + prepare_optimizer: A method to prepare the optimizer. + unwrap_model: A method to unwrap the model. + prepare: A method to prepare the inputs for training. + wait_for_everyone: A method to wait for all processes to synchronize. + gather: A method to gather the tensor data. + backward: A method to compute the gradients using backpropagation. + """ + + def __init__(self, **kwargs): + super().__init__(**kwargs) + import horovod + diff --git a/src/lumo/trainer/backend/original.py b/src/lumo/trainer/backend/original.py new file mode 100644 index 0000000..8cb0adc --- /dev/null +++ b/src/lumo/trainer/backend/original.py @@ -0,0 +1,27 @@ +import torch +from lumo import DataLoaderSide +from lumo.proc.dist import gather +from torch import nn +from torch.utils.data import DataLoader +from .base import Accelerator + + +class TorchDist(Accelerator): + """ + A class to define the interface for various types of accelerator. + + Attributes: + _prop (dict): A dictionary of keyword arguments. + + Methods: + device: A property method to get the device. + set_device: A method to set the device. + prepare_data_loader: A method to prepare the data loader. + prepare_model: A method to prepare the model. + prepare_optimizer: A method to prepare the optimizer. + unwrap_model: A method to unwrap the model. + prepare: A method to prepare the inputs for training. + wait_for_everyone: A method to wait for all processes to synchronize. + gather: A method to gather the tensor data. + backward: A method to compute the gradients using backpropagation. + """ From b9ebaf87f1c11c82ec3197f9bc94f64b5212e1c3 Mon Sep 17 00:00:00 2001 From: sailist Date: Fri, 24 Mar 2023 16:44:12 +0800 Subject: [PATCH 09/22] Document: update --- README.ch.md | 1 + README.md | 1 + docs/source/tutorial/configuration.md | 45 ++++++ docs/source/tutorial/dataset_builder.md | 54 +++++++ .../tutorial/images/2023-03-24-15-57-11.png | Bin 0 -> 270377 bytes docs/source/tutorial/reproducibility.md | 147 ++++++++++++++++++ docs/source/tutorial/train_your_model.md | 8 + 7 files changed, 256 insertions(+) create mode 100644 docs/source/tutorial/configuration.md create mode 100644 docs/source/tutorial/dataset_builder.md create mode 100644 docs/source/tutorial/images/2023-03-24-15-57-11.png create mode 100644 docs/source/tutorial/reproducibility.md create mode 100644 docs/source/tutorial/train_your_model.md diff --git a/README.ch.md b/README.ch.md index a9b4e24..448bfd8 100644 --- a/README.ch.md +++ b/README.ch.md @@ -17,6 +17,7 @@ - 数据: 数据集构建流程抽象、组合多个 DataLoader、... - 分布式训练:同样支持多种训练加速框架,统一抽象,方便随时切换 - 更多工具类... +- 尽可能多的支持现代 IDE 的自动补全 ![lumo-framework](./images/lumo-intro.png) diff --git a/README.md b/README.md index 78ad25c..f2922f3 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ and focuses on enhancing the experience of deep learning practitioners. - **Distributed Training:** Also supports multiple training acceleration frameworks, unified abstraction, and easy switching at any time. - More utilities... +- **Type Hint:** Support as much as possible for modern IDE's auto-completion. ![lumo-framework](./images/lumo-intro.png) diff --git a/docs/source/tutorial/configuration.md b/docs/source/tutorial/configuration.md new file mode 100644 index 0000000..1503a8e --- /dev/null +++ b/docs/source/tutorial/configuration.md @@ -0,0 +1,45 @@ +# Configuration + +lumo 提供了多级作用域的配置,这包括: + +``` +~/.lumorc.json -> user-level +/.lumorc.json -> repo-level, private +/.lumorc.public.json -> repo-level, public +``` + +所有的配置会在运行时加载到 `lumo.glob` 中,用以全局设置: + +``` +from lumo import glob + +glob['xxx'] +``` + +## 配置和超参数的区别 + +在 lumo 中,配置大多用于和实验完全无关,但跟电脑环境和 lumo 行为有关的内容,如数据集的存放路径、GitHub 的 access token 等。 `lumo` 中所有支持的可选行为都可以通过更改 glob 的配置进行控制,以下是目前支持变更的配置项: + +``` +github_access_token -> 代替 exp.backup() 方法的 access_token 参数 + +一些初始路径 +exp_root +db_root +progress_root +metric_root +cache_dir +blob_root + +timezone -> 决定 lumo 使用的 timezone,默认是 'Asia/Shanghai' + +TRAINER_LOGGER_STDIO -> Logger 是否向标准输出流输出内容。 + +dev_branch -> 版本控制时代码快照的保存分支,默认是 lumo_experiments + + +# ExpHook 是否加载的行为控制,该配置项没有hard code,而是通过检查 `f"HOOK_{ExpHook.__class__.__name__.upper()}"` 来判断的,如: +HOOK_LOCKFILE -> lumo.exp.exphook.LockFile +HOOK_RECORDABORT -> lumo.exp.exphook.RecordAbort +HOOK_GITCOMMIT -> lumo.exp.exphook.GitCommit +``` diff --git a/docs/source/tutorial/dataset_builder.md b/docs/source/tutorial/dataset_builder.md new file mode 100644 index 0000000..03885db --- /dev/null +++ b/docs/source/tutorial/dataset_builder.md @@ -0,0 +1,54 @@ +# DatasetBuilder + +lumo 设计了 `~lumo.DatasetBuilder` 用于提供一个统一的构建数据集的接口。可以在大多数情况下,减少重复的数据集形态设计。 + +以 CIFAR10 数据集为例,如果需要数据集的图片输出两次增广,那么要么要更改 Dataset 类,要么重写 transform 函数: + +```python +class MyCIFAR(CIFAR10): + ... + + def __getitem(self,index): + sample = self.data[index] + label = self.target[index] + return self.transform1(sample), self.transform2(sample), label + + +# or + +def two_transform(sample): + ... + return transform1(sample), transform2(sample) +``` + +在多个数据集都面临这种更改时候,这种重写的方式会消耗较多的精力。尤其是在输出形式还不确定,可能面临频繁更改的时候。 + +对此,lumo 通过 `DatasetBuilder` 提供了一个通用的流式的解决方案,你只需要按标准形式准备好原始数据,和标准的 one-to-one 的增广函数: + +```python +... + +source = CIFAR10() +transform1 = ... +transform2 = ... +``` + +随后,任意的输出形式均可以通过 `DatasetBuilder` 来定义 + +```python +from lumo import DatasetBuilder + +ds = ( + DatasetBuilder() + # 定义输入流 + .add_input('xs', source.data) + .add_input('ys', source.targets) + # 定义输出流 + .add_output('xs','xs1',transform1) + .add_output('xs','xs2',transform2) + .add_output('ys','ys') +) + +print(ds[0]) +>>> {'xs1': ..., 'xs2': ..., "ys": ...} +``` diff --git a/docs/source/tutorial/images/2023-03-24-15-57-11.png b/docs/source/tutorial/images/2023-03-24-15-57-11.png new file mode 100644 index 0000000000000000000000000000000000000000..3a74bf154329da9b77f9b373468676c9166f4421 GIT binary patch literal 270377 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%0De7m(qIr4yLMGO=uljO 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�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 + - + - + +- + - + - + +- + - + - + +``` + +## 版本控制 + +`Experiment` 的生命周期包括 start/progress/end,在每个生命周期,都设置了一系列 `ExpHook` 类来执行部分操作。其中,负责 git 提交的是 `~lumo.exp.exphook.GitCommit`,会在 `on_start` 时检查文件的更改,如果存在,则向 `lumo_experiments` 分支提交一份当前的文件快照。当前代码所对应的 commit 等信息会全部记录到该 `Experiment` 实例的 `info_dir` 中。可以通过 `exp.properties['git']` 查看。 + +## 参数记录 + +参数记录包括超参数、程序执行参数等启动时参数,Metric 等运行时和运行后参数以及执行时间等元信息。除了超参数外,所提到的全部信息都会通过 `Experiment` 在 `.start()` 时自动记录。而实验的超参数,则可以通过`exp.dump_info('params',params_dict)` 自行记录。 + +> 使用 lumo.Trainer 训练时,使用到的超参数会自动记录到 `params` key 中。 + +对于 Metric,`Experiment` 实例可以通过 `.dump_metric` 和 `.dump_metrics()` 进行记录,如: + +```python +max_acc = exp.dump_metric("acc",acc, "cls_acc", cls_acc) +``` + +# Retrieve + +`Watch` 会将所有实验的信息进行整合,从而允许用户全盘检索某次实验。 + +```python +from lumo import Watcher, Experiment + +w = Watcher() +df = w.load() # all experiments + +exp = Experiment.from_cache(df.iloc[0].to_dict()) +``` + +对某个已知 `test_name` 的实验,可以通过 `retrieve` 方法直接获取 `Experiment` 实例: + +```python +w.retrieve('230306.012.d5t') +>>> Experiment(info_dir=".../.lumo/experiments/moco.mocoexp/230306.012.d5t") +``` + +## 可视化面板 + +一个固定样式的面板永远不能满足所有人的需要,所以,lumo 基于 pandas 和 panel 提供了动态面板,除了固定的几个部分外,其余所有样式均由使用者自行添加: + +```python +from lumo import Watcher +w = Watcher() +df = w.load() + +... filter operations ... + +new_df = ... + +w.panel(new_df) +``` + +![](images/2023-03-24-15-57-11.png) + +## 重复实验 + +重复实验主要存在于两个场景: + +- 为了验证结果稳定性而使用其他随机种子重新以相同参数运行实验 +- 在实验中途因为显存、内存等原因实验出错需要以类似参数运行实验 + +尤其是在扫参时,如果仅有一两个实验出现了问题,直接基于日志观察,很难快速的知道失败的实验的运行参数。lumo 提供了 `rerun` 这一命令行参数,对于通过可视化面板或其他方式得到的失败的实验 ID (test_name),可以直接通过如下的命令重跑,并重新指定参数: + +```bash +lumo rerun 230315.017.bbt --device=0 +lumo rerun 230315.012.29t --seed=1 +``` + +`rerun`除了保证运行参数完全可控,还会在原实验和新实验之间建立一个双向链接,用于提示实验的重复次数等,可以分别在原实验和新实验的 `rerun` 参数中观察到: + +```python +exp.properties['rerun'] +>>> {'from': '230310.002.f5t', 'repeat': 1} + +exp2.properties['rerun'] +>>> {'rerun_at': {'230311.004.87t': True}} +``` + +## 备份 + +`Experiment` 额外提供了备份方法,可以向不同的途径记录实验。 + +### GitHub + +```python +from lumo import glob +glob['github_access_token'] = '...' # or store in .lumorc.json +exp.backup('github',repo='pytorch-lumo/lumo') +``` + +```python +from lumo import glob +exp.backup('github',repo='pytorch-lumo/lumo', access_token='...') +``` + +### 本地/远程备份 + +- [ ] TODO + +### 代码快照 + +- [ ] TODO + +# 其他 + +## 生命周期 + +所有经过 `Experiment` 对实验信息的改动都会自动触发一次变更记录,会在 `exp.heartbeat_fn` 位置创建一个文件。该文件会被 Watcher 在 `.load()` 的时候检测到,并增量更新该实验的内容。`Experiment` 实例在创建时,如果是通过 `.from_cache()` 创建的,也会检测该文件是否存在,如果存在,则从原目录中重新加载,而忽略 cache 的内容。 + +``` +- progress + - + - {test-1}.hb + - {test-1}.pid +``` + +## ExpHook + +目前支持的 ExpHook 有: + +- `~lumo.exp.exphook.LastCmd` : 在项目根目录(或运行目录)记录运行命令的 history。 +- `~lumo.exp.exphook.RecordAbort` : 在项目抛出异常时在 `exp.properties["exception"]` 记录异常内容。 +- `~lumo.exp.exphook.GitCommit` : 在每次实验开始时保存实验快照,并记录 commit 信息到 `exp.properties['git']` +- `~lumo.exp.exphook.LockFile` : 在每次实验开始时保存相关库的版本信息,记录到 `exp.properties['lock']` diff --git a/docs/source/tutorial/train_your_model.md b/docs/source/tutorial/train_your_model.md new file mode 100644 index 0000000..9c19406 --- /dev/null +++ b/docs/source/tutorial/train_your_model.md @@ -0,0 +1,8 @@ +# Train Deep Learning Experiments + + +## Datasets + + + +## From c34ac5308d46b56028315b6e6cc6c520f647e5d7 Mon Sep 17 00:00:00 2001 From: sailist Date: Sat, 25 Mar 2023 11:58:02 +0800 Subject: [PATCH 10/22] Params: support multiple config file input --- src/lumo/core/params.py | 20 ++++++++++++++------ tests/core/test_params.py | 19 ++++++++++++++++++- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/lumo/core/params.py b/src/lumo/core/params.py index c3384f9..5e0b021 100644 --- a/src/lumo/core/params.py +++ b/src/lumo/core/params.py @@ -8,7 +8,7 @@ import fire from joblib import hash -from omegaconf import DictConfig, OmegaConf, DictKeyType +from omegaconf import DictConfig, OmegaConf, DictKeyType, ListConfig from omegaconf._utils import _ensure_container # from .attr import safe_update_dict, set_item_iterative @@ -393,11 +393,19 @@ def func(*args, **kwargs): config = kwargs.get('config') if config is None: config = kwargs.get('c') - if config is not None and isinstance(config, str) and os.path.exists(config): - if config.endswith('yaml') or config.endswith('yml'): - self.from_yaml(config) - elif config.endswith('json'): - self.from_json(config) + + if config is not None: + if isinstance(config, str): + config = config.split(',') + if isinstance(config, (list, ListConfig)): + for config_fn in config: + print('get', config_fn, 'done') + if not (isinstance(config_fn, str) and os.path.exists(config_fn)): + continue + if config_fn.endswith('yaml') or config_fn.endswith('yml'): + self.from_yaml(config_fn) + elif config_fn.endswith('json'): + self.from_json(config_fn) dic = BaseParams() for k, v in kwargs.items(): diff --git a/tests/core/test_params.py b/tests/core/test_params.py index fa449f7..c264f7c 100644 --- a/tests/core/test_params.py +++ b/tests/core/test_params.py @@ -76,12 +76,29 @@ def test_json(): def test_yaml(): res = get_res() fn = tempfile.mktemp('.yaml') + res.yaml = 3 res.a = 3 res.to_yaml(fn) res.from_args([f'--config={fn}', '--a=2']) assert res.a == 2 res.from_args([f'--config={fn}']) - assert res.a == 3 + assert res.yaml == 3 + + +def test_multiple_config(): + json_fn = tempfile.mktemp(".json") + with open(json_fn, 'w') as w: + json.dump({'json': {'a': 2}}, w) + + yaml_pm = BaseParams() + yaml_fn = tempfile.mktemp('.yaml') + yaml_pm.yaml = 3 + yaml_pm.to_yaml(yaml_fn) + + res = MyParams() + res.from_args([f'--config={json_fn},{yaml_fn}']) + assert res.yaml == 3 + assert res.json["a"] == 2 def test_copy(): From 4fd3c74d571af618e15be49c84b26875e969cea5 Mon Sep 17 00:00:00 2001 From: sailist Date: Sat, 25 Mar 2023 12:09:00 +0800 Subject: [PATCH 11/22] Document: Update --- README.md | 8 +- docs/source/index.rst | 12 +- docs/source/others/why_lumo.md | 0 docs/source/tutorial/configuration.md | 101 ++++++-- docs/source/tutorial/dataset_builder.md | 18 +- docs/source/tutorial/reproducibility.md | 223 +++++++++++------- docs/source/tutorial/train_your_model.md | 8 - docs/source/tutorial_zh/configuration.md | 40 ++++ docs/source/tutorial_zh/dataset_builder.md | 54 +++++ .../images/2023-03-24-15-57-11.png | Bin 0 -> 270377 bytes docs/source/tutorial_zh/reproducibility.md | 147 ++++++++++++ 11 files changed, 477 insertions(+), 134 deletions(-) create mode 100644 docs/source/others/why_lumo.md delete mode 100644 docs/source/tutorial/train_your_model.md create mode 100644 docs/source/tutorial_zh/configuration.md create mode 100644 docs/source/tutorial_zh/dataset_builder.md create mode 100644 docs/source/tutorial_zh/images/2023-03-24-15-57-11.png create mode 100644 docs/source/tutorial_zh/reproducibility.md diff --git a/README.md b/README.md index f2922f3..b84e36f 100644 --- a/README.md +++ b/README.md @@ -66,9 +66,9 @@ Here are two classic scenarios: ## :small_orange_diamond: Embedding into Existing Projects -For existing projects, you can quickly embed Lumo by following these steps: +For existing projects, you can quickly embed `lumo` by following these steps: -- Import Lumo and initialize Logger and Experiment: +- Import `lumo` and initialize Logger and Experiment: ```python import random @@ -118,8 +118,8 @@ exp.end() ## :small_orange_diamond: Building from Scratch -If you want to start a new deep learning experiment from scratch, you can use Lumo to accelerate your code development. -Below are examples of Lumo training at different scales: +If you want to start a new deep learning experiment from scratch, you can use `lumo` to accelerate your code development. +Below are examples of `lumo` training at different scales: one-fine training: diff --git a/docs/source/index.rst b/docs/source/index.rst index 34e5105..6487542 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -7,17 +7,23 @@ Welcome to lumo's documentation! ================================ .. toctree:: - :maxdepth: 2 + :maxdepth: 1 :caption: Tutorial - :glob: - tutorial/* + tutorial/reproducibility.md + tutorial/configuration.md + tutorial/dataset_builder.md + + + .. toctree:: :maxdepth: 2 :caption: Development + + Indices and tables ================== diff --git a/docs/source/others/why_lumo.md b/docs/source/others/why_lumo.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/source/tutorial/configuration.md b/docs/source/tutorial/configuration.md index 1503a8e..6620484 100644 --- a/docs/source/tutorial/configuration.md +++ b/docs/source/tutorial/configuration.md @@ -1,45 +1,94 @@ -# Configuration +# Runtime Configuration and Params -lumo 提供了多级作用域的配置,这包括: +## Params +`~lumo.Params`is used to specify the configuration required for the current experiment. In addition to defining parameters that support autocompletion, it also supports command-line parameters, inheritance, and reading from multiple configuration files. + +The simplest usage is as follows: + +```python +from lumo import Params + +params = Params() +params.lr = 1e-3 +params.dataset = 'cifar10' +params.from_args() # python main.py --dataset=cifar100 + +print(params.dataset) +>>> "cifar100" ``` -~/.lumorc.json -> user-level -/.lumorc.json -> repo-level, private -/.lumorc.public.json -> repo-level, public -``` -所有的配置会在运行时加载到 `lumo.glob` 中,用以全局设置: +Limit the value of parameters: + +```python +params.dataset = params.choice('cifar10', 'cifar100') +print(params.dataset) +>>> "cifar10" # by default is the first value +params.dataset = "imagenet" +>>> raise BoundCheckError: value of param 'dataset' should in values ('cifar10', +'cifar100'), but got imagenet ``` -from lumo import glob -glob['xxx'] +Read from other locations: + +```python +params.from_json("*.json") +params.from_yaml("*.yaml") +params.from_yaml("*.yml") +params.from_dict({}) ``` -## 配置和超参数的区别 +`params.config`or`params.c`is a built-in reserved parameter. When the values of these two variables are strings and the path judgment is a yaml or json file or file list, the configuration is read from the corresponding position: -在 lumo 中,配置大多用于和实验完全无关,但跟电脑环境和 lumo 行为有关的内容,如数据集的存放路径、GitHub 的 access token 等。 `lumo` 中所有支持的可选行为都可以通过更改 glob 的配置进行控制,以下是目前支持变更的配置项: +```json +# cfg.json +{ + "dataset": "cifar100" +} +``` +```python +params.from_args(['--c','cfg.json']) +print(params.dataset) +>>> "cifar100" ``` -github_access_token -> 代替 exp.backup() 方法的 access_token 参数 -一些初始路径 -exp_root -db_root -progress_root -metric_root -cache_dir -blob_root +## Configuration -timezone -> 决定 lumo 使用的 timezone,默认是 'Asia/Shanghai' +`lumo` provides a multi-level configuration system, including three file locations: -TRAINER_LOGGER_STDIO -> Logger 是否向标准输出流输出内容。 +```arduino +~/.lumorc.json -> user-level +/.lumorc.json -> repo-level, private +/.lumorc.public.json -> repo-level, public +``` -dev_branch -> 版本控制时代码快照的保存分支,默认是 lumo_experiments +All configurations are loaded into`lumo.glob`at runtime for global settings: +```css +from lumo import glob -# ExpHook 是否加载的行为控制,该配置项没有hard code,而是通过检查 `f"HOOK_{ExpHook.__class__.__name__.upper()}"` 来判断的,如: -HOOK_LOCKFILE -> lumo.exp.exphook.LockFile -HOOK_RECORDABORT -> lumo.exp.exphook.RecordAbort -HOOK_GITCOMMIT -> lumo.exp.exphook.GitCommit +glob['xxx'] ``` + +## Difference between Configuration and Hyperparameters + +In `lumo`, configurations are mostly used for non-experiment-related content that is related to the computer environment and `lumo` behavior, such as the location of the dataset, GitHub access tokens, etc. All supported optional behaviors in`lumo`can be controlled by modifying the configuration in`glob`. The following are the currently supported configurable items: + +| Configuration | Description | +| --- | --- | +| github_access_token | Replaces the access_token parameter of the exp.backup() method. | +| exp_root | One of several initial paths. | +| db_root | One of several initial paths. | +| progress_root | One of several initial paths. | +| metric_root | One of several initial paths. | +| cache_dir | One of several initial paths. | +| blob_root | One of several initial paths. | +| timezone | Determines the timezone used by lumo. Default is 'Asia/Shanghai'. | +| TRAINER_LOGGER_STDIO | Controls whether the Logger outputs to the standard output stream. | +| dev_branch | The branch used for saving code snapshots during version control. Default is 'lumo_experiments'. | +| HOOK_LOCKFILE | Behavior control for loading LockFile ExpHook. | +| HOOK_RECORDABORT | Behavior control for loading RecordAbort ExpHook. | +| HOOK_GITCOMMIT | Behavior control for loading GitCommit ExpHook. | + diff --git a/docs/source/tutorial/dataset_builder.md b/docs/source/tutorial/dataset_builder.md index 03885db..a6e9219 100644 --- a/docs/source/tutorial/dataset_builder.md +++ b/docs/source/tutorial/dataset_builder.md @@ -1,8 +1,8 @@ -# DatasetBuilder +# Build your Dataset Easily -lumo 设计了 `~lumo.DatasetBuilder` 用于提供一个统一的构建数据集的接口。可以在大多数情况下,减少重复的数据集形态设计。 +lumo has designed`~lumo.DatasetBuilder`to provide a unified interface for constructing datasets. This can greatly reduce repetitive dataset design in most cases. -以 CIFAR10 数据集为例,如果需要数据集的图片输出两次增广,那么要么要更改 Dataset 类,要么重写 transform 函数: +Taking the CIFAR10 dataset as an example, if the dataset requires images to be output with two augmentations, either the Dataset class needs to be modified or the transform function needs to be rewritten: ```python class MyCIFAR(CIFAR10): @@ -21,9 +21,9 @@ def two_transform(sample): return transform1(sample), transform2(sample) ``` -在多个数据集都面临这种更改时候,这种重写的方式会消耗较多的精力。尤其是在输出形式还不确定,可能面临频繁更改的时候。 +When facing such changes in multiple datasets, this rewriting method can be time-consuming. Especially when the output format is not yet certain and may be subject to frequent changes. -对此,lumo 通过 `DatasetBuilder` 提供了一个通用的流式的解决方案,你只需要按标准形式准备好原始数据,和标准的 one-to-one 的增广函数: +To solve this, lumo provides a universal and streaming solution through`DatasetBuilder`. You only need to prepare the raw data in the standard format and the standard one-to-one augmentation functions: ```python ... @@ -33,18 +33,18 @@ transform1 = ... transform2 = ... ``` -随后,任意的输出形式均可以通过 `DatasetBuilder` 来定义 +Then, any output format can be defined through`DatasetBuilder`: ```python from lumo import DatasetBuilder ds = ( DatasetBuilder() - # 定义输入流 + # Define input stream .add_input('xs', source.data) .add_input('ys', source.targets) - # 定义输出流 - .add_output('xs','xs1',transform1) + # Define output stream + .add_output('xs','xs1',transform1) .add_output('xs','xs2',transform2) .add_output('ys','ys') ) diff --git a/docs/source/tutorial/reproducibility.md b/docs/source/tutorial/reproducibility.md index da0152e..075b966 100644 --- a/docs/source/tutorial/reproducibility.md +++ b/docs/source/tutorial/reproducibility.md @@ -1,12 +1,13 @@ -# Reproducibility +# Experiment management -在 lumo 中,`Experiment` 为保证实验可复现提供了足够的保障。具体的,Experiment 从路径管理、版本控制、参数记录、备份四个角度来保证。并通过可视化面板、命令行接口等简化了操作门槛。 +In `lumo`, the`Experiment`class provides sufficient guarantees to ensure experiment reproducibility. Specifically,`Experiment`guarantees reproducibility from four perspectives: path management, version control, parameter recording, and backup. It also simplifies the operation threshold through visual panels, command-line interfaces, and other methods. -## 路径管理 +## Path Management -为了保证路径不重复,`Experiment` 会为每次实验运行分配一个唯一实验 ID (`test_name`)。同时,`Experiment` 提供三种不同类型的数据存储路径,分别用于存储信息(info_dir)、二进制文件(blob_dir)、临时文件(cache_dir),三者的路径关系如下: +To ensure that paths are not duplicated,`Experiment`assigns a unique experiment ID (`test_name`) to each experiment run. At the same time,`Experiment`provides three different types of data storage paths for storing information (info_dir), binary files (blob_dir), and temporary files (cache_dir), with the following path relationships: -``` + +```markdown - - - @@ -18,28 +19,144 @@ - - - - ``` +## Version Control -## 版本控制 +The lifecycle of`Experiment`includes start/progress/end, and a series of`ExpHook`classes are set up to perform partial operations at each lifecycle stage. Among them,`~lumo.exp.exphook.GitCommit`is responsible for git commit, which checks for file changes at`on_start`and submits a snapshot of the current file to the`lumo_experiments`branch if changes exist. The commit information corresponding to the current code is recorded in the`info_dir`of the`Experiment`instance and can be viewed through`exp.properties['git']`. -`Experiment` 的生命周期包括 start/progress/end,在每个生命周期,都设置了一系列 `ExpHook` 类来执行部分操作。其中,负责 git 提交的是 `~lumo.exp.exphook.GitCommit`,会在 `on_start` 时检查文件的更改,如果存在,则向 `lumo_experiments` 分支提交一份当前的文件快照。当前代码所对应的 commit 等信息会全部记录到该 `Experiment` 实例的 `info_dir` 中。可以通过 `exp.properties['git']` 查看。 +## Information Recording -## 参数记录 +Information recording includes startup parameters such as hyperparameters and program execution parameters, runtime and post-run parameters such as Metric, execution time, and other metadata. All information mentioned except for hyperparameters is automatically recorded by`Experiment`at`.start()`. The hyperparameters of the experiment can be recorded by`exp.dump_info('params', params_dict)`. -参数记录包括超参数、程序执行参数等启动时参数,Metric 等运行时和运行后参数以及执行时间等元信息。除了超参数外,所提到的全部信息都会通过 `Experiment` 在 `.start()` 时自动记录。而实验的超参数,则可以通过`exp.dump_info('params',params_dict)` 自行记录。 +> When using`lumo.Trainer`for training, hyperparameters used are automatically recorded in the`params`key. -> 使用 lumo.Trainer 训练时,使用到的超参数会自动记录到 `params` key 中。 -对于 Metric,`Experiment` 实例可以通过 `.dump_metric` 和 `.dump_metrics()` 进行记录,如: +For Metric, the`Experiment`instance can be recorded using`.dump_metric`and`.dump_metrics()`, for example: + ```python max_acc = exp.dump_metric("acc",acc, "cls_acc", cls_acc) ``` -# Retrieve +Here shows an example in `exp.properties` + +```python +{'agent': nan, + 'backup': {'23-03-17-161847': {'backend': 'github', + 'number': 4, + 'repo': 'pytorch-lumo/image-classification'}}, + 'deprecated': nan, + 'exception': nan, + 'execute': {'cwd': '~/python/image-classification-private', + 'exec_argv': ['train_ssl.py', + 'train_ssl.py', + '--module=simclr', + '--device=2', + '--config=config/ssl/simclr/cifar100.yaml', + '--model=wrn282', + '--scan=ssl-2023.02.28'], + 'exec_bin': '~/miniconda3/bin/python3', + 'exec_file': 'train_ssl.py', + 'repo': '~/python/image-classification-private'}, + 'exp_name': 'simclr.simclrexp', + 'git': {'commit': '294ccdac', + 'dep_hash': '404fc6044b2119d56a5e8b92ac02fc1c', + 'repo': '~/python/image-classification-private'}, + 'hooks': {'Diary': {'loaded': True, 'msg': ''}, + 'FinalReport': {'loaded': True, 'msg': ''}, + 'GitCommit': {'loaded': True, 'msg': ''}, + 'LastCmd': {'loaded': True, 'msg': ''}, + 'LockFile': {'loaded': True, 'msg': ''}, + 'RecordAbort': {'loaded': True, 'msg': ''}}, + 'lock': {'accelerate': '0.16.0', + 'decorator': '5.1.1', + 'fire': '0.5.0', + 'hydra': '1.3.1', + 'joblib': '1.2.0', + 'lumo': '0.15.0', + 'numpy': '1.24.2', + 'omegaconf': '2.3.0', + 'psutil': '5.9.4', + 'torch': '1.8.1+cu101', + 'torch.version.cuda': '10.1'}, + 'note': '', + 'params': {'apply_mixco': False, + 'apply_unmix': False, + 'config': 'config/ssl/simclr/cifar100.yaml', + 'dataset': 'cifar100', + 'detach_cls': True, + 'device': 2, + 'ema': True, + 'ema_alpha': 0.99, + 'epoch': 1000, + 'eval': {'batch_size': 512, + 'num_workers': 8, + 'pin_memory': True, + 'shuffle': True}, + 'feature_dim': 128, + 'hidden_feature_size': 128, + 'knn': True, + 'knn_k': 200, + 'knn_t': 0.1, + 'linear_eval': False, + 'lr_decay_end': 0.0005, + 'method': 'simclr', + 'model': 'wrn282', + 'module': 'simclr', + 'more_sample': True, + 'n_classes': 100, + 'optim': {'lr': 0.06, + 'momentum': 0.9, + 'name': 'SGD', + 'weight_decay': 0.0005}, + 'pretrain_path': None, + 'scan': 'ssl-2023.02.28', + 'seed': 1, + 'semi_eval': False, + 'stl10_unlabeled': True, + 'temperature': 0.1, + 'test': {'batch_size': 512, + 'num_workers': 8, + 'pin_memory': True, + 'shuffle': False}, + 'train': {'batch_size': 512, + 'num_workers': 8, + 'pin_memory': True, + 'shuffle': True}, + 'train_ending': 10, + 'train_linear': True, + 'train_strategy': 'ending', + 'warmup_epochs': 0, + 'warmup_from': 0.01, + 'with_bn': False}, + 'pinfo': {'hash': '62ee6de98b381872e200e82901ad51f7', + 'obj': {'argv': ['~/miniconda3/bin/python3', + 'train_ssl.py', + 'train_ssl.py', + '--module=simclr', + '--device=2', + '--config=config/ssl/simclr/cifar100.yaml', + '--model=wrn282', + '--scan=ssl-2023.02.28'], + 'pid': 27687, + 'pname': 'python3', + 'pstart': 1678763482.5}, + 'pid': 27687}, + 'progress': {'finished': False, + 'last_edit_time': '23-03-14-212932', + 'ratio': 1.0, + 'start': '23-03-14-111124', + 'update_from': None}, + 'rerun': {'from': '230313.015.99t', 'repeat': 1}, + 'test_name': '230314.000.a3t', + ... + } +``` + +# Retrieve Experiment + +`Watch`consolidates information for all experiments, allowing users to search for a specific experiment. -`Watch` 会将所有实验的信息进行整合,从而允许用户全盘检索某次实验。 ```python from lumo import Watcher, Experiment @@ -49,17 +166,17 @@ df = w.load() # all experiments exp = Experiment.from_cache(df.iloc[0].to_dict()) ``` +For a known experiment with`test_name`, the`Experiment`instance can be directly retrieved using the`retrieve`method: -对某个已知 `test_name` 的实验,可以通过 `retrieve` 方法直接获取 `Experiment` 实例: ```python w.retrieve('230306.012.d5t') >>> Experiment(info_dir=".../.lumo/experiments/moco.mocoexp/230306.012.d5t") ``` +## Visual Panel -## 可视化面板 +A fixed-style panel can never satisfy everyone's needs. Therefore, `lumo` provides dynamic panels based on pandas and panel, with all styles except for a few fixed parts added by the user: -一个固定样式的面板永远不能满足所有人的需要,所以,lumo 基于 pandas 和 panel 提供了动态面板,除了固定的几个部分外,其余所有样式均由使用者自行添加: ```python from lumo import Watcher @@ -72,76 +189,14 @@ new_df = ... w.panel(new_df) ``` - ![](images/2023-03-24-15-57-11.png) -## 重复实验 - -重复实验主要存在于两个场景: - -- 为了验证结果稳定性而使用其他随机种子重新以相同参数运行实验 -- 在实验中途因为显存、内存等原因实验出错需要以类似参数运行实验 - -尤其是在扫参时,如果仅有一两个实验出现了问题,直接基于日志观察,很难快速的知道失败的实验的运行参数。lumo 提供了 `rerun` 这一命令行参数,对于通过可视化面板或其他方式得到的失败的实验 ID (test_name),可以直接通过如下的命令重跑,并重新指定参数: - -```bash -lumo rerun 230315.017.bbt --device=0 -lumo rerun 230315.012.29t --seed=1 -``` - -`rerun`除了保证运行参数完全可控,还会在原实验和新实验之间建立一个双向链接,用于提示实验的重复次数等,可以分别在原实验和新实验的 `rerun` 参数中观察到: - -```python -exp.properties['rerun'] ->>> {'from': '230310.002.f5t', 'repeat': 1} - -exp2.properties['rerun'] ->>> {'rerun_at': {'230311.004.87t': True}} -``` +## Repetitive Experiment -## 备份 - -`Experiment` 额外提供了备份方法,可以向不同的途径记录实验。 - -### GitHub - -```python -from lumo import glob -glob['github_access_token'] = '...' # or store in .lumorc.json -exp.backup('github',repo='pytorch-lumo/lumo') -``` - -```python -from lumo import glob -exp.backup('github',repo='pytorch-lumo/lumo', access_token='...') -``` - -### 本地/远程备份 - -- [ ] TODO - -### 代码快照 - -- [ ] TODO - -# 其他 - -## 生命周期 - -所有经过 `Experiment` 对实验信息的改动都会自动触发一次变更记录,会在 `exp.heartbeat_fn` 位置创建一个文件。该文件会被 Watcher 在 `.load()` 的时候检测到,并增量更新该实验的内容。`Experiment` 实例在创建时,如果是通过 `.from_cache()` 创建的,也会检测该文件是否存在,如果存在,则从原目录中重新加载,而忽略 cache 的内容。 - -``` -- progress - - - - {test-1}.hb - - {test-1}.pid -``` +Repetitive experiments mainly occur in two scenarios: -## ExpHook +- To verify the stability of the results, rerun the experiment with other random seeds and the same parameters. +- In the middle of the experiment, due to memory, disk space, or other reasons, the experiment failed and needs to be rerun with similar parameters. -目前支持的 ExpHook 有: +Especially when scanning parameters, if only -- `~lumo.exp.exphook.LastCmd` : 在项目根目录(或运行目录)记录运行命令的 history。 -- `~lumo.exp.exphook.RecordAbort` : 在项目抛出异常时在 `exp.properties["exception"]` 记录异常内容。 -- `~lumo.exp.exphook.GitCommit` : 在每次实验开始时保存实验快照,并记录 commit 信息到 `exp.properties['git']` -- `~lumo.exp.exphook.LockFile` : 在每次实验开始时保存相关库的版本信息,记录到 `exp.properties['lock']` diff --git a/docs/source/tutorial/train_your_model.md b/docs/source/tutorial/train_your_model.md deleted file mode 100644 index 9c19406..0000000 --- a/docs/source/tutorial/train_your_model.md +++ /dev/null @@ -1,8 +0,0 @@ -# Train Deep Learning Experiments - - -## Datasets - - - -## diff --git a/docs/source/tutorial_zh/configuration.md b/docs/source/tutorial_zh/configuration.md new file mode 100644 index 0000000..992429b --- /dev/null +++ b/docs/source/tutorial_zh/configuration.md @@ -0,0 +1,40 @@ + + +# Configuration + +lumo 提供了多级作用域的配置,这包括: + +``` +~/.lumorc.json -> user-level +/.lumorc.json -> repo-level, private +/.lumorc.public.json -> repo-level, public +``` + +所有的配置会在运行时加载到 `lumo.glob` 中,用以全局设置: + +``` +from lumo import glob + +glob['xxx'] +``` + +## 配置和超参数的区别 + +在 lumo 中,配置大多用于和实验完全无关,但跟电脑环境和 lumo 行为有关的内容,如数据集的存放路径、GitHub 的 access token 等。 `lumo` 中所有支持的可选行为都可以通过更改 glob 的配置进行控制,以下是目前支持变更的配置项: + +| 配置项 | 描述 | +| --- | --- | +| github_access_token | 代替 exp.backup() 方法的 access_token 参数。 | +| exp_root | 一些初始路径之一。 | +| db_root | 一些初始路径之一。 | +| progress_root | 一些初始路径之一。 | +| metric_root | 一些初始路径之一。 | +| cache_dir | 一些初始路径之一。 | +| blob_root | 一些初始路径之一。 | +| timezone | 决定 lumo 使用的时区,默认为 'Asia/Shanghai'。 | +| TRAINER_LOGGER_STDIO | 控制 Logger 是否向标准输出流输出内容。 | +| dev_branch | 版本控制时代码快照的保存分支,默认为 'lumo_experiments'。 | +| HOOK_LOCKFILE | 控制加载 LockFile ExpHook 的行为。 | +| HOOK_RECORDABORT | 控制加载 RecordAbort ExpHook 的行为。 | +| HOOK_GITCOMMIT | 控制加载 GitCommit ExpHook 的行为。 | + diff --git a/docs/source/tutorial_zh/dataset_builder.md b/docs/source/tutorial_zh/dataset_builder.md new file mode 100644 index 0000000..03885db --- /dev/null +++ b/docs/source/tutorial_zh/dataset_builder.md @@ -0,0 +1,54 @@ +# DatasetBuilder + +lumo 设计了 `~lumo.DatasetBuilder` 用于提供一个统一的构建数据集的接口。可以在大多数情况下,减少重复的数据集形态设计。 + +以 CIFAR10 数据集为例,如果需要数据集的图片输出两次增广,那么要么要更改 Dataset 类,要么重写 transform 函数: + +```python +class MyCIFAR(CIFAR10): + ... + + def __getitem(self,index): + sample = self.data[index] + label = self.target[index] + return self.transform1(sample), self.transform2(sample), label + + +# or + +def two_transform(sample): + ... + return transform1(sample), transform2(sample) +``` + +在多个数据集都面临这种更改时候,这种重写的方式会消耗较多的精力。尤其是在输出形式还不确定,可能面临频繁更改的时候。 + +对此,lumo 通过 `DatasetBuilder` 提供了一个通用的流式的解决方案,你只需要按标准形式准备好原始数据,和标准的 one-to-one 的增广函数: + +```python +... + +source = CIFAR10() +transform1 = ... +transform2 = ... +``` + +随后,任意的输出形式均可以通过 `DatasetBuilder` 来定义 + +```python +from lumo import DatasetBuilder + +ds = ( + DatasetBuilder() + # 定义输入流 + .add_input('xs', source.data) + .add_input('ys', source.targets) + # 定义输出流 + .add_output('xs','xs1',transform1) + .add_output('xs','xs2',transform2) + .add_output('ys','ys') +) + +print(ds[0]) +>>> {'xs1': ..., 'xs2': ..., "ys": ...} +``` diff --git a/docs/source/tutorial_zh/images/2023-03-24-15-57-11.png b/docs/source/tutorial_zh/images/2023-03-24-15-57-11.png new file mode 100644 index 0000000000000000000000000000000000000000..3a74bf154329da9b77f9b373468676c9166f4421 GIT binary patch literal 270377 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%0De7m(qIr4yLMGO=uljO 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�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 + - + - + +- + - + - + +- + - + - + +``` + +## 版本控制 + +`Experiment` 的生命周期包括 start/progress/end,在每个生命周期,都设置了一系列 `ExpHook` 类来执行部分操作。其中,负责 git 提交的是 `~lumo.exp.exphook.GitCommit`,会在 `on_start` 时检查文件的更改,如果存在,则向 `lumo_experiments` 分支提交一份当前的文件快照。当前代码所对应的 commit 等信息会全部记录到该 `Experiment` 实例的 `info_dir` 中。可以通过 `exp.properties['git']` 查看。 + +## 参数记录 + +参数记录包括超参数、程序执行参数等启动时参数,Metric 等运行时和运行后参数以及执行时间等元信息。除了超参数外,所提到的全部信息都会通过 `Experiment` 在 `.start()` 时自动记录。而实验的超参数,则可以通过`exp.dump_info('params',params_dict)` 自行记录。 + +> 使用 lumo.Trainer 训练时,使用到的超参数会自动记录到 `params` key 中。 + +对于 Metric,`Experiment` 实例可以通过 `.dump_metric` 和 `.dump_metrics()` 进行记录,如: + +```python +max_acc = exp.dump_metric("acc",acc, "cls_acc", cls_acc) +``` + +# Retrieve + +`Watch` 会将所有实验的信息进行整合,从而允许用户全盘检索某次实验。 + +```python +from lumo import Watcher, Experiment + +w = Watcher() +df = w.load() # all experiments + +exp = Experiment.from_cache(df.iloc[0].to_dict()) +``` + +对某个已知 `test_name` 的实验,可以通过 `retrieve` 方法直接获取 `Experiment` 实例: + +```python +w.retrieve('230306.012.d5t') +>>> Experiment(info_dir=".../.lumo/experiments/moco.mocoexp/230306.012.d5t") +``` + +## 可视化面板 + +一个固定样式的面板永远不能满足所有人的需要,所以,lumo 基于 pandas 和 panel 提供了动态面板,除了固定的几个部分外,其余所有样式均由使用者自行添加: + +```python +from lumo import Watcher +w = Watcher() +df = w.load() + +... filter operations ... + +new_df = ... + +w.panel(new_df) +``` + +![](images/2023-03-24-15-57-11.png) + +## 重复实验 + +重复实验主要存在于两个场景: + +- 为了验证结果稳定性而使用其他随机种子重新以相同参数运行实验 +- 在实验中途因为显存、内存等原因实验出错需要以类似参数运行实验 + +尤其是在扫参时,如果仅有一两个实验出现了问题,直接基于日志观察,很难快速的知道失败的实验的运行参数。lumo 提供了 `rerun` 这一命令行参数,对于通过可视化面板或其他方式得到的失败的实验 ID (test_name),可以直接通过如下的命令重跑,并重新指定参数: + +```bash +lumo rerun 230315.017.bbt --device=0 +lumo rerun 230315.012.29t --seed=1 +``` + +`rerun`除了保证运行参数完全可控,还会在原实验和新实验之间建立一个双向链接,用于提示实验的重复次数等,可以分别在原实验和新实验的 `rerun` 参数中观察到: + +```python +exp.properties['rerun'] +>>> {'from': '230310.002.f5t', 'repeat': 1} + +exp2.properties['rerun'] +>>> {'rerun_at': {'230311.004.87t': True}} +``` + +## 备份 + +`Experiment` 额外提供了备份方法,可以向不同的途径记录实验。 + +### GitHub + +```python +from lumo import glob +glob['github_access_token'] = '...' # or store in .lumorc.json +exp.backup('github',repo='pytorch-lumo/lumo') +``` + +```python +from lumo import glob +exp.backup('github',repo='pytorch-lumo/lumo', access_token='...') +``` + +### 本地/远程备份 + +- [ ] TODO + +### 代码快照 + +- [ ] TODO + +# 其他 + +## 生命周期 + +所有经过 `Experiment` 对实验信息的改动都会自动触发一次变更记录,会在 `exp.heartbeat_fn` 位置创建一个文件。该文件会被 Watcher 在 `.load()` 的时候检测到,并增量更新该实验的内容。`Experiment` 实例在创建时,如果是通过 `.from_cache()` 创建的,也会检测该文件是否存在,如果存在,则从原目录中重新加载,而忽略 cache 的内容。 + +``` +- progress + - + - {test-1}.heartbeat + - {test-1}.pid +``` + +## ExpHook + +目前支持的 ExpHook 有: + +- `~lumo.exp.exphook.LastCmd` : 在项目根目录(或运行目录)记录运行命令的 history。 +- `~lumo.exp.exphook.RecordAbort` : 在项目抛出异常时在 `exp.properties["exception"]` 记录异常内容。 +- `~lumo.exp.exphook.GitCommit` : 在每次实验开始时保存实验快照,并记录 commit 信息到 `exp.properties['git']` +- `~lumo.exp.exphook.LockFile` : 在每次实验开始时保存相关库的版本信息,记录到 `exp.properties['lock']` From c4e650dfcdfd851df2cb1eaeb7eaf3707f8d9df3 Mon Sep 17 00:00:00 2001 From: sailist Date: Sat, 25 Mar 2023 12:27:02 +0800 Subject: [PATCH 12/22] backup: ad lumo --- src/lumo/exp/backup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lumo/exp/backup.py b/src/lumo/exp/backup.py index 7dd4c37..68b747e 100644 --- a/src/lumo/exp/backup.py +++ b/src/lumo/exp/backup.py @@ -44,6 +44,9 @@ {properties} + + +> Powered by [lumo](https://github.com/pytorch-lumo/lumo) """ From 6285c93ac0a851e702a8fb730ffae40cb138470a Mon Sep 17 00:00:00 2001 From: sailist Date: Sat, 25 Mar 2023 22:12:06 +0800 Subject: [PATCH 13/22] Experiment: self-dependent --- src/lumo/exp/experiment.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index 19b0923..da70c44 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -871,7 +871,8 @@ def from_disk(cls, info_dir): if not is_test_root(info_dir): raise ValueError(f'{info_dir} is not a valid test_root') info_dir = os.path.abspath(info_dir) - exp_dir = os.path.dirname(info_dir) + exp_name = io.load_json(os.path.join(info_dir, 'info', 'exp_name.json')) + test_name = io.load_json(os.path.join(info_dir, 'info', 'test_name.json')) paths_fn = os.path.join(info_dir, 'info', f'paths.json') if os.path.exists(paths_fn): @@ -882,7 +883,7 @@ def from_disk(cls, info_dir): else: paths = {} - self = cls(os.path.basename(exp_dir), test_name=os.path.basename(info_dir), paths=paths) + self = cls(exp_name, test_name=test_name, paths=paths) # load prop for f in os.listdir(self.mk_ipath('info', is_dir=True)): @@ -923,6 +924,17 @@ def backup(self, backend: str = 'github', **kwargs): return backup_regist[backend](exp=self, **kwargs) + def archive(self): + pass + # exp = Experiment('GitArchive') + # fn = exp.mk_bpath(f'{commit.hexsha[:8]}.tar') + # + # exp.dump_info('git_archive', {'file': fn, + # 'test_name': exp.test_name, + # 'commit_hex': commit.hexsha[:8]}) + # exp.dump_string('archive_fn', fn) + # archived_fn = exp.load_string('archive_fn') + class SimpleExperiment(Experiment): """ From cc64bc96676d93c72e3733f15638ecb06de8fa86 Mon Sep 17 00:00:00 2001 From: sailist Date: Sat, 25 Mar 2023 22:12:12 +0800 Subject: [PATCH 14/22] Experiment: self-dependent --- src/lumo/exp/watch.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lumo/exp/watch.py b/src/lumo/exp/watch.py index fc07ea2..cb3fcfe 100644 --- a/src/lumo/exp/watch.py +++ b/src/lumo/exp/watch.py @@ -496,8 +496,11 @@ def is_test_root(path: str) -> bool: Returns: True if the path is a valid test root, False otherwise. """ - test_name = os.path.basename(path.rstrip('/')) - return is_test_name(test_name) + if os.path.exists(os.path.join(path, 'info', 'test_name.json')): + return True + + # test_name = os.path.basename(path.rstrip('/')) + # return is_test_name(test_name) def is_test_name(test_name: str) -> bool: From 7319748f955cb7ae06ec200df397a89132d7a164 Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 00:56:11 +0800 Subject: [PATCH 15/22] Experiment: self-dependent, locally backup, archive code in commit --- src/lumo/exp/backup.py | 48 ++++++++----------- src/lumo/exp/experiment.py | 88 +++++++++++++++++++++------------- src/lumo/utils/compress.py | 43 +++++++++++++++++ src/lumo/utils/repository.py | 13 ++--- tests/exp/test_exp.py | 50 +++++++++++++++++++ tests/utils/test_repository.py | 8 ++-- 6 files changed, 177 insertions(+), 73 deletions(-) create mode 100644 src/lumo/utils/compress.py create mode 100644 tests/exp/test_exp.py diff --git a/src/lumo/exp/backup.py b/src/lumo/exp/backup.py index 68b747e..c35fa6a 100644 --- a/src/lumo/exp/backup.py +++ b/src/lumo/exp/backup.py @@ -1,8 +1,11 @@ -from .experiment import Experiment import os +import re +import warnings from pprint import pformat +from pathlib import Path from lumo.utils.fmt import strftime -import re +from .experiment import Experiment +from lumo.utils.compress import compress_dpath issue_title = """Test {test_name}""" @@ -153,38 +156,29 @@ def backup_github_issue(exp: Experiment, repo: str, access_token: str, return issue - # There is no way to upload files by GitHub Api - # filter backuped file sizes - # files = [] - # for root, dirs, fs in os.walk(exp.mk_ipath()): - # for f in fs: - # absf = os.path.join(root, f) - # file_size = os.path.getsize(absf) / (1024 * 1024) # Mb - # if file_size > size_limit: - # continue - # files.append(absf) - # - # for root, dirs, fs in os.walk(exp.mk_bpath()): - # for f in fs: - # absf = os.path.join(root, f) - # file_size = os.path.getsize(absf) / (1024 * 1024) # Mb - # if file_size > size_limit: - # continue - # files.append(absf) - - # repo.create_git_blob() - # {files} - # issue.create_comment() - def backup_ssh(exp: Experiment, host, username, root, size_limit): """compress backup zip files to target server with replacement""" pass -def backup_local(exp: Experiment, target: str): +def backup_local(exp: Experiment, target_dir: str, with_code=False, with_blob=False, with_cache=False): """backup in local dist""" - pass + dpath = {'info': exp.info_dir} + if with_blob: + dpath['blob'] = exp.blob_dir + if with_cache: + dpath['cache'] = exp.cache_dir + if with_code: + res = exp.archive() + if res is None: + warnings.warn(f'git commit is not recorded in {exp}.') + + names, paths = zip(*list(dpath.items())) + + target_fn = os.path.join(target_dir, f'{exp.test_name}.tar') + + return compress_dpath(paths, names, target_fn, root_name=exp.test_name) backup_regist = { diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index da70c44..c0663d9 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -23,6 +23,7 @@ from .base import BaseExpHook from ..proc.pid import pid_hash, runtime_pid_obj from .metric import Metric +from lumo.utils import repository as git_repo class Experiment: @@ -92,7 +93,7 @@ class Experiment: ENV_TEST_NAME_KEY = 'LUMO_EXP_TEST_NAME' - def __init__(self, exp_name: str = None, test_name=None, paths=None, info_dir=None): + def __init__(self, exp_name: str = None, test_name=None, roots=None, info_dir=None, blob_dir=None, cache_dir=None): """ Initializes a new instance of the Experiment class. @@ -103,7 +104,7 @@ def __init__(self, exp_name: str = None, test_name=None, paths=None, info_dir=No Raises: ValueError: If the experiment name is not a legal filename. """ - if info_dir is not None: + if exp_name is None and info_dir is not None and os.path.exists(info_dir): exp = self.__class__.from_disk(info_dir=info_dir) self._prop = exp._prop self._hooks = exp._hooks @@ -117,14 +118,20 @@ def __init__(self, exp_name: str = None, test_name=None, paths=None, info_dir=No if test_name is None: test_name = os.environ.get(Experiment.ENV_TEST_NAME_KEY, None) self._prop['test_name'] = test_name - if paths is None: - paths = {} - self._prop['paths'] = paths + if roots is None: + roots = {} + self._prop['paths'] = roots self._prop['note'] = '' self._hooks = {} self._metric = None + if info_dir is not None: + self._prop['info_dir'] = info_dir + if blob_dir is not None: + self._prop['blob_dir'] = blob_dir + if cache_dir is not None: + self._prop['cache_dir'] = cache_dir # wrap self.dump_string = self._trigger_change(self.dump_string) self.dump_note = self._trigger_change(self.dump_note) @@ -330,7 +337,7 @@ def metric(self): return self._metric @property - def paths(self) -> dict: + def roots(self) -> dict: """ Gets a dictionary containing the paths to various directories associated with the experiment. @@ -583,15 +590,15 @@ def dump_metrics(self, dic: dict, cmp: str): @property def info_root(self): - return self.paths['info_root'] + return self.roots['info_root'] @property def cache_root(self): - return self.paths['cache_root'] + return self.roots['cache_root'] @property def blob_root(self): - return self.paths['blob_root'] + return self.roots['blob_root'] @property def pid_fn(self): @@ -613,20 +620,26 @@ def exp_dir(self): @property def info_dir(self): - d = os.path.join(self.info_root, self.exp_name, self.test_name) - os.makedirs(d, exist_ok=True) + d = self.properties.get('info_dir') + if d is None: + d = os.path.join(self.info_root, self.exp_name, self.test_name) + os.makedirs(d, exist_ok=True) return d @property def cache_dir(self): - d = os.path.join(self.cache_root, self.exp_name, self.test_name) - os.makedirs(d, exist_ok=True) + d = self.properties.get('cache_dir') + if d is None: + d = os.path.join(self.cache_root, self.exp_name, self.test_name) + os.makedirs(d, exist_ok=True) return d @property def blob_dir(self): - d = os.path.join(self.blob_root, self.exp_name, self.test_name) - os.makedirs(d, exist_ok=True) + d = self.properties.get('blob_dir') + if d is None: + d = os.path.join(self.blob_root, self.exp_name, self.test_name) + os.makedirs(d, exist_ok=True) return d def _mk_path(self, *path: str, is_dir: bool) -> str: @@ -729,7 +742,7 @@ def initial(self): """ self.dump_info('exp_name', self.exp_name) self.dump_info('test_name', self.test_name) - self.dump_info('paths', self.paths) + self.dump_info('roots', self.roots) self.dump_info('execute', { 'repo': self.project_root, @@ -854,7 +867,7 @@ def from_cache(cls, dic: dict): return self @classmethod - def from_disk(cls, info_dir): + def from_disk(cls, info_dir, blob_dir=None, cache_dir=None): """ Creates an Experiment object from a test root directory on disk. @@ -883,7 +896,9 @@ def from_disk(cls, info_dir): else: paths = {} - self = cls(exp_name, test_name=test_name, paths=paths) + # given exp_name will stop __init__ load information by .from_disk() + self = cls(exp_name, test_name=test_name, roots=paths, + info_dir=info_dir, blob_dir=blob_dir, cache_dir=cache_dir) # load prop for f in os.listdir(self.mk_ipath('info', is_dir=True)): @@ -913,27 +928,34 @@ def dict(self): 'metrics': self.metric.value, } + @overload + def backup(self, backend: str = 'local', + target_dir: str = None, with_code=False, with_blob=False, with_cache=False): + ... + + @overload + def backup(self, backend: str = 'github', access_token: str = None, + labels: list = None, update: bool = True, + **kwargs): + ... + def backup(self, backend: str = 'github', **kwargs): """ Backup this experiment into the given target, currently only support GitHub, you can implement your own way by the provided information of Experiment. """ from .backup import backup_regist - if backend == 'github': - kwargs.setdefault('access_token', glob.get('github_access_token')) - return backup_regist[backend](exp=self, **kwargs) - def archive(self): - pass - # exp = Experiment('GitArchive') - # fn = exp.mk_bpath(f'{commit.hexsha[:8]}.tar') - # - # exp.dump_info('git_archive', {'file': fn, - # 'test_name': exp.test_name, - # 'commit_hex': commit.hexsha[:8]}) - # exp.dump_string('archive_fn', fn) - # archived_fn = exp.load_string('archive_fn') + def archive(self, target_dir=None): + if 'git' not in self.properties: + return None + + if target_dir is None: + target_dir = self.blob_dir + + repo = git_repo.load_repo(self.project_root) + return git_repo.git_archive(target_dir, repo, self.properties['git']['commit']) class SimpleExperiment(Experiment): @@ -942,8 +964,8 @@ class SimpleExperiment(Experiment): execute before and after the experiment. """ - def __init__(self, exp_name: str = None, test_name=None, paths=None, info_dir=None): - super().__init__(exp_name, test_name, paths, info_dir) + def __init__(self, exp_name: str = None, test_name=None, roots=None, info_dir=None): + super().__init__(exp_name, test_name, roots, info_dir) from . import exphook self.set_hook(exphook.LastCmd()) self.set_hook(exphook.LockFile()) diff --git a/src/lumo/utils/compress.py b/src/lumo/utils/compress.py new file mode 100644 index 0000000..ff0c6ae --- /dev/null +++ b/src/lumo/utils/compress.py @@ -0,0 +1,43 @@ +import os +from typing import List +import tarfile + + +def get_path_suffix(path1, path2): + relpath = os.path.relpath(path1, path2) + return os.path.splitext(relpath)[0] + + +def compress_dpath(paths: List[str], names: List[str], target, root_name=None): + """ + Compress multiple directories into a single tar archive. + + Args: + paths (List[str]): List of paths to the directories to be compressed. + names (List[str]): List of names to be used for each directory in the tar archive. + target (str): Path to the tar archive file to create. + + Returns: + None + + Raises: + IOError: If there is an error opening or writing to the target file. + tarfile.TarError: If there is an error adding a file to the tar archive. + + Example: + >>> compress_dpath(['A/dir', 'B/dir'], ['dir_a', 'dir_b'], 'archive.tar.gz') + + """ + assert target.endswith('tar') + + if isinstance(root_name, str): + names = [os.path.join(root_name, i) for i in names] + + with tarfile.open(target, "w:gz") as tar: + for path, name in zip(paths, names): + + for root, dirs, files in os.walk(path): + for file in files: + file_path = os.path.join(root, file) + tar.add(file_path, arcname=os.path.join(name, get_path_suffix(root, path), file)) + return target diff --git a/src/lumo/utils/repository.py b/src/lumo/utils/repository.py index fce12f8..6b45dca 100644 --- a/src/lumo/utils/repository.py +++ b/src/lumo/utils/repository.py @@ -185,14 +185,13 @@ def git_commit(repo=None, key=None, branch_name=None, info: str = None, filter_f return commit_ -def git_archive(repo=None, commit_hex=None, commit: Commit = None): +def git_archive(target_path, repo=None, commit_hex=None, commit: Commit = None): """ git archive -o Returns: An Experiment represents this archive operation """ - from lumo.exp import Experiment if repo is None: repo = load_repo() @@ -201,18 +200,14 @@ def git_archive(repo=None, commit_hex=None, commit: Commit = None): old_path = os.getcwd() os.chdir(commit.tree.abspath) - exp = Experiment('GitArchive') - fn = exp.mk_bpath(f'{commit.hexsha[:8]}.tar') - exp.dump_info('git_archive', {'file': fn, - 'test_name': exp.test_name, - 'commit_hex': commit.hexsha[:8]}) - exp.dump_string('archive_fn', fn) + fn = os.path.join(target_path, f'{commit.hexsha[:8]}.tar') + with open(fn, 'wb') as w: repo.archive(w, commit.hexsha) os.chdir(old_path) - return exp + return fn def git_checkout(repo=None, commit_hex=None, commit: Commit = None): diff --git a/tests/exp/test_exp.py b/tests/exp/test_exp.py new file mode 100644 index 0000000..1aa3fd2 --- /dev/null +++ b/tests/exp/test_exp.py @@ -0,0 +1,50 @@ +import os + +from lumo import Experiment, Params +import tarfile +from lumo.utils import safe_io as IO +from lumo.proc.config import debug_mode +import tempfile + + +def get_experiment(): + debug_mode() + exp = Experiment('test_exp') + exp.start() + exp.dump_info('temp_string', 'string') + exp.dump_info('temp_number', 123) + exp.dump_info('temp_list', [1, 2, 3]) + exp.dump_info('temp_dict', {"a": [1, 2, 3]}) + + pfn = exp.mk_ipath('params.json') + Params.init_from_kwargs(a=1, b=2, c=3).to_json(pfn) + IO.dump_pkl({'a': 1}, exp.mk_bpath('bin.pkl')) + IO.dump_pkl({'a': 1}, exp.mk_cpath('bin.pkl')) + + exp.end() + + return exp + + +def test_backup(): + exp = get_experiment() + target_dir = tempfile.mkdtemp() + + fpath = exp.backup('local', target_dir=target_dir, with_blob=True, with_cache=True) + file = tarfile.open(fpath, mode='r') + de_dir = tempfile.mkdtemp() + os.makedirs(de_dir, exist_ok=True) + file.extractall(de_dir) + bexp = Experiment.from_disk( + os.path.join(de_dir, exp.test_name, 'info'), + blob_dir=os.path.join(de_dir, exp.test_name, 'blob'), + cache_dir=os.path.join(de_dir, exp.test_name, 'cache'), + ) + + assert bexp.properties['temp_string'] == 'string' + assert bexp.properties['temp_number'] == 123 + assert bexp.properties['temp_list'] == [1, 2, 3] + assert bexp.properties['temp_dict'] == {"a": [1, 2, 3]} + + assert IO.load_pkl(bexp.mk_bpath('bin.pkl'))['a'] == 1 + assert IO.load_pkl(bexp.mk_cpath('bin.pkl'))['a'] == 1 diff --git a/tests/utils/test_repository.py b/tests/utils/test_repository.py index 6956bda..742dd21 100644 --- a/tests/utils/test_repository.py +++ b/tests/utils/test_repository.py @@ -1,10 +1,11 @@ -import tempfile import os +import random +import tempfile + import git from lumo.proc.config import debug_mode from lumo.utils import repository -import random def write(fn): @@ -62,8 +63,7 @@ def test_git(): import tarfile - exp = repository.git_archive(repo, b_hash) - archived_fn = exp.load_string('archive_fn') + archived_fn = repository.git_archive(tempfile.mkdtemp(), repo, b_hash) file = tarfile.open(archived_fn, mode='r') assert file.extractfile('a.txt').read().decode() == b_str assert file.extractfile('init.txt').read().decode() == f_str From 3392da552eb7bdd96ac804f8386c88f13abf0426 Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 00:59:41 +0800 Subject: [PATCH 16/22] deprecated: remove finder and analyse module because of better choice Watcher --- src/lumo/{ => sketch}/analyse/__init__.py | 0 src/lumo/{ => sketch}/analyse/collect.py | 0 src/lumo/{ => sketch}/analyse/condition.py | 0 src/lumo/{exp => sketch/analyse}/finder.py | 4 +- src/lumo/sketch/vis/__main__.py | 77 +++++++++++----------- 5 files changed, 41 insertions(+), 40 deletions(-) rename src/lumo/{ => sketch}/analyse/__init__.py (100%) rename src/lumo/{ => sketch}/analyse/collect.py (100%) rename src/lumo/{ => sketch}/analyse/condition.py (100%) rename src/lumo/{exp => sketch/analyse}/finder.py (99%) diff --git a/src/lumo/analyse/__init__.py b/src/lumo/sketch/analyse/__init__.py similarity index 100% rename from src/lumo/analyse/__init__.py rename to src/lumo/sketch/analyse/__init__.py diff --git a/src/lumo/analyse/collect.py b/src/lumo/sketch/analyse/collect.py similarity index 100% rename from src/lumo/analyse/collect.py rename to src/lumo/sketch/analyse/collect.py diff --git a/src/lumo/analyse/condition.py b/src/lumo/sketch/analyse/condition.py similarity index 100% rename from src/lumo/analyse/condition.py rename to src/lumo/sketch/analyse/condition.py diff --git a/src/lumo/exp/finder.py b/src/lumo/sketch/analyse/finder.py similarity index 99% rename from src/lumo/exp/finder.py rename to src/lumo/sketch/analyse/finder.py index dec377f..af78388 100644 --- a/src/lumo/exp/finder.py +++ b/src/lumo/sketch/analyse/finder.py @@ -180,7 +180,7 @@ def summary_experiment(test_name: str = None, test_root: str = None): print('Tags:') indent_print(pformat(exp.tags)) print('Use paths:') - indent_print(pformat(exp.paths)) + indent_print(pformat(exp.roots)) print('Execute:') indent_print(' '.join(exp.exec_argv)) print('-----------------------------------') @@ -199,7 +199,7 @@ def format_experiment(exp: Experiment) -> Dict[str, Any]: return { 'Properties': exp.properties, 'tags': exp.tags, - 'paths': exp.paths, + 'paths': exp.roots, 'exec_argv': exp.exec_argv, } diff --git a/src/lumo/sketch/vis/__main__.py b/src/lumo/sketch/vis/__main__.py index 526c02b..152a2f9 100644 --- a/src/lumo/sketch/vis/__main__.py +++ b/src/lumo/sketch/vis/__main__.py @@ -18,44 +18,45 @@ class Main(): def __init__(self): test_names = self.select_head() for test_name in test_names: - test_root = finder.retrieval_test_root(test_name) - if test_root: - # with st.expander(test_root): - self.make_test(test_root) - # st.write(test_root) - # st.write(finder.format_experiment(Experiment.from_disk(test_root))) - else: - - st.error(f'"{test_name}" is not a valid test name/ test root!') - - def make_test(self, test_root: str): - exp = Experiment.from_disk(test_root) - with st.expander("Experiment Info"): - st.write(finder.format_experiment(exp)) - # with st.expander("Visualize Metrics"): - if exp.has_prop('tensorboard_args'): - tb = exp.properties.get('tensorboard_args') - metrics = parser.parse_fron_tensorboard(tb['log_dir']) - elif exp.has_prop('logger_args'): - tb = exp.properties.get('logger_args') - metrics = parser.parse_from_log(tb['log_dir']) - else: - metrics = {} - metrics = list(metrics.items()) - for i in range(0, len(metrics), 2): - l, m = st.columns(2) - k, v = metrics[i] - l.write(k) - l.line_chart(np.array([vv.value for vv in v])) - if i + 1 >= len(metrics): - break - k, v = metrics[i + 1] - m.write(k) - m.line_chart(np.array([vv.value for vv in v])) - # if i + 2 >= len(metrics): - # break - # k, v = metrics[i + 2] - # r.line_chart({'k': np.array([vv.value for vv in v])}) + pass + # test_root = finder.retrieval_test_root(test_name) + # if test_root: + # # with st.expander(test_root): + # self.make_test(test_root) + # # st.write(test_root) + # # st.write(finder.format_experiment(Experiment.from_disk(test_root))) + # else: + # + # st.error(f'"{test_name}" is not a valid test name/ test root!') + + # def make_test(self, test_root: str): + # exp = Experiment.from_disk(test_root) + # with st.expander("Experiment Info"): + # st.write(finder.format_experiment(exp)) + # # with st.expander("Visualize Metrics"): + # if exp.has_prop('tensorboard_args'): + # tb = exp.properties.get('tensorboard_args') + # metrics = parser.parse_fron_tensorboard(tb['log_dir']) + # elif exp.has_prop('logger_args'): + # tb = exp.properties.get('logger_args') + # metrics = parser.parse_from_log(tb['log_dir']) + # else: + # metrics = {} + # metrics = list(metrics.items()) + # for i in range(0, len(metrics), 2): + # l, m = st.columns(2) + # k, v = metrics[i] + # l.write(k) + # l.line_chart(np.array([vv.value for vv in v])) + # if i + 1 >= len(metrics): + # break + # k, v = metrics[i + 1] + # m.write(k) + # m.line_chart(np.array([vv.value for vv in v])) + # if i + 2 >= len(metrics): + # break + # k, v = metrics[i + 2] + # r.line_chart({'k': np.array([vv.value for vv in v])}) def select_head(self): left, right = st.columns([1, 3]) From d6a58820960b8aed82d5c0acc62c88755551209b Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 01:07:31 +0800 Subject: [PATCH 17/22] Document: update --- README.ch.md | 1 + README.md | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.ch.md b/README.ch.md index 448bfd8..7269dd6 100644 --- a/README.ch.md +++ b/README.ch.md @@ -34,6 +34,7 @@ - [More](#more) - :pencil: [Acknowledge](#pencil-acknowledge) - :scroll: [License](#scroll-license) +- [完整文档](https://pytorch-lumo.github.io/lumo/) # :cloud: 安装 diff --git a/README.md b/README.md index b84e36f..f940e92 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ and focuses on enhancing the experience of deep learning practitioners. - :small_orange_diamond: [re-run](#small_orange_diamond-re-run) - :small_orange_diamond: [backup](#small_orange_diamond-backup) - :scroll: [License](#scroll-license) +- [Full Document](https://pytorch-lumo.github.io/lumo/) # :cloud: Installation @@ -118,7 +119,8 @@ exp.end() ## :small_orange_diamond: Building from Scratch -If you want to start a new deep learning experiment from scratch, you can use `lumo` to accelerate your code development. +If you want to start a new deep learning experiment from scratch, you can use `lumo` to accelerate your code +development. Below are examples of `lumo` training at different scales: one-fine training: From 1c6b691abc00ef7e84d4320e7c09b63e1e740bdd Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 01:07:44 +0800 Subject: [PATCH 18/22] version: weakly update to 1.1.0 --- src/lumo/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lumo/__init__.py b/src/lumo/__init__.py index 35697cc..1d8f32d 100644 --- a/src/lumo/__init__.py +++ b/src/lumo/__init__.py @@ -1,7 +1,7 @@ """ """ -__version__ = "1.0.0" +__version__ = "1.1.0" from .core import Params, ParamsType, MetricType, Meter, Record, TrainStage, BaseParams from .proc import glob From 91d64f2f366f007854e6aa1ebf311a01ffd888da Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 15:56:43 +0800 Subject: [PATCH 19/22] Trainer: accelerator --- src/lumo/trainer/trainer.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lumo/trainer/trainer.py b/src/lumo/trainer/trainer.py index c8307ff..e02d024 100644 --- a/src/lumo/trainer/trainer.py +++ b/src/lumo/trainer/trainer.py @@ -20,6 +20,7 @@ from lumo.utils import safe_io as IO from lumo.trainer.rnd import RndManager from lumo.utils.logger import Logger +from .backend.base import Accelerator from .base import _BaseTrainer from .components import TrainerExperiment, TrainerParams from .saver import Saver @@ -89,12 +90,16 @@ def __init__(self, params: ParamsType, dm: DataModule = None, accelerator=None): self.train_toggle = False device = params.get('device', None) if not self.is_dist else None - # self.accelerate = Accelerator(kwargs_handlers=[ - # DistributedDataParallelKwargs(find_unused_parameters=params.get('find_unused_parameters', False)) - # ]) - accelerator = glob.get('accelerator', 'accelerator') - self.accelerate = get_accelerator(accelerator) + if isinstance(accelerator, str): + accelerator = glob.get('accelerator', 'accelerator') + accelerate = get_accelerator(accelerator) + elif isinstance(accelerator, Accelerator): + accelerate = accelerator + else: + raise NotImplementedError() + + self.accelerate = accelerate self.accelerate.set_device(torch.device(device)) if dist.is_main(): From bea6301aeafeb1fc4cf01ac4bc09674c76e60ee4 Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 15:57:10 +0800 Subject: [PATCH 20/22] cli: backup_local --- src/lumo/cli/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lumo/cli/__init__.py b/src/lumo/cli/__init__.py index e9a39df..eeeb878 100644 --- a/src/lumo/cli/__init__.py +++ b/src/lumo/cli/__init__.py @@ -56,10 +56,24 @@ def board(port=11606, address=None, open=True): print(f"Starting server on port {port}") +def backup_local(test_name, target_dir, with_blob=False, with_cache=False): + from lumo.exp.watch import Watcher + from lumo import Experiment + w = Watcher() + exp = w.retrieve(test_name) + if exp is None: + print(f'{test_name} not found') + exit(1) + else: + print(exp.backup('local', target_dir=target_dir, with_blob=with_blob, with_cache=with_cache)) + + def main(): """the entry""" fire.Fire({ 'rerun': rerun, 'note': note, 'board': board, + 'backup_local': backup_local, }) + exit(0) From 1f3070a700f20f83a6c8d7844d629c5cb42c7b59 Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 16:03:00 +0800 Subject: [PATCH 21/22] Trainer: accelerator --- src/lumo/trainer/trainer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lumo/trainer/trainer.py b/src/lumo/trainer/trainer.py index e02d024..0196ab0 100644 --- a/src/lumo/trainer/trainer.py +++ b/src/lumo/trainer/trainer.py @@ -91,14 +91,14 @@ def __init__(self, params: ParamsType, dm: DataModule = None, accelerator=None): device = params.get('device', None) if not self.is_dist else None - if isinstance(accelerator, str): + if isinstance(accelerator, str) or accelerator is None: accelerator = glob.get('accelerator', 'accelerator') accelerate = get_accelerator(accelerator) elif isinstance(accelerator, Accelerator): accelerate = accelerator else: raise NotImplementedError() - + self.accelerate = accelerate self.accelerate.set_device(torch.device(device)) From a209c97ca52a99618907ea19e840f9c7617058bc Mon Sep 17 00:00:00 2001 From: sailist Date: Sun, 26 Mar 2023 16:04:50 +0800 Subject: [PATCH 22/22] Experiment: bugs --- src/lumo/exp/experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lumo/exp/experiment.py b/src/lumo/exp/experiment.py index c0663d9..d55f8b2 100644 --- a/src/lumo/exp/experiment.py +++ b/src/lumo/exp/experiment.py @@ -859,7 +859,7 @@ def from_cache(cls, dic: dict): """ paths = dic.pop('paths', {}) _ = dic.pop('metrics') - self = cls(exp_name=dic['exp_name'], test_name=dic['test_name'], paths=paths) + self = cls(exp_name=dic['exp_name'], test_name=dic['test_name'], roots=paths) if os.path.exists(self.heartbeat_fn): return cls.from_disk(self.info_dir) self._prop.update(dic)