ludwig-ai--ludwig
593b94c120
pytest / Unit Tests (push) Has been cancelled
pytest / Integration (integration_tests_a) (push) Has been cancelled
pytest / Integration (integration_tests_b) (push) Has been cancelled
pytest / Integration (integration_tests_c) (push) Has been cancelled
pytest / Integration (integration_tests_d) (push) Has been cancelled
pytest / Integration (integration_tests_e) (push) Has been cancelled
pytest / Integration (integration_tests_f) (push) Has been cancelled
pytest / Integration (integration_tests_g) (push) Has been cancelled
pytest / Integration (integration_tests_h) (push) Has been cancelled
pytest / Integration (integration_tests_i) (push) Has been cancelled
pytest / Integration (integration_tests_j) (push) Has been cancelled
pytest / Distributed (distributed_a) (push) Has been cancelled
pytest / Distributed (distributed_b) (push) Has been cancelled
pytest / Distributed (distributed_c) (push) Has been cancelled
pytest / Distributed (distributed_d) (push) Has been cancelled
pytest / Distributed (distributed_e) (push) Has been cancelled
pytest / Distributed (distributed_f) (push) Has been cancelled
pytest / Minimal Install (push) Has been cancelled
pytest / Event File (push) Has been cancelled
pytest (slow) / py-slow (push) Has been cancelled
Publish JSON Schema / publish-schema (push) Has been cancelled
108 行
4.2 KiB
Python
108 行
4.2 KiB
Python
from ludwig.api_annotations import DeveloperAPI
|
|
from ludwig.constants import LOSS, MODEL_ECD, SEQUENCE, SEQUENCE_SOFTMAX_CROSS_ENTROPY
|
|
from ludwig.schema import utils as schema_utils
|
|
from ludwig.schema.decoders.base import BaseDecoderConfig
|
|
from ludwig.schema.decoders.utils import DecoderDataclassField
|
|
from ludwig.schema.encoders.base import BaseEncoderConfig
|
|
from ludwig.schema.encoders.utils import EncoderDataclassField
|
|
from ludwig.schema.features.base import BaseInputFeatureConfig, BaseOutputFeatureConfig
|
|
from ludwig.schema.features.loss.loss import BaseLossConfig
|
|
from ludwig.schema.features.loss.utils import LossDataclassField
|
|
from ludwig.schema.features.preprocessing.base import BasePreprocessingConfig
|
|
from ludwig.schema.features.preprocessing.utils import PreprocessingDataclassField
|
|
from ludwig.schema.features.utils import (
|
|
ecd_defaults_config_registry,
|
|
ecd_input_config_registry,
|
|
ecd_output_config_registry,
|
|
input_mixin_registry,
|
|
output_mixin_registry,
|
|
)
|
|
from ludwig.schema.metadata import FEATURE_METADATA
|
|
from ludwig.schema.metadata.parameter_metadata import INTERNAL_ONLY
|
|
from ludwig.schema.utils import LudwigBaseConfig
|
|
|
|
|
|
@DeveloperAPI
|
|
@input_mixin_registry.register(SEQUENCE)
|
|
class SequenceInputFeatureConfigMixin(LudwigBaseConfig):
|
|
"""SequenceInputFeatureConfigMixin is a dataclass that configures the parameters used in both the sequence
|
|
input feature and the sequence global defaults section of the Ludwig Config."""
|
|
|
|
preprocessing: BasePreprocessingConfig = PreprocessingDataclassField(feature_type=SEQUENCE)
|
|
|
|
encoder: BaseEncoderConfig = EncoderDataclassField(
|
|
MODEL_ECD,
|
|
feature_type=SEQUENCE,
|
|
default="embed",
|
|
)
|
|
|
|
|
|
@DeveloperAPI
|
|
@ecd_input_config_registry.register(SEQUENCE)
|
|
class SequenceInputFeatureConfig(SequenceInputFeatureConfigMixin, BaseInputFeatureConfig):
|
|
"""SequenceInputFeatureConfig is a dataclass that configures the parameters used for a sequence input
|
|
feature."""
|
|
|
|
type: str = schema_utils.ProtectedString(SEQUENCE)
|
|
|
|
|
|
@DeveloperAPI
|
|
@output_mixin_registry.register(SEQUENCE)
|
|
class SequenceOutputFeatureConfigMixin(LudwigBaseConfig):
|
|
"""SequenceOutputFeatureConfigMixin is a dataclass that configures the parameters used in both the sequence
|
|
output feature and the sequence global defaults section of the Ludwig Config."""
|
|
|
|
decoder: BaseDecoderConfig = DecoderDataclassField(
|
|
MODEL_ECD,
|
|
feature_type=SEQUENCE,
|
|
default="generator",
|
|
)
|
|
|
|
loss: BaseLossConfig = LossDataclassField(
|
|
feature_type=SEQUENCE,
|
|
default=SEQUENCE_SOFTMAX_CROSS_ENTROPY,
|
|
)
|
|
|
|
|
|
@DeveloperAPI
|
|
@ecd_output_config_registry.register(SEQUENCE)
|
|
class SequenceOutputFeatureConfig(SequenceOutputFeatureConfigMixin, BaseOutputFeatureConfig):
|
|
"""SequenceOutputFeatureConfig is a dataclass that configures the parameters used for a sequence output
|
|
feature."""
|
|
|
|
type: str = schema_utils.ProtectedString(SEQUENCE)
|
|
|
|
default_validation_metric: str = schema_utils.StringOptions(
|
|
[LOSS],
|
|
default=LOSS,
|
|
description="Internal only use parameter: default validation metric for sequence output feature.",
|
|
parameter_metadata=INTERNAL_ONLY,
|
|
)
|
|
|
|
dependencies: list = schema_utils.List(
|
|
default=[],
|
|
description="List of input features that this feature depends on.",
|
|
parameter_metadata=FEATURE_METADATA[SEQUENCE]["dependencies"],
|
|
)
|
|
|
|
preprocessing: BasePreprocessingConfig = PreprocessingDataclassField(feature_type="sequence_output")
|
|
|
|
reduce_dependencies: str = schema_utils.ReductionOptions(
|
|
default="sum",
|
|
description="How to reduce the dependencies of the output feature.",
|
|
parameter_metadata=FEATURE_METADATA[SEQUENCE]["reduce_dependencies"],
|
|
)
|
|
|
|
reduce_input: str = schema_utils.ReductionOptions(
|
|
default="sum",
|
|
description="How to reduce an input that is not a vector, but a matrix or a higher order tensor, on the first "
|
|
"dimension (second if you count the batch dimension)",
|
|
parameter_metadata=FEATURE_METADATA[SEQUENCE]["reduce_input"],
|
|
)
|
|
|
|
|
|
@DeveloperAPI
|
|
@ecd_defaults_config_registry.register(SEQUENCE)
|
|
class SequenceDefaultsConfig(SequenceInputFeatureConfigMixin, SequenceOutputFeatureConfigMixin):
|
|
pass
|