easy_module_attribute_getter
Installation:
pip install easy_module_attribute_getter
Simple example, using PytorchGetter which extends EasyModuleAttributeGetter:
1. Specify class names and arguments in your yaml config file:
models:
modelA:
densenet121:
pretrained: True
memory_efficient: True
modelB:
resnext50_32x4d:
pretrained: True
losses:
lossA:
CrossEntropyLoss:
lossB:
L1Loss:
2. Read yaml file, and get objects from modules:
from easy_module_attribute_getter import YamlReader, PytorchGetter
yaml_reader = YamlReader()
args, _, _ = yaml_reader.load_yamls(['example.yaml'])
pytorch_getter = PytorchGetter()
models = pytorch_getter.get_multiple("model", args.models)
losses = pytorch_getter.get_multiple("loss", args.losses)
"models" is a dictionary with keys "modelA" and "modelB" as specified in the yaml file. The values are the loaded objects, which in this case are PyTorch models. The same is true for "losses".
Easily register your own modules into an existing getter.
from pytorch_metric_learning import losses, miners, samplers
pytorch_getter = PytorchGetter()
pytorch_getter.register('loss', losses)
pytorch_getter.register('miner', miners)
pytorch_getter.register('sampler', samplers)
metric_loss = pytorch_getter.get('loss', class_name='TripletMarginLoss', return_uninitialized=True)
kl_div_loss = pytorch_getter.get('loss', class_name='KLDivLoss', return_uninitialized=True)
In the above example, the 'loss' key already exists, so the 'losses' module will be appended to the existing module. Both modules are searched when get() or get_multiple() is used. For example, metric_loss contains an object from the pytorch_metric_learning library, whil kl_div_loss contains an object from the PyTorch library, which was registered by default.
Release files for easy-module-attribute-getter 0.9.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easy_module_attribute_getter-0.9.13.tar.gz | 4.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easy_module_attribute_getter-0.9.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / easy_module_attribute_getter-0.9.13.tar.gz
| Download URL | easy_module_attribute_getter-0.9.13.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c61b7055b17b24021c13717b21883217f0c74c60f72bfdc9026f3aa15df4ca43
|
|
BLAKE2b-256 checksum How to use checksums |
f77fe536e3e4412c3186da07009d8566fb15fd526b8a9c6f1495cc3d6f501b2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
|
Release files / easy_module_attribute_getter-0.9.13-py3-none-any.whl
| Download URL | easy_module_attribute_getter-0.9.13-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fdd3e9cf7ec39f19565245c72e364f6afb305deee4ad72eeaeee3c8d7a90b6a8
|
|
BLAKE2b-256 checksum How to use checksums |
059f4000990b5cc62b4a31189b813952bcce770aa5e7f0096358d79cd436ee44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
|