def build_encoder(config: Union[DictConfig, "mmf.modules.encoders.Encoder.Config"]): from mmf.modules.encoders import Encoder # If it is not an OmegaConf object, create the object if not isinstance(config, DictConfig) and isinstance(config, Encoder.Config): config = OmegaConf.structured(config) if "type" in config: # Support config initialization in form of # encoder: # type: identity # noqa # params: # in_dim: 256 name = config.type if isinstance(name, Enum): name = name.value params = config.get("params", None) else: # Structured Config support name = config.name params = config encoder_cls = registry.get_encoder_class(name) # If params were not passed, try generating them from encoder # class's default config if params is None: params = OmegaConf.structured(getattr(encoder_cls, "Config", {})) return encoder_cls(params)
def build_encoder(config: Union[DictConfig, "mmf.modules.encoders.Encoder.Config"]): from mmf.modules.encoder import Encoder # If it is not an OmegaConf object, create the object if not isinstance(config, DictConfig) and isinstance(config, Encoder.Config): config = OmegaConf.structured(config) if "type" in config: # Support config initialization in form of # encoder: # type: identity # noqa # params: # in_dim: 256 name = config.type params = config.params else: # Structured Config support name = config.name params = config encoder_cls = registry.get_encoder_class(name) return encoder_cls(params)