NLP--(1)-(tensorflow)

Tensorflow

Tensorflow 安装

1.用Anaconda,使用conda create 创建对应的python环境
2.pip install 安装tensorflow
tensorflow安装教程

Tensorflow 基础

关注图、会话、tensor、变量、feed和fetch。
使用图(graphs)来表示计算任务、在被称之为会话(Session)的上下文(context)中执行图、使用tensor表示数据、通过变量(Variable)维护状态;使用feed和fetch为任意的操作赋值或者从其中获取数据。

参考:
TENSORFLOW从入门到精通之——TENSORFLOW基本操作 Tensorflow从入门到精通之——Tensorflow基本操作 | TensorFlowNews
tensorflow简介 简介 - TensorFlow 官方文档中文版 - 极客学院Wiki
tensorflow基本使用 基本使用 - TensorFlow 官方文档中文版 - 极客学院Wiki
莫凡tensorflow Tensorflow 教程系列 | 莫烦Python

TensorFlow-Examples https://github.com/aymericdamien/TensorFlow-Examples(关注Hello World、Basic Operations、Linear Regression、Simple Neural Network)

史上最全的Tensorflow学习资源汇总【干货】史上最全的Tensorflow学习资源汇总 - 知乎

Tensorflow结构

在这里插入图片描述

Tensorflow 使用图来表示计算任务

Tensorflow 是一个编程系统,使用图来表示计算任务。图中的节点被称之为op(operation)

一个 op(operation)获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组.

会话 (Session)

图必须在会话 (Session)里被启动. 会话 将图的 op(operation) 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor 实例.

with tf.Session() as sess:
	result=sess.run([product])
	print(result)

变量

在TensorFlow中,变量(Variable)是特殊的张量(Tensor),它的值可以是一个任何类型和形状的张量。与其他张量不同,变量存在于单个 session.run 调用的上下文之外,也就是说,变量存储的是持久张量,当训练模型时,用变量来存储和更新参数。除此之外,在调用op之前,所有变量都应被显式地初始化过。

import tensorflow as tf
v = tf.Variable([1,2,3])   #创建变量v,为一个array
print(v)  #查看v的shape,不是v的值。结果是: <tf.Variable 'Variable:0' shape=(3,) dtype=int32_ref>
with tf.Session() as sess:
	sess.run(v.initializer)     #运行变量的initializer。调用op之前,所有变量都应被显式地初始化过。
	sess.run(v)     #查看v的值,结果是:array([1, 2, 3])

除了我们自己填写变量的值外,一般可以使用TensorFlow提供了一系列操作符来初始化张量,初始值是常量或是随机值。

r = tf.Variable(tf.random_normal([20, 10], stddev=0.35))     #以标准差0.35的正太分布初始化一个形状为[20,40]的张量
z = tf.Variable(tf.zeros([20]))  #初始化一个形状为[20]的张量, 里面的元素值全部为0.

Fetch

为了取回操作的输出内容, 可以在使用 Session 对象的 run() 调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果.你也可以在 op 的一次运行中一起获得多个 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

# 输出:
# [ 21., 7.]

Feed

TensorFlow 还提供了 feed 机制, 该机制 可以临时替代图中的任意操作中的 tensor 可以对图中任何操作提交补丁, 直接插入一个 tensor.feed 使用一个 tensor 值临时替换一个操作的输出结果. 你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失. 最常见的用例是将某些特殊的操作指定为 “feed” 操作, 标记的方法是使用 tf.placeholder() 为这些操作创建占位符.

#创建占位符
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1, input2)

with tf.Session() as sess:
	#feed的数据一字典的形式传入 
  print sess.run([output], feed_dict={input1:[7.], input2:[2.]})
# 输出:
# [ 14.]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值