如何使参数可用于 SageMaker Tensorflow Endpoint



我希望为SageMaker中的服务端点提供一些超参数。训练实例可以使用以下超参数访问输入参数:

estimator = TensorFlow(entry_point='autocat.py',
                       role=role,
                       output_path=params['output_path'],
                       code_location=params['code_location'],
                       train_instance_count=1,
                       train_instance_type='ml.c4.xlarge',
                       training_steps=10000,
                       evaluation_steps=None,
                       hyperparameters=params)
但是,在

部署终结点时,无法传入用于控制input_fn(serialized_input, content_type)函数中数据处理的参数。

将参数传递给服务实例的最佳方法是什么?sagemaker.tensorflow.TensorFlow类中定义的 source_dir 参数是否复制到服务实例?如果是这样,我可以使用 config.yml 或类似的东西。

啊,

我遇到了与您类似的问题,我需要从 S3 下载一些东西以在input_fn中进行推理。就我而言,这是一本字典。

三个选项:

  1. 使用 config.yml 方法,并在任何函数声明之前从入口点文件中下载并导入 S3 文件。这将使input_fn
  2. 继续使用超参数方法,下载并导入 serving_input_fn 中的矢量化器,并通过全局变量使其可用,以便input_fn可以访问它。
  3. 在训练之前从 s3 下载文件,并将其直接包含在source_dir中。

仅当您不需要在初始训练后单独更改矢量化器时,选项 3 才有效。

无论您做什么,都不要直接在input_fn中下载文件。我犯了这个错误,性能很糟糕,因为每次调用端点都会导致下载 s3 文件。

超参数用于训练阶段,以允许您调整(超参数优化 - HPO(模型。一旦你有一个经过训练的模型,推理就不需要这些超参数了。

当您想要将功能传递给服务实例时,您通常在对调用终端节点 API 调用的每个请求的 BODY 中执行此操作(例如,请参阅此处:https://docs.aws.amazon.com/sagemaker/latest/dg/tf-example1-invoke.html(或调用 SageMaker python SDK 中的预测包装器 (https://github.com/aws/sagemaker-python-sdk/tree/master/src/sagemaker/tensorflow(。可以在示例笔记本中看到此类示例 (https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/tensorflow_iris_byom/tensorflow_BYOM_iris.ipynb(

是的,一种选择是将配置文件添加到source_dir并将文件加载到input_fn中。

另一种选择是使用 serving_input_fn(hyperparameters) .该函数在TensorFlow服务模型中转换TensorFlow模型。例如:

def serving_input_fn(hyperparameters):
    # gets the input shape from the hyperparameters
    shape = hyperparameters.get('input_shape', [1, 7])
    tensor = tf.placeholder(tf.float32, shape=shape)
    # returns the ServingInputReceiver object.
    return build_raw_serving_input_receiver_fn({INPUT_TENSOR_NAME: tensor})()

TensorFlow Amazon-Sagemaker Hyperparameters TensorFlow-serve

相关内容

  • 没有找到相关文章

最新更新