Torch-Scope
A Toolkit for training pytorch models, which has three features:
- Tracking environments, dependency, implementations and checkpoints;
- Providing a logger wrapper with two handlers (to
stdandfile); - Supporting automatic device selection;
- Providing a tensorboard wrapper;
- Providing a spreadsheet writer to automatically summarizing notes and results;
We are in an early-release beta. Expect some adventures and rough edges.
Quick Links
Installation
To install via pypi:
pip install torch-scope
To build from source:
pip install git+https://github.com/LiyuanLucasLiu/Torch-Scope
or
git clone https://github.com/LiyuanLucasLiu/Torch-Scope.git
cd Torch-Scope
python setup.py install
Usage
An example is provided as below, please read the doc for a detailed api explaination.
- set up the git in the server & add all source file to the git
- use tensorboard to track the model stats (tensorboard --logdir PATH/log/ --port ####)
from torch_scope import wrapper
...
logger = logging.getLogger(__name__)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--checkpoint_path', type=str, ...)
parser.add_argument('--name', type=str, ...)
parser.add_argument('--gpu', type=str, ...)
...
args = parser.parse_args()
pw = wrapper(os.path.join(args.checkpoint_path, args.name), name = args.log_dir, enable_git_track = False)
# Or if the current folder is binded with git, you can turn on the git tracking as below
# pw = wrapper(os.path.join(args.checkpoint_path, args.name), name = args.log_dir, enable_git_track = True)
# if you properly set the path to credential_path and want to use spreadsheet writer, turn on sheet tracking as below
# pw = wrapper(os.path.join(args.checkpoint_path, args.name), name = args.log_dir, \
# enable_git_track=args.git_tracking, sheet_track_name=args.spreadsheet_name, \
# credential_path="/data/work/jingbo/ll2/Torch-Scope/torch-scope-8acf12bee10f.json")
gpu_index = pw.auto_device() if 'auto' == args.gpu else int(args.gpu)
device = torch.device("cuda:" + str(gpu_index) if gpu_index >= 0 else "cpu")
pw.save_configue(args) # dump the config to config.json
# if the spreadsheet writer is enabled, you can add a description about the current model
# pw.add_description(args.description)
logger.info(str(args)) # would be plotted to std & file if level is 'info' or lower
...
batch_index = 0
for index in range(epoch):
...
for instance in ... :
loss = ...
tot_loss += loss.detach()
loss.backward()
if batch_index % ... = 0:
pw.add_loss_vs_batch({'loss': tot_loss / ..., ...}, batch_index, False)
pw.add_model_parameter_stats(model, batch_index, save=True)
optimizer.step()
pw.add_model_update_stats(model, batch_index)
tot_loss = 0
else:
optimizer.step()
batch_index += 1
dev_score = ...
pw.add_loss_vs_batch({'dev_score': dev_score, ...}, index, True)
if dev_score > best_score:
pw.save_checkpoint(model, optimizer, is_best = True)
best_score = dev_score
else:
pw.save_checkpoint(model, optimizer, is_best = False)
Advanced Usage
Auto Device
Git Tracking
Spreadsheet Logging
Share the spreadsheet with the following account torch-scope@torch-scope.iam.gserviceaccount.com. And access the table with its name.
Metadata
Release files for torch-scope 0.5.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| torch_scope-0.5.6-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for torch_scope-0.5.6-py2.py3-none-any.whl |
Release files / torch_scope-0.5.6-py2.py3-none-any.whl
| Download URL | torch_scope-0.5.6-py2.py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
3be23b787e0d6b770ed2c60f9aa2e3140619fc4531251117e7ba7404d626483c
|
|
BLAKE2b-256 checksum How to use checksums |
81a14e892427eb693e630c9b17bc456649f92c99ecd769ae76dbe84325e4bcaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0
|
Security for torch-scope 0.5.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.