|
在节点计算新一批模拟数据的梯度之前,它会从参数服务器接收更新的模型。有关异步随机梯度下降的更多详细信息,请参见[13]。图1:GPU节点集群上的异步随机梯度下降。在训练期间,我们会随着迭代次数的增加而减少学习。我们使用学习速率表,其中学习速率是迭代次数的分段常数函数。这是一个典型的选择。我们发现以下学习率表有效:αn=-4n≤ 5, 0005 × 10-45000<n≤ 10, 000-5<10000<n≤ 20, 0005 × 10-620000<n≤ 30, 000-630000<n≤ 40, 0005 × 10-740000<n≤ 45, 000-745000<我们使用大约100000次迭代。“迭代”涉及每个GPU节点上大小为1000的批次。因此,每个迭代都有5000个模拟的时间/空间点。我们总共使用大约5亿个模拟的时间/空间点来训练神经网络。我们使用TensorFlow和PyTorch实现了该算法,这是用于深度学习的软件库。TensorFlow具有反向模式自动微分功能,允许计算各种函数的导数。例如,TensorFlow可用于计算神经网络(4.2)相对于x或θ的梯度。TensorFlow还允许在图形处理单元(GPU)上训练模型。具有数千个内核的GPU可用于高度并行化深度学习模型的训练。此外,我们将计算分布在多个GPU节点上,如上所述。
|