Sagemaker学习笔记

使用Sagemaker的四种途径:

  1. IDE: SageMaker Studio
  2. Console: SageMaker Notebook Instances
  3. Command line & SDK: AWS CLI, boto3, & SageMaker Python SDK
  4. 3rd party integrations: Kubeflow & Kubernetes operators

使用方法详细说明:

  1. IDE: SageMaker Studio
    Sagemaker Stuio 是一个python IDE,界面类似于pycharm,可以设置GPU等
  2. Console: SageMaker Notebook Instances
    界面类似于Jupyterlab Notebook,更适合新手,和SageMaker Notebook Studio一样都是在SageMaker内使用
  3. Command line & SDK: AWS CLI, boto3, & SageMaker Python SDK
    在Sagemaker外部调用sagemaker的方法,可以在本地调用SageMaker
  4. 3rd party integrations: Kubeflow & Kubernetes operators
    没用过

使用AWS CLI上传本地文件至目标bucket

1. 输入「aws configure」设置本地角色权限

使用类似于user_credentials_sagemaker_role.csv内的账号密码进行设置
注:这个csv文件是管理员在控制台里新增role(角色)后,管理员通过邮件发送的

AWS Access Key ID [None]:Access key ID
注意:此 ID 的形式应为AKIAPWINCOKAO3U4FWTN

AWS Secret Access Key [None]:Secret access key
注意:Secret access key的形式应为 5dqQFBaGuPNf5z7NhFrgou4V5JJNaWPy1XFzBfX3

Default region name [None]:输入目标region,例如「us-east-1」
Default output format [None]:输入 “json”

2. 如果需要上传目标bucket不存在,则需要创建新的bucket

aws s3 mb s3://my-first-backup-bucket

3. 上传目标文件

aws s3 cp “C:\users\my first backup.bak” s3://my-first-backup-bucket/

4. 上传目标文件夹

aws s3 cp C:\users\myfolder s3://my-first-backup-bucket/targetfolder/ --recursive

参考链接:https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html

Pycharm+Sagemaker配置教程

  1. 首先是安装Sagemaker的package,觉得慢的可以使用清华源镜像
pip install sagemaker
  1. 设置本地的credential,根据给你的csv文件内的信息进行设置
    参考链接:AWS官方文档
aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
  1. 由于AWS将数据处理和训练分成了两部分,所以需要先进行数据预处理(pre-processing)
    参考链接:AWS github
    a).预处理的python脚本如果有引用到其他外部的脚本,则需要将这些引用到的python脚本存储在S3内而不是本地
    b).在预处理前添加一段链接Sagemaker的代码,role 可以使用管理员权限在AWS的角色界面查看,AWS是使用Docker启动镜像的,所有数据在启动阶段会从S3复制到镜像内,在python脚本内引用的位置都是镜像内的位置(例如/opt/ml/processing等,参考:AWS关于/opt/ml/的说明
    # Sagemaker SDK 初始化
    training_data_uri = '需要进行处理的数据存储的S3位置'
    sagemaker_session = sagemaker.Session()
    role = 'arn:aws-cn:iam::12位数字:role/角色名'
    region = sagemaker_session.boto_session.region_name
    # 创建SKLearnProcessor实例,并初始化参数
    from sagemaker.sklearn.processing import SKLearnProcessor

    sklearn_processor = SKLearnProcessor(
        framework_version="0.20.0",
        role=role,
        instance_type="ml.m4.xlarge",#ml.m4.xlarge是AWS提供的免费测试用节点,具体参见官网
        instance_count=1,
    )

    sklearn_processor.run(
        code="xxxx.py",
        inputs=[
            ProcessingInput(source="s3://数据的S3存储位置", destination="/opt/ml/processing/input/数据的Docker存储位置"),#输入数据
        ],
        outputs=[
            # copy the generated features to s3 for training
            ProcessingOutput(output_name="输出任务名(可任意)", source="/opt/ml/processing/存储位置",
                             destination = "s3://生成的数据存储的S3路径位置"),#输出数据
        ]
        #arguments=["--train-test-split-ratio", "0.2"], 运行时参数,可以被传递进python脚本内并被parser = argparse.ArgumentParser()捕捉
    )
  1. 训练阶段
    训练阶段的所有代码都保存在本地,使用inputs可以将S3内某个文件夹A存储至Docker镜像目录/opt/ml/input/data/A下,如果在脚本内需要保存模型,则指定model_dir至某个S3文件夹内,并且在python脚本内指定存储模型至/opt/ml/model/,Sagemaker会自动将/opt/ml/model/下的模型存储至model_dir指定的S3文件夹内

    mnist_estimator = TensorFlow(entry_point='xxxx.py',
                                 source_dir='本地代码路径',
                                 model_dir='模型存储的S3路径',
                                 role=role,
                                 instance_count=1,
                                 instance_type='ml.m4.xlarge',
                                 framework_version='2.0.0',
                                 py_version='py3',
                                 distributions={'parameter_server': {'enabled': True}})
    #training_data_uri
    mnist_estimator.fit(inputs = {"数据集名(任意)":"需要复制到Docker镜像内的数据集的S3路径名"}) # data url

Sagemaker 上使用 Tensorflow serving 部署

模型保存
如果不是使用pb格式保存的话,在保存过程中会出现以上warning
后续在部署模型的时候,sagemaker endpoint内置的tfs服务,只支持pb的savedmodel,所以如果在训练的时候保存的不是pb,就会写这个warning

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值