斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第七课 tensorflow教程

课程概要

1、tensorflow介绍
2、代码展示

一、tensorflow介绍

1、什么是tensorflow?

  • 针对数量计算的使用数据流图流程图开源软件库
  • 由Google Brain团队开发的机器学习的研究
  • Tensorflow 是表现机器学习算法的接口,以及执行算法的执行器。
    在这里插入图片描述

2、编程模型

主要思想:将数量计算表现为图(graph)

  • 图节点表示是针对输入的操作(operation)以及输出
  • 图边表示节点之间流动的张量(tensor)
    在这里插入图片描述
  • 变量(variable)是状态节点,输出他们自己的值。如b,W
  • 占位节点(Placeholders)是在执行的时候会被喂入值的节点。如x
  • 数学运算
    • MatMul:两个矩阵的值相乘 Multiply two matrix values.
    • Add: 对应元素相加
    • ReLU: 对应元素的激活函数
      在这里插入图片描述
      对应代码:
  • 创建权重,并进行初始化W~Uniform(-1,1);b=0
  • 创建x的输入占位节点(placeholder):m*784的输入矩阵
  • 建立流程图(flow graph)

代码运行时,会自动在目前图(graph)中自动生成新的节点。
在这里插入图片描述

3、节点运行

在定义好了节点以后,我们可以为图部署一个会话(session):和目前的执行环境相联系。
在这里插入图片描述
在代码上的体现是sess.run(fetches,feeds)

  • Fetches:一系列图节点,返回这些节点的输出
  • feeds:从图节点字典映射到具体的值。
    在这里插入图片描述

4、模型训练

  • 定义损失:建立一个placeholder来表示标签(labels),基于标签和预测来构建损失节点。

在这里插入图片描述- 梯度计算:通过下面第一行的代码,我们可以把优化运算加入到运算图中,同时指定损失函数是cross_entropy,学习率是0.5。除了这种优化方法以外,还有其他的优化器。这些优化器可以自动后馈计算参数的梯度。

在这里插入图片描述
在这里插入图片描述

  • 训练模型的步骤
    • 创建会话(session)
    • 建立训练计划
    • 运行优化器 train_step
      在这里插入图片描述

5、变量共享问题

有的时候我们会使用很多个GPU来训练神经网络,这个时候就涉及到变量共享的问题。
在这里插入图片描述有一种方法是在一开始就建立变量字典,用一些字符串来代表变量,但是不利于封装。
在这里插入图片描述解决方法是建立一个变量层(variable scope)

  • tf.variable_scope() :提供一个层级来避免命名冲突
  • tf.get_variable() :当已经存在该变量的时候,就从命名层获取该变量;当不存在时就创建该变量
    在这里插入图片描述

6、简单总结

  • 构建图
    • 前馈/预测
    • 优化(梯度和train_step运算)
  • 初始化一个会话
  • 使用session.run(train_step, feed_dict)训练

二、代码展示

1、以线性回归为例

在这里插入图片描述在这里插入图片描述
在这里插入图片描述绘制出来的图像
在这里插入图片描述

2、skip-gram

在这里插入图片描述在这里插入图片描述计算结果
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值