Skip to content

init_meta function return type mismatch #13796

@nninept

Description

@nninept

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
  1. Return Type
    init_meta function returns torch.nn.Module type. But __new__ method assumes that obj is _MaterizerModule or at least its subclass.

  2. Parameter Type Mismatch
    init_meta function takes Callable as first parameter. But in __new__ method, subclass variable 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.

cc @Borda @otaj

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions