我有一个Glue作业,它将一个.out文件输出到S3中。该文件的格式非常适合在SageMaker上训练TensorFlow模型(使用脚本模式),但是在运行批处理转换时,我正努力解析此数据。
我按照建议的首选inference.py脚本编制方法使用了input_handler和output_handler函数,但是我不确定是否应该将.out文件视为application / json或text / csv,或完全其他的东西。
inference.py文件的示例:https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker_batch_transform/tensorflow_cifar-10_with_inference_script/code/inference.py
答案 0 :(得分:1)
input_handler应该做什么取决于.out文件的数据格式。
批处理转换将数据放入该.out文件中,并将其放入HTTP请求的请求有效负载中,然后将该请求发送到input_handler
。例如,如果您的.out文件是行分隔的JSON,则input_handler应该从请求中读取数据,就像从文件中读取相同数据一样。
批处理还可以split the data by certain characters并将大块或单个记录发送到模型服务器,在这种情况下,您的input_handler将处理这些单个大块或记录。
如果您知道.out格式的数据格式,则可以从处理程序中忽略内容类型。内容键入一个批转换adds请求的字符串,以让模型服务器根据数据格式切换其功能,但是字符串的含义(无论是“ application / json”还是“ application / foo” )不会更改Batch或模型服务器的行为。