开发者学堂课程【阿里云容器服务使用教程:如何运行 TensorFlow 分布式训练】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/438/detail/5428
如何运行 TensorFlow 分布式训练
使用包含GPU资源节点的容器服务
悬着【容器服务】——【解决方案】——【模型训练】
选择基于 TensorFlow 分布式训练应用
从共享存储数据卷读取训练数据,从 GitHub 获得模型代码,指定执行代码的命令和参数(包括超参数等)
应用名 tf-train-distributed 训练框架 tensorflow:1.0.0 分布式
训练。
Parameter Server 数量1 Worker 数量2
单 Woker 使用 GPU 数量1
执行命令:
python mnist dist
train.py--data_dir=/input/tensorflow/mnist/data/--train_steps=5000--log_device_placement=False--log_dir=/output/mnist/dist/log--batch_size=100--learning_rate=0.01--sync_replicas=False--num_gpus=2
训练日志路径:
/output/training_logs
(保证与训练代码中日志输出一致)
训练应用后被创建后立即开始执行分布式训练作业,包含1个
Parameter Server 服务,Woker 服务和 TensorBoard 监控服务
通过查看一个服务的运行日志,可以实时了解训练的进程,训练时长取决于模型复杂度,计算资源是否充足,训练数据集大小等因素。
可以看到2个 Woker 服务分别运行部分训练迭代,并通过 Parameter Server 服务同步梯度和权值的更新。
训练过程产生的状态数据可以通过 TensorBoard 服务实时监控。方便及时了解训练趋势,避免无意义地长时间运行。