4.5 配置分布式TensorFlow
在大型的数据集上进行神经网络的训练,往往需要更大的运算资源,而且还要花上若干天才能完成运算量。
TensorFlow提供了一个可以分布部署的模式,将一个训练任务拆成多个小任务,分配到不同的计算机上来完成协同运算,这样使用计算机群运算来代替单机计算,可以时训练时间大大变短。
4.5.1 分布式TensorFlow的角色及原理
要想配置TensorFlow为分布训练,需要先了解TensorFlow中关于分布式的角色分配。
● ps:作为分布式训练的服务端,等待各个终端(supervisors)来连接;
● worker:在TensorFlow的代码注释中被称作supervisors,作为分布式训练的运算终端;
● chief supervisors:在众多运算终端中必须选择一个作为主要的运算终端。该终端是在运算终端中最先启动的,它的功能是合并各个终端运算后的学习参数,将其保存或载入。
每个具体的角色的网络标识都是唯一的,即,分布在不同IP的机器上(或者同一个机器,但是不同端口)。
在实际运行中,各个角色的网络构建部分代码必须100%的相同。三者的分工如下:
● 服务端作为一个多方协调者,等待各个运算终端来连接;
● chief supervisors会在启动时统一管理全局的学习参数,进行初始化或从模型载入。
● 其他的运算终端只是负责得到其对应的任务并进行计算,并不会保存检查点,用于TensorBoard可视化中的summary
在大型的数据集上进行神经网络的训练,往往需要更大的运算资源,而且还要花上若干天才能完成运算量。
TensorFlow提供了一个可以分布部署的模式,将一个训练任务拆成多个小任务,分配到不同的计算机上来完成协同运算,这样使用计算机群运算来代替单机计算,可以时训练时间大大变短。
4.5.1 分布式TensorFlow的角色及原理
要想配置TensorFlow为分布训练,需要先了解TensorFlow中关于分布式的角色分配。
● ps:作为分布式训练的服务端,等待各个终端(supervisors)来连接;
● worker:在TensorFlow的代码注释中被称作supervisors,作为分布式训练的运算终端;
● chief supervisors:在众多运算终端中必须选择一个作为主要的运算终端。该终端是在运算终端中最先启动的,它的功能是合并各个终端运算后的学习参数,将其保存或载入。
每个具体的角色的网络标识都是唯一的,即,分布在不同IP的机器上(或者同一个机器,但是不同端口)。
在实际运行中,各个角色的网络构建部分代码必须100%的相同。三者的分工如下:
● 服务端作为一个多方协调者,等待各个运算终端来连接;
● chief supervisors会在启动时统一管理全局的学习参数,进行初始化或从模型载入。
● 其他的运算终端只是负责得到其对应的任务并进行计算,并不会保存检查点,用于TensorBoard可视化中的summary