机器之心|使用AmazonSageMaker运行中文命名实体识别( 五 )
train_instance_type='local'
if subprocess.call('nvidia-smi') == 0:
train_instance_type = 'local_gpu'
estimator = TensorFlow(entry_point='albert_ner.py',
source_dir='.',
train_instance_type=train_instance_type,
train_instance_count=1,
hyperparameters=hyperparameters,
role=role,
framework_version='1.15.2',
py_version='py3',
script_mode=True)
inputs = {'training': f'file:///home/ec2-user/SageMaker/albert-chinese-ner/data/'}
estimator.fit(inputs)
这里我们可以注意到estimator.fit()传入的参数与BYOC略有不同 , 这两个写法其实是等价的 , 事实上 , 这里的写法更规范一些 , 按照Amazon SageMaker的文档 , 输入数据可以有多个通道(Channel) , 默认的通道是training , 在本文的代码中 , 训练、验证等过程其实都是从training通道中读取的数据 , 所以更规范的做法是 , 我们应该额外增加一个通道validation , 用来存放验证数据 。
训练启动后 , 我们可以看到训练的日志输出 , 以及监控本机的GPU、CPU、内存等的使用率等情况 , 以确认程序可以正常工作 。
如果在此过程中需要进入正在运行的容器内调试 , 我们可以使用docker ps命令获取当前正在运行的容器ID , 并使用docker exec -it /bin/bash进入容器内进行调试 。 另外 , 我们使用docker images命令可以看到Amazon SageMaker自动下载了一个名为
763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-training:1.15.2-gpu-py3的镜像 , 该镜像是由Amazon SageMaker预编译的 。
本文插图
3.2 Amazon SageMaker测试
在本地测试完成后 , 我们可以使用Amazon SageMaker进行测试:第一步 , 上传数据到Amazon S3 。 第二步 , 指定执行的角色 , 这里我们假设您是在Amazon SageMaker Notebook上执行的 , 如果是其他环境 , 您可能需要手动指定角色的ARN 。 第三步 , 设定超参数 , 这里需要对应到您程序中所需的超参数 。 第四步 , 设定训练机型为ml.p2.xlarge(支持GPU) 。 第五步 , 创建一个名为TensorFlow的Estimator , 这里需要传入训练入口脚本(entry_point)、源代码路径(source_dir)、之前获得的角色、训练机型、机器数量、TensorFlow版本、Python版本、超参数等 。 第六步 , 启动训练 , 这里需要传入训练数据的位置 , 在Amazon SageMaker模式下 , 训练数据的位置需要设置成Amazon S3路径 。
inputs = sagemaker.Session().upload_data(path='/home/ec2-user/SageMaker/albert-chinese-ner/data', key_prefix='DEMO-tensorflow-albert-chinese-ner')
estimator = TensorFlow(entry_point='albert_ner.py',
source_dir='.',
train_instance_type='ml.p2.xlarge',
train_instance_count=1,
hyperparameters=hyperparameters,
role=role,
framework_version='1.15.2',
py_version='py3',
script_mode=True)
estimator.fit({'training': inputs})
训练启动后 , 我们可以在Amazon SageMaker控制台看到这个训练任务 , 点进详情可以看到训练的详情 , 日志输出 , 以及监控机器的GPU、CPU、内存等的使用率等情况 , 以确认程序可以正常工作 。
在这里 , source_dir我们设置的是本地代码路径 , Amazon SageMaker会自动将该路径下的所有代码和数据拷贝进容器中 。 此外 , BYOS模式还支持git路径作为代码路径 , 使用方法如下:
git_config = {'repo': 'https://github.com/whn09/albert-chinese-ner.git', 'branch': 'master'}
推荐阅读
- OPPO手机|iPhone明年才使用LTOP屏幕,屏幕今年还得看绿厂!
- 手机使用技巧|宝宝照片太多怎么办?4种不占手机内存的存储方式,最后一种更安全
- |使用TLC闪存的英睿达P5系列NVMe M.2 SSD现已公布售价
- 技术编程|机器学习又一重要医学应用!培植人造器官
- 机械|电脑的机械硬盘和固态硬盘什么区别,谁使用寿命长?
- 科技造就未来|Apple为什么要使用ARM?为什么不从头开始?
- 智能机器人|【好莱坞首次用AI机器人主演】
- 电脑使用技巧|Word文字技巧—如何将Excel转换成Word
- windows系统,电脑使用技巧|第三方 Fluent Design 图标设计集预示未来 Win 10 风格
- 华为手机,AI人工智能|今天才知道,华为手机右上角还能这样使用,几千块钱果真没白花