Skip to content

TensorFlow Estimator doesnt allow naming of the model #849

@jmgray24

Description

@jmgray24

System Information

  • Framework TensorFlow
  • Framework Version: N/a
  • Python Version: 2.7
  • CPU or GPU: N/A
  • Python SDK Version: 1.27.0
  • Are you using a custom image: N/A

Describe the problem

The behavior between TensorFlow Estimator and Estimator deploy is not consistent regarding create_model.

When calling deploy from a Base Estimator, you are able to specify the model name using the name keyword argument, however TensorFlow's estimator does not accept additional keyword arguments in its create_model

Minimal repro / logs

Using hpo_tensorflow_mnist example notebook:

`estimator = TensorFlow(entry_point='mnist.py',
role=role,
framework_version='1.12.0',
training_steps=1000,
evaluation_steps=100,
train_instance_count=1,
train_instance_type='ml.m4.xlarge',
base_job_name='DEMO-hpo-tensorflow')

hyperparameter_ranges = {'learning_rate': ContinuousParameter(0.01, 0.2)}

objective_metric_name = 'loss'
objective_type = 'Minimize'
metric_definitions = [{'Name': 'loss',
'Regex': 'loss = ([0-9\.]+)'}]

tuner = HyperparameterTuner(estimator,
objective_metric_name,
hyperparameter_ranges,
metric_definitions,
max_jobs=9,
max_parallel_jobs=3,
objective_type=objective_type,
base_tuning_job_name="mytesttuner")

tuner.fit(inputs)

boto3.client('sagemaker').describe_hyper_parameter_tuning_job(
HyperParameterTuningJobName=tuner.latest_tuning_job.job_name)['HyperParameterTuningJobStatus']

tuner.deploy(1, "ml.c4.xlarge", name="testname")
`

  • Exact command to reproduce:
    tuner.deploy(1, "ml.c4.xlarge", name="testname")

This works if the Estimator the HPO job is built from is a base Estimator but fails with an

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions