Know How Guide and Hands on Guide for AWS
在此示例中, 我们将使用Amazon SageMaker执行以下操作:
auto-image-classification.ipynb
- 环境准备
部分auto-image-classification.ipynb
- 数据预处理
部分
脚本执行invoke_im2rec.sh.
为提高IO效率, 不会直接读取图片文件, 而是先将图片列表和标签转换为RecordIO格式的二进制文件, 训练时就可以顺序读取数据, 大大提高了IO速率. 利用 MXNet 社区的图片转换工具 im2rec.py 进行快速图像转换: 生成 list 和 record 文件,并且按照validation 的数据和 training 数据的比例进行自动的数据拆分。
auto-image-classification.ipynb
- 预处理部分上传到S3
部分auto-image-classification.ipynb
- 配置模型训练的超参数
部分auto-image-classification.ipynb
- SageMaker API 的创建
部分auto-image-classification.ipynb
- 调用 SageMaker API 来启动训练任务
部分完成上述步骤后,你可以在Sagemaker Console中看到自己的训练任务,当status为completed时,代表训练完成。整个训练过程大概持续15-20分钟,会根据你选择的机型和你设置的epochs个数等进行变化
同时,在训练过程中,您还可以通过监控cloudwatch logs来查看训练过程中的loss变化
训练结束后,S3存储桶保存了最新的模型文件。下面我们将其进行线上部署,这样就可以通过接受来自客户端的Restful API请求进行预测
下面继续运行auto-image-classification.ipynb
auto-image-classification.ipynb
- 模型部署-创建模型
部分
auto-image-classification.ipynb
- 模型部署-配置推理Endpoint
部分
auto-image-classification.ipynb
- 模型部署-创建推理Endpoint
部分Endpoint creation ended with EndpointStatus = InService,代表成功创建了一个endpoint
执行 endpoint-auto-image-classification.ipynb
- 推理及应用
部分
鉴于我们作为范例只训练了不多的epoch,结果还算不错。如果想要得到更高的准确率,请使用更多的训练集进行更多轮次的训练。
Endpoint Name = cars-imageclassification-ep--2020-04-21-15-39-34
Result: label - Acura Integra Type R 2001, probability - 0.9999878406524658
更多测试图片可以从 s3://auto-ai-ml-demo/test-images 获得