Select module classes and functions using yaml, without any if-statements.
Project description
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 (in this case
# 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()
# The 'loss' key already exists, so the 'losses' module will be appended to the existing module.
pytorch_getter.register('loss', losses)
pytorch_getter.register('miner', miners)
pytorch_getter.register('sampler', samplers)
# Both modules will be searched when get() or get_multiple() is used.
# The first loss comes from the module that was just registered.
# The second loss comes from the Pytorch library that is registered by default.
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for easy_module_attribute_getter-0.9.11.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96ad2d7f73e878900b29f87bf3f7f0826f48a5786eb05f8775b8d5b28d962329 |
|
MD5 | abb900ad087a23411b14efade05f6406 |
|
BLAKE2b-256 | 625451bbdbd129f487c5fb830fd5cb820f37c28da3e391640799d96bcc1f7f58 |
Close
Hashes for easy_module_attribute_getter-0.9.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 765f9736cfda77f7475bd70839d5f81eb0fcc919a6221fe05a842bb224e0d62e |
|
MD5 | b805971f8d80203d27b07132ca7ac92f |
|
BLAKE2b-256 | 03082f6a7003809be82c2bbedb69cb88b97664cf835bdec5cd19415043f39fd0 |