Skip to content

ParameterBoolean is not serialziable. #2410

@Guillem96

Description

@Guillem96

ParameterBoolean = partial(Parameter, parameter_type=ParameterTypeEnum.BOOLEAN)

When using sagemaker.worflow.parameters.ParameterBoolean as an estimator hyperparameter the pipeline fails since it is not serializable.

train_data = ParameterString(name="TrainData", 
                                               default_value="s3://...")

use_fast_tokenizer = ParameterBoolean(name="UseFastTokenzier", default_value=True)

hyperparameters = {
    # ...
    "use_fast_tokenizer": use_fast_tokenizer,
}

hf_estimator = HuggingFace(
    entry_point='train.py',
    source_dir='src',
    instance_type="...",
    instance_count=1,
    role="...",
    transformers_version='4.4',
    pytorch_version='1.6',
    py_version='py36',
    hyperparameters=hyperparameters
)

training_step = TrainingStep(name="Train",
                             estimator=hf_estimator,
                             inputs={"train": TrainingInput(s3_data=train_data)})

pipeline = Pipeline(
    name="name",
    parameters=[
        train_data,
        use_fast_tokenizer,
    ],
    steps=[training_step],
)

pipeline.upsert(role_arn=role)

The error:

TypeError: Object of type 'Parameter' is not JSON serializable

Metadata

Metadata

Assignees

No one assigned

    Labels

    component: pipelinesRelates to the SageMaker Pipeline Platform

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions