MCPcopy Create free account
hub / github.com/pytorch/executorch / create_model

Method create_model

examples/models/model_factory.py:20–60  ·  view source on GitHub ↗

Create an instance of a model class that implements EagerModelBase and retrieve related data. Args: module_name (str): The name of the module containing the model class. model_class_name (str): The name of the model class to create an instance of. R

(
        module_name, model_class_name, **kwargs
    )

Source from the content-addressed store, hash-verified

18
19 @staticmethod
20 def create_model(
21 module_name, model_class_name, **kwargs
22 ) -> Tuple[torch.nn.Module, Tuple[Any], Dict[str, Any], Any]:
23 """
24 Create an instance of a model class that implements EagerModelBase and retrieve related data.
25
26 Args:
27 module_name (str): The name of the module containing the model class.
28 model_class_name (str): The name of the model class to create an instance of.
29
30 Returns:
31 Tuple[nn.Module, Any]: A tuple containing the eager PyTorch model instance and example inputs,
32 and any dynamic shape information for those inputs.
33
34 Raises:
35 ValueError: If the provided model class is not found in the module.
36 """
37 package_prefix = "executorch." if not os.getcwd().endswith("executorch") else ""
38 module = importlib.import_module(
39 f"{package_prefix}examples.models.{module_name}"
40 )
41
42 if hasattr(module, model_class_name):
43 model_class = getattr(module, model_class_name)
44 model = model_class(**kwargs)
45 example_kwarg_inputs = None
46 dynamic_shapes = None
47 if hasattr(model, "get_example_kwarg_inputs"):
48 example_kwarg_inputs = model.get_example_kwarg_inputs()
49 if hasattr(model, "get_dynamic_shapes"):
50 dynamic_shapes = model.get_dynamic_shapes()
51 return (
52 model.get_eager_model(),
53 model.get_example_inputs(),
54 example_kwarg_inputs,
55 dynamic_shapes,
56 )
57
58 raise ValueError(
59 f"Model class '{model_class_name}' not found in module '{module_name}'."
60 )

Callers 15

aot_compiler.pyFile · 0.45
load_modelFunction · 0.45
aot_compiler.pyFile · 0.45
mainFunction · 0.45
mainFunction · 0.45
mps_example.pyFile · 0.45
mainFunction · 0.45
mainFunction · 0.45
mainFunction · 0.45

Calls 4

get_dynamic_shapesMethod · 0.45
get_eager_modelMethod · 0.45
get_example_inputsMethod · 0.45