Lecture 1
阅读材料:GET STARTED
Introduction
Download and Setup (推荐采用virtualenv或pip安装,读安装需要的那部分,其他的可以不读)
Basic Usage
目的:
理解tensorflow中的基本概念:Tensor、Graph、Session、Operation、Variable
理解tensorflow中的基本操作:Build the Graph、Launching the Graph、Fetch、Feed
了解如何使用tensorflow构建神经
读书报告
实验
举例子是最通俗易懂的方式,就从文档的第一个示例代码来看如何使用TensorFlow。
# -*- coding: utf-8 -*-
#这个是中文的编码
#首先就是导入所用的tensorflow,numpy模块
import tensorflow as tf
import numpy as np
"""第一点:准备数据"""
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
#y=w1x1+w2x2+b是我们的目标数据
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300
""" 第二点:Build the Graph """
#准备图模型中的框架
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
#确定损失函数
loss = tf.reduce_mean(tf.square(y - y_data))
#确定梯度下降优化算法,学习速率
optimizer = tf.train.GradientDescentOptimizer(0.5)
#确定目标函数,最小化损失函数
train = optimizer.minimize(loss)
# 初始化变量
init = tf.initialize_all_variables()
"""第三点:Launching the Graph"""
sess = tf.Session()
sess.run(init)
"""第四点:拟合平面"""
for step in xrange(0, 201):
sess.run(train)
if step % 20 == 0:
print step, sess.run(W), sess.run(b)
实验拟合过程如下:
0 [[ 0.66649044 -0.12903959]] [ 0.3710857]
20 [[ 0.20043358 0.13378492]] [ 0.27883124]
40 [[ 0.12146838 0.19014345]] [ 0.29317209]
60 [[ 0.10484462 0.19890188]] [ 0.29785585]
80 [[ 0.10116023 0.20001651]] [ 0.29933676]
100 [[ 0.10029446 0.20006956]] [ 0.29979664]
120 [[ 0.10007862 0.20003301]] [ 0.29993796]
140 [[ 0.10002185 0.20001219]] [ 0.29998115]
160 [[ 0.10000624 0.2000041 ]] [ 0.29999429]
180 [[ 0.10000183 0.20000131]] [ 0.29999825]
200 [[ 0.10000053 0.20000041]] [ 0.29999948]
使用 TensorFlow原则:
- 使用图 (graph) 来表示计算任务,这是编译式代码
- 在被称之为会话 (Session) 的上下文 (context) 中执行图.
- 使用 tensor 表示数据.
- 通过变量 (Variable) 维护状态.
- 使用 feed 和 fetch 为任意操作输入和输出数据.
TensorFlow基本概念:
张量(Tensor)
张量是为了表述统一,可以看做向量,矩阵的自然推广,用来表示广泛的数据类型。
标量—-0阶张量
向量—-1阶张量
矩阵—-2阶张量
n阶张量不好举例。。。
变量(Variables)
变量维护图执行过程中的状态信息,通常会将一个统计模型中的参数表示为一组变量.
图(graph)
TensorFlow 程序通常被组织成一个构建阶段, 和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图.
会话(Session)
启动图的第一步是创建一个Session 对象, 如果无任何创建参数, 会话构造器将启动默认图.Session 对象在使用完后需要关闭以释放资源.
节点(Operation)
节点是构成图的主要部分
TensorFlow基本操作:
- Build the Graph 构建图模型
- Launching the Graph 启动图模型
- Fetch 模型输出
- Feed 模型输入