{"id":14958160,"url":"https://github.com/lromul/argus","last_synced_at":"2025-09-08T15:31:53.541Z","repository":{"id":32742392,"uuid":"139828556","full_name":"lRomul/argus","owner":"lRomul","description":"Lightweight library for training neural networks in PyTorch","archived":false,"fork":false,"pushed_at":"2024-04-25T23:28:47.000Z","size":850,"stargazers_count":79,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-31T10:13:17.455Z","etag":null,"topics":["deep-learning","machine-learning","neural-network","python","pytorch"],"latest_commit_sha":null,"homepage":"https://pytorch-argus.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lRomul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-05T09:43:08.000Z","updated_at":"2024-10-05T14:54:08.000Z","dependencies_parsed_at":"2024-04-25T00:36:23.410Z","dependency_job_id":"387ec359-f741-4bfd-94e8-4070c8ed3e34","html_url":"https://github.com/lRomul/argus","commit_stats":{"total_commits":308,"total_committers":4,"mean_commits":77.0,"dds":"0.058441558441558406","last_synced_commit":"06065c840182907042ac10d2df0558569dfa9759"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lRomul%2Fargus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lRomul%2Fargus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lRomul%2Fargus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lRomul%2Fargus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lRomul","download_url":"https://codeload.github.com/lRomul/argus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232320251,"owners_count":18504974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","machine-learning","neural-network","python","pytorch"],"created_at":"2024-09-24T13:16:23.531Z","updated_at":"2025-01-03T10:09:31.692Z","avatar_url":"https://github.com/lRomul.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n![argus-logo](https://raw.githubusercontent.com/lRomul/argus/master/assets/logo/argus_logo_white.png)\n\n[![PyPI version](https://badge.fury.io/py/pytorch-argus.svg)](https://badge.fury.io/py/pytorch-argus)\n[![Documentation Status](https://readthedocs.org/projects/pytorch-argus/badge/?version=latest)](https://pytorch-argus.readthedocs.io/en/latest/?badge=latest)\n![Test](https://github.com/lRomul/argus/workflows/Test/badge.svg)\n[![CodeFactor](https://www.codefactor.io/repository/github/lromul/argus/badge)](https://www.codefactor.io/repository/github/lromul/argus)\n[![codecov](https://codecov.io/gh/lRomul/argus/branch/master/graph/badge.svg)](https://codecov.io/gh/lRomul/argus)\n[![Downloads](https://static.pepy.tech/personalized-badge/pytorch-argus?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=brightgreen\u0026left_text=Downloads)](https://pepy.tech/project/pytorch-argus)\n\n\u003c/div\u003e\n\nArgus is a lightweight library for training neural networks in PyTorch.\n\n## Documentation\n\nhttps://pytorch-argus.readthedocs.io\n\n## Installation\n\nRequirements: \n* torch\u003e=2.0.0\n\nFrom pip:\n\n```bash\npip install pytorch-argus\n```\n\nFrom source:\n\n```bash\npip install -U git+https://github.com/lRomul/argus.git@dev\n```\n\n## Example\n\nSimple image classification example with `create_model` from [pytorch-image-models](https://github.com/rwightman/pytorch-image-models):\n\n```python\nfrom torch.utils.data import DataLoader\nfrom torchvision.datasets import MNIST\nfrom torchvision.transforms import Compose, ToTensor, Normalize\n\nimport timm\n\nimport argus\nfrom argus.callbacks import MonitorCheckpoint, EarlyStopping, ReduceLROnPlateau\n\n\ndef get_data_loaders(batch_size):\n    data_transform = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])\n    train_mnist_dataset = MNIST(download=True, root=\"mnist_data\",\n                                transform=data_transform, train=True)\n    val_mnist_dataset = MNIST(download=False, root=\"mnist_data\",\n                              transform=data_transform, train=False)\n    train_loader = DataLoader(train_mnist_dataset,\n                              batch_size=batch_size, shuffle=True)\n    val_loader = DataLoader(val_mnist_dataset,\n                            batch_size=batch_size * 2, shuffle=False)\n    return train_loader, val_loader\n\n\nclass TimmModel(argus.Model):\n    nn_module = timm.create_model\n\n\nif __name__ == \"__main__\":\n    train_loader, val_loader = get_data_loaders(batch_size=256)\n\n    params = {\n        'nn_module': {\n            'model_name': 'tf_efficientnet_b0_ns',\n            'pretrained': False,\n            'num_classes': 10,\n            'in_chans': 1,\n            'drop_rate': 0.2,\n            'drop_path_rate': 0.2\n        },\n        'optimizer': ('Adam', {'lr': 0.01}),\n        'loss': 'CrossEntropyLoss',\n        'device': 'cuda'\n    }\n\n    model = TimmModel(params)\n\n    callbacks = [\n        MonitorCheckpoint(dir_path='mnist', monitor='val_accuracy', max_saves=3),\n        EarlyStopping(monitor='val_accuracy', patience=9),\n        ReduceLROnPlateau(monitor='val_accuracy', factor=0.5, patience=3)\n    ]\n\n    model.fit(train_loader,\n              val_loader=val_loader,\n              num_epochs=50,\n              metrics=['accuracy'],\n              callbacks=callbacks,\n              metrics_on_train=True)\n```\n\nMore examples you can find [here](https://pytorch-argus.readthedocs.io/en/latest/examples.html).\nAdditional guides on how to customize and use argus component can be found in [Guides](https://pytorch-argus.readthedocs.io/en/latest/guides.html) section.\n\n\n## Why this name, Argus?\n\nThe library name is a reference to a planet from World of Warcraft. \nArgus is the original homeworld of the eredar (a race of supremely talented magic-wielders), now located within the Twisting Nether. \nIt was once described as a utopian world whose inhabitants were both vastly intelligent and highly gifted in magic. \nIt has since been twisted by demonic, chaotic energies and became the stronghold and homeworld of the Burning Legion.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flromul%2Fargus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flromul%2Fargus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flromul%2Fargus/lists"}