-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Description
Incomplete Code
This is related with #13763 PR
and pytorch_lightning/utilities/meta.py
Problem
def init_meta(module_fn: Callable[..., Module], *args, **kwargs) -> Module:
...
return module
class _MaterializerModule(subclass, metaclass=_IsinstanceMetaclass):
...
def __new__(cls, *args, **kwargs):
subclass = cls.__bases__[0]
cls.add_subclasses(subclass)
with cls.instantiation_context()
obj = init_meta(subclass, *args, **kwargs)
obj.materialize = partial(cls.materialize, materialize_fn=obj.materialize)
return obj-
Return Type
init_metafunction returnstorch.nn.Moduletype. But__new__method assumes thatobjis_MaterizerModuleor at least its subclass. -
Parameter Type Mismatch
init_metafunction takesCallableas first parameter. But in__new__method,subclassvariable is a class.
Additional context
If you enjoy Lightning, check out our other projects! ⚡
-
Metrics: Machine learning metrics for distributed, scalable PyTorch applications.
-
Lite: enables pure PyTorch users to scale their existing code on any kind of device while retaining full control over their own loops and optimization logic.
-
Flash: The fastest way to get a Lightning baseline! A collection of tasks for fast prototyping, baselining, fine-tuning, and solving problems with deep learning.
-
Bolts: Pretrained SOTA Deep Learning models, callbacks, and more for research and production with PyTorch Lightning and PyTorch.
-
Lightning Transformers: Flexible interface for high-performance research using SOTA Transformers leveraging Pytorch Lightning, Transformers, and Hydra.