tensorflow template

机器学习的三个核心的定义:定义模型、定义目标函数和定义优化方法

  1. 构建计算图
  2. 分发计算任务
  3. 执行计算任务
    另外还要准备数据

对大多数的任务来说,第2步和第3步操作对于用户来说相对容易,于是我们的主要精力都花在第1步--也就是==构建计算图==上

在创建变量时只写了一句代码,背后却发生了很多更细粒度的Op,所以在计算图执行时,我们要明白这些Op的来源

https://suhee05.github.io/tensorflow-basics/

定义数据流图               -----计算图 ----完成计算图定义 ----Graph

运行数据流图(在数据上)       -----会话   ----构建训练迭代 ----Session

TensorFlow多GPU并行的实现

深度学习算法由于其数据量大、算法复杂度高等特点,常常需要采用某种形式的并行机制,常用的并行方法有数据并行(data parallel)和模型并行(model parallel)两种。

数据并行的原理很简单,如下图,其中CPU主要负责梯度平均和参数更新,而GPU1和GPU2主要负责训练模型副本(model replica),这里称作“模型副本”是因为它们都是基于训练样例的子集训练得到的,模型之间具有一定的独立性。具体的训练步骤如下,

同时使用多个硬件资源计算不同batch的数据的梯度,然后汇总梯度进行全局的更新。

(1)在GPU1、GPU2上分别定义模型参数变量,网络结构;

(2)对于单独的GPU,分别从数据管道读取不同的数据块,然后进行前向传播(forward propagation)计算出loss,再计算关于当前Variables的gradients;

(3)把所有GPU输出的梯度数据转移到CPU上,先进行梯度取平均操作,然后进行模型参数的更新;

(4)重复步骤(1)-(3),直到模型参数收敛为止;
屏幕快照 2019-02-13 下午1.15.47.png

你可能感兴趣的:(tensorflow template)