gluonts.core.component 模块#

class gluonts.core.component.BaseValidatedInitializerModel[source]#

基类: pydantic.v1.main.BaseModel

带有 validated() 初始化器的组件的基础 Pydantic 模型。

另请参阅

validated

使用参数验证逻辑装饰初始化器方法。

class Config[source]#

基类: pydantic.v1.config.BaseConfig

所有 validated() 初始化器继承的 Pydantic 模型的 Config

允许在初始化器参数中使用任意类型注解。

arbitrary_types_allowed: bool = True#
gluonts.core.component.equals(this: Any, that: Any) bool[source]#

两个任意类型对象之间的结构相等性检查。

默认情况下,此函数委托给 equals_default_impl()

此外,该函数根据第一个参数的类型分派到专门的实现,因此对于某些类型,上述条件可能更严格。

参数
  • this – 要比较的对象。

  • that – 要比较的对象。

返回值

一个布尔值,指示 thisthat 是否结构相等。

返回类型

bool

另请参阅

equals_default_impl

两个任意类型对象之间的结构相等性检查的默认语义。

equals_representable_block

Gluon HybridBlock 输入参数的特殊化。

equals_parameter_dict

Gluon ParameterDict 输入参数的特殊化。

gluonts.core.component.equals_default_impl(this: Any, that: Any) bool[source]#

两个任意类型对象之间的结构相等性检查的默认语义。

当且仅当满足以下条件时,两个对象 thisthat 被定义为结构相等:

  1. 它们的类型匹配。

  2. 如果它们的初始化器是 validated(),则它们的初始化器参数成对结构相等。

  3. 如果它们的初始化器不是 validated(),则它们是引用相等(即 this == that)。

参数
  • this – 要比较的对象。

  • that – 要比较的对象。

返回值

一个布尔值,指示 thisthat 是否结构相等。

返回类型

bool

gluonts.core.component.equals_dict(this: dict, that: dict) bool[source]#
gluonts.core.component.equals_list(this: list, that: list) bool[source]#
gluonts.core.component.equals_ndarray(this: numpy.ndarray, that: numpy.ndarray) bool[source]#
gluonts.core.component.from_hyperparameters(cls: Type[gluonts.core.component.A], **hyperparameters) gluonts.core.component.A[source]#

使用 validated() 初始化器反射性地创建类实例。

参数
  • cls – 要实例化的组件的类型 A

  • hyperparameters – 一个键值对字典,用作组件初始化器的参数。

返回值

给定类的实例。

返回类型

A

引发

GluonTSHyperparametersError – 包装了验证初始化器参数时抛出的 ValidationError

gluonts.core.component.skip_encoding(v: Any) bool[source]#

判断输入值 v 是否应使用 encode() 函数编码。

这由 validated() 使用,以确定在记录初始化器参数以便后续序列化时应跳过哪些值。

这是回退实现,可以通过注册处理函数来为特定类型进行特殊化。

gluonts.core.component.tensor_to_numpy(tensor) numpy.ndarray[source]#
gluonts.core.component.validated(base_model=None)[source]#

使用带类型参数的验证和自动转换逻辑装饰 __init__ 方法。

>>> class ComplexNumber:
...     @validated()
...     def __init__(self, x: float = 0.0, y: float = 0.0) -> None:
...         self.x = x
...         self.y = y

带有装饰初始化器的类可以使用其他类型的参数进行实例化(例如,类型为 str 的参数 y)。装饰器处理类型转换逻辑。

>>> c = ComplexNumber(y='42')
>>> (c.x, c.y)
(0.0, 42.0)

如果绑定的参数无法转换,装饰器会抛出错误。

>>> c = ComplexNumber(y=None)
Traceback (most recent call last):
    ...
pydantic.v1.error_wrappers.ValidationError: 1 validation error for
ComplexNumberModel
y
  none is not an allowed value (type=type_error.none.not_allowed)

在内部,装饰器将所有验证和转换逻辑委托给 a Pydantic model,可以通过装饰初始化器的 Model 属性访问该模型。

>>> ComplexNumber.__init__.Model
<class 'pydantic.v1.main.ComplexNumberModel'>

Pydantic 模型是根据装饰初始化器的参数名称和类型自动合成的。在 ComplexNumber 示例中,合成的 Pydantic 模型对应于以下定义。

>>> class ComplexNumberModel(BaseValidatedInitializerModel):
...     x: float = 0.0
...     y: float = 0.0

客户端可以选择使用 base_model 装饰器参数自定义合成 Pydantic 模型的基类。默认行为使用 BaseValidatedInitializerModel 及其 model config

另请参阅

BaseValidatedInitializerModel

所有合成 Pydantic 模型的默认基类。