斯坦福CS224n NLP课程【七】——Tensorflow入门

介绍一下深度学习框架

斯坦福CS224n NLP课程【七】——Tensorflow入门

 什么tensorflow

斯坦福CS224n NLP课程【七】——Tensorflow入门

 tensorflow 程序的主干都是一个图 图节点是操作 是代码中的操作的简写 tensosr是n维的数组

斯坦福CS224n NLP课程【七】——Tensorflow入门

三种参数:

变量 也是操作

斯坦福CS224n NLP课程【七】——Tensorflow入门

 占位符 执行时间才会接收值的节点 输入

斯坦福CS224n NLP课程【七】——Tensorflow入门

 数学操作节点

斯坦福CS224n NLP课程【七】——Tensorflow入门

 实际的操作:主要分为三步:1.创建了权重W的变量 包括初始化 2.创建一个占位符 对输入x 3.最后建立我们的流式图

斯坦福CS224n NLP课程【七】——Tensorflow入门

 如何运行?创建一个会话 sess.run(fetches , feeds) Fetches:是返回节点输出的图形节点列表 Feeds:是一个从图节点到我们想要在模型中运行的实际值的字典映射也就是占位符的地方 接下来将训练模型

斯坦福CS224n NLP课程【七】——Tensorflow入门

 斯坦福CS224n NLP课程【七】——Tensorflow入门

如何定义loss function 我们将占位符placeholder 来表示标签 作为我们只在执行时喂给的数据 减法和元素间的相乘转换为tensorflow操作

斯坦福CS224n NLP课程【七】——Tensorflow入门

计算梯度:在tensorflow中我们首先要创建一个优化器对象 tensorflow中有优化类 该类中每一个子类都是一个针对特定学习算法的优化器 只是在我们的图中创建的优化节点的对象 对此调用称为minimize 它的参数是我们想要最小化的节点 minimize做了两件事 1.计算参数的梯度 这个例子中参数为叫交叉熵 它和我们图中定义的所有变量相关 这个例子为b和w 它将会给这些变量根据梯度进行更新 tensorflow中它的工作方式是 每一个图节点都有一个附加的梯度操作都有相对于输入预先构建的输出梯度

 斯坦福CS224n NLP课程【七】——Tensorflow入门

斯坦福CS224n NLP课程【七】——Tensorflow入门

 训练模型 调用next_batch() 可以获取数据和标签 在train_step变量上调用sess.run的方法当我们调用的时候 它已经对我们图中所有的变量应用了梯度

斯坦福CS224n NLP课程【七】——Tensorflow入门

 变量共享: 简单的方法 创建了一个变量字典 用来共享

斯坦福CS224n NLP课程【七】——Tensorflow入门

 斯坦福CS224n NLP课程【七】——Tensorflow入门

 总结:

斯坦福CS224n NLP课程【七】——Tensorflow入门