[NLP学习笔记-Preparation]

博客说明

此博客是本人学习自然语言处理(NLP)技术的学习笔记、心得体会,希望能和大家多多交流,共同进步!

环境搭建

安装Anaconda

  1. Anaconda简介
    Anaconda是一种数据科学开发平台,它集成了多个第三方的数据科学库,如:Numpy,Pandas,Scipy,Scikit-learn等
    Anaconda部分集成库
  2. Anaconda下载地址
    Anaconda官网
  3. 安装Anaconda注意事项
  • 根据自己的操作系统位数选择对应的Anaconda版本
  • 选择对应的Python版本(最好是选择较为新的稳定版本,目前是Python3.7和Python2.7)
    Anaconda Navigator界面

安装TensorFlow

  • 由于我是Windows系统,所以在这里展示一下Windows安装TensorFlow。Anaconda安装完成之后,可以直接打开命令提示符使用pip安装TensorFlow
pip install tensorflow

以下是安装TensorFlow的部分截图:
在这里插入图片描述
在这里插入图片描述

  • 验证TensorFlow是否安装成功
    打开命令提示符,输入python进入Python运行环境,然后输入import tensorflow as tf,如果没有报错则表示TensorFlow已经成功安装
    在这里插入图片描述
  • 其他操作系统的TensorFlow安装教程

TensorFlow基础

TensorFlow 是一个编程系统, 使用来表示计算任务。

Tensor + Flow

TensorFlow由Tensor和Flow两个单词组合而成,这两个单词也表明了TensorFlow的特点:

  • Tensor
    表示张量的意思,是TensorFlow中核心的数据结构,可以简单理解为多维数组。零维是标量,一维是向量,二维是矩阵,三维及其以上就可以被简单称为张量

    Tensor的概念有:阶、形状和数据类型,其中特别需要关注的是形状数据类型 == >Tensor的阶、形状、数据类型

  • Flow
    代表数据流动,说明了 TensorFlow 的另一个特点:使用计算图来执行任务。

计算图

  • 由图的知识知道,图由节点和边构成。在 TensorFlow 的计算图中,图中的节点被称之为 op (operation 的缩写)。一个 op 获得 0 个或多个 Tensor,执行计算,产生 0 个或多个 Tensor

  • TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段。在构建阶段, op 的执行步骤被描述成一个图;在执行阶段, 使用会话执行执行图中的 op。

构建图:构建阶段

  • 构建图就是创建源 op,说白了就是定义一些常量(constant)、变量(Variables)、占位符(placeholder)和一些运算方式(如addmatmul)等
  • Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入
  • 在启动 TensorFlow 时,程序就自带了一个默认图 (default graph)

简单示例如下:

import tensorflow as tf
#定义矩阵一定要弄清方括号数量!!!
#创建两个常量 op
matrix_1 = tf.constant([[2., 3.2]])   #1x2
matrix_2 = tf.constant([[2.], [3.2]]) #2x1

#创建一个运算 op
product = tf.matmul(matrix_1, matrix_2)

启动图:执行阶段

  • 构造阶段完成后, 才能启动图.。启动图的第一步是创建一个 Session 对象,如果无任何创建参数,会话构造器将启动默认图
  • Session 对象在使用完后需要关闭以释放资源. 除了显式调用 close 外, 也可以使用 Python 的上下文管理器 with 来自动完成关闭动作。下面分别使用两种方法执行图:
#方法一
#创建回话
sess = tf.Session()
#调用 Session 的 run 方法
result = sess.run(product)
print(result)

#任务结束,关闭会话
sess.close()
#方法二
with tf.Session() as sess:
	result = sess.run([product])
	print(result)

变量(Variables)

  1. 作用
    训练模型时,一般使用变量 Variable 来保存和更新参数。变量用于保存张量,但是必须对它们进行初始化操作,变量可以被保存下来以供后续使用。
  2. 定义变量
    使用 tf.Variable() 定义变量
var = tf.Variable([1, 2], name='var')
  1. 初始化变量
    必须先运行变量初始值设定项,然后才能运行模型中的其他操作。最简单的方法是添加一个运行所有变量初始值设定项的 op tf.initialize_all_variables(),并在使用模型之前运行该 op
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
                      name="weights")
biases = tf.Variable(tf.zeros([200]), name="biases")
...
# Add an op to initialize the variables.
init_op = tf.initialize_all_variables()

# Later, when launching the model
with tf.Session() as sess:
  # Run the init operation.
  sess.run(init_op)
  ...
  # Use the model
  ...
  1. 保存变量和恢复变量
    使用 tf.train.Saver() 创建一个 Saver 对象来管理模型中的所有变量
saver = tf.train.Saver()

#保存变量
saver.save(sess, '/tmp/model.ckpt')

#恢复变量
saver.restore(sess, '/tmp/model.ckpt')

Fetch 操作

  • 为了取回操作的输出内容, 可以在使用 Session 对象的 run 调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果
input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
intermed = tf.add(input2, input3)
mul = tf.mul(input1, intermed)

with tf.Session() as sess:
  result = sess.run([mul, intermed])
  print(result)

# 输出:
# [array([ 21.], dtype=float32), array([ 7.], dtype=float32)]

Feed 机制

  • feed 机制就是用于为计算图中的一个 op 添加数据进行计算,比如说用于 run 方法的 feed_dict 参数
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1, input2)

with tf.Session() as sess:
  print sess.run([output], feed_dict={input1:[7.], input2:[2.]})

# 输出:
# [array([ 14.], dtype=float32)]

NLP介绍

自然语言处理(NLP)是人工智能领域的一个子领域,主要是想让机器可以“理解”人类语言,使得机器的智能程度更高。

TensorFlow资料汇总

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值