def _real_register(class_): # Assert that the passed kwargs are meaningful for kwarg_name, values in kwargs.items(): try: real_args = inspect.getfullargspec(class_).args except AttributeError: # pylint: disable=deprecated-method real_args = inspect.getargspec(class_.__init__).args if not kwarg_name in real_args: raise RuntimeError( ('{} is not a valid argument for {}. ' 'Only valid arguments can be registered.').format( kwarg_name, class_.__name__)) if not isinstance(values, (list, tuple)): raise RuntimeError( ('{} should be a list of ' 'valid arguments for {}. ').format(values, kwarg_name)) # Save the kwargs associated with this class_ _REGSITRY_NAME_KWARGS[class_] = kwargs register_ = registry.get_register_func(Dataset, 'dataset') return register_(class_)
def _real_register(class_): # Assert that the passed kwargs are meaningful for kwarg_name, values in kwargs.items(): try: real_args = inspect.getfullargspec(class_).args except AttributeError: # pylint: disable=deprecated-method real_args = inspect.getargspec(class_.__init__).args if not kwarg_name in real_args: raise RuntimeError( ('{} is not a valid argument for {}. ' 'Only valid arguments can be registered.').format( kwarg_name, class_.__name__)) if not isinstance(values, (list, tuple)): raise RuntimeError(('{} should be a list of ' 'valid arguments for {}. ').format( values, kwarg_name)) # Save the kwargs associated with this class_ _REGSITRY_NAME_KWARGS[class_] = kwargs register_ = registry.get_register_func(Dataset, 'dataset') return register_(class_)
def register(class_): """Registers a new word embedding evaluation function. Once registered, we can create an instance with :func:`~gluonnlp.embedding.evaluation.create`. Examples -------- >>> @gluonnlp.embedding.evaluation.register ... class MySimilarityFunction(gluonnlp.embedding.evaluation.WordEmbeddingSimilarityFunction): ... def __init__(self, eps=1e-10): ... pass >>> similarity_function = gluonnlp.embedding.evaluation.create('similarity', ... 'MySimilarityFunction') >>> print(type(similarity_function)) <class 'MySimilarityFunction'> >>> @gluonnlp.embedding.evaluation.register ... class MyAnalogyFunction(gluonnlp.embedding.evaluation.WordEmbeddingAnalogyFunction): ... def __init__(self, k=1, eps=1E-10): ... pass >>> analogy_function = gluonnlp.embedding.evaluation.create('analogy', 'MyAnalogyFunction') >>> print(type(analogy_function)) <class 'MyAnalogyFunction'> """ if issubclass(class_, WordEmbeddingSimilarityFunction): register_ = registry.get_register_func( WordEmbeddingSimilarityFunction, 'word embedding similarity evaluation function') elif issubclass(class_, WordEmbeddingAnalogyFunction): register_ = registry.get_register_func( WordEmbeddingAnalogyFunction, 'word embedding analogy evaluation function') else: raise RuntimeError( 'The custom function must either subclass ' 'WordEmbeddingSimilarityFunction or WordEmbeddingAnalogyFunction') return register_(class_)
def register(class_): """Registers a new word embedding evaluation function. Once registered, we can create an instance with :func:`~gluonnlp.embedding.evaluation.create`. Examples -------- >>> @gluonnlp.embedding.evaluation.register ... class MySimilarityFunction(gluonnlp.embedding.evaluation.WordEmbeddingSimilarityFunction): ... def __init__(self, eps=1e-10): ... pass >>> similarity_function = gluonnlp.embedding.evaluation.create('similarity', ... 'MySimilarityFunction') >>> print(type(similarity_function)) <class 'MySimilarityFunction'> >>> @gluonnlp.embedding.evaluation.register ... class MyAnalogyFunction(gluonnlp.embedding.evaluation.WordEmbeddingAnalogyFunction): ... def __init__(self, k=1, eps=1E-10): ... pass >>> analogy_function = gluonnlp.embedding.evaluation.create('analogy', 'MyAnalogyFunction') >>> print(type(analogy_function)) <class 'MyAnalogyFunction'> """ if issubclass(class_, WordEmbeddingSimilarityFunction): register_ = registry.get_register_func( WordEmbeddingSimilarityFunction, 'word embedding similarity evaluation function') elif issubclass(class_, WordEmbeddingAnalogyFunction): register_ = registry.get_register_func( WordEmbeddingAnalogyFunction, 'word embedding analogy evaluation function') else: raise RuntimeError( 'The custom function must either subclass ' 'WordEmbeddingSimilarityFunction or WordEmbeddingAnalogyFunction') return register_(class_)
def register(embedding_cls): """Registers a new token embedding. Once an embedding is registered, we can create an instance of this embedding with :func:`~gluonnlp.embedding.create`. Examples -------- >>> @gluonnlp.embedding.register ... class MyTextEmbed(gluonnlp.embedding.TokenEmbedding): ... def __init__(self, source='my_pretrain_file'): ... pass >>> embed = gluonnlp.embedding.create('MyTokenEmbed') >>> print(type(embed)) <class '__main__.MyTokenEmbed'> """ register_text_embedding = registry.get_register_func(TokenEmbedding, 'token embedding') return register_text_embedding(embedding_cls)
def register(embedding_cls): """Registers a new token embedding. Once an embedding is registered, we can create an instance of this embedding with :func:`~gluonnlp.embedding.create`. Examples -------- >>> @gluonnlp.embedding.register ... class MyTextEmbed(gluonnlp.embedding.TokenEmbedding): ... def __init__(self, source='my_pretrain_file'): ... pass >>> embed = gluonnlp.embedding.create('MyTextEmbed') >>> print(type(embed)) <class 'MyTextEmbed'> """ register_text_embedding = registry.get_register_func(TokenEmbedding, 'token embedding') return register_text_embedding(embedding_cls)
def register_subword_function(subword_cls): """Registers a new subword function.""" register_text_embedding = registry.get_register_func( SubwordFunction, 'subword function') return register_text_embedding(subword_cls)
def get_name_value(self): """Returns zipped name and value pairs. Returns ------- list of tuples A (name, value) tuple list. """ name, value = self.get() if not isinstance(name, list): name = [name] if not isinstance(value, list): value = [value] return list(zip(name, value)) # pylint: disable=invalid-name register = registry.get_register_func(EvalMetric, 'metric') alias = registry.get_alias_func(EvalMetric, 'metric') _create = registry.get_create_func(EvalMetric, 'metric') # pylint: enable=invalid-name def create(metric, *args, **kwargs): """Creates evaluation metric from metric names or instances of EvalMetric or a custom metric function. Parameters ---------- metric : str or callable Specifies the metric to create. This argument must be one of the below: - Name of a metric. - An instance of `EvalMetric`.