Tensorflow教程(一)——教程模板说明

该篇博客参考TensorFlow 官方文档中文版,对其进行进一步加深理解,博主也是刚刚入手TensorFlow,如果有什么不对的地方可以评论交流。

TensorFlow 总程序

这里边介绍了一个TensorFlow基础教程,我们可以看一下这个程序

import tensorflow as tf
import numpy as np

# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# 构造一个线性模型
# 
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()

# 启动图 (graph)
sess = tf.Session()
sess.run(init)

# 拟合平面
for step in range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print step, sess.run(W), sess.run(b)

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

这个是一个最基本的TensorFlow程序,基本就是求解等式
y = W 1 x 1 + W 2 x 2 + b y = {W_1}{x_1}+{W_2}{x_2} + b y=W1x1+W2x2+b
该程序的主要任务就是:已知 y y y x 1 x_1 x1 x 2 x_2 x2 一些数据,求解 W 1 {W_1} W1 W 2 {W_2} W2 b b b数值大小。

构建 x、y 数组
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300

程序借助NumPy数据库对 x x x产生一个随机的2*100的数组,接着利用相应的乘法,使每一个 x x x数据都会产生一个 y y y数据。其中[0.100,0.200]就是我们假设的 W 1 、 W 2 W_1、W_2 W1W2, 0.300为 b b b

构建TensorFlow模型
# 构造一个线性模型
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

在上边程序中会构建一个TensorFlow变量,一个为 b b b,另一个为 W W W
b b b 的创建直接借助tf.zeros()函数,创建一个 1 ∗ 1 1*1 11 的 0 数组。
W W W 的创建使用tf.random_uniform()函数,会产生一个 1 ∗ 2 1*2 12的数组,最小值为-1.0(可以包括)、最大值为1.0(不包括)。
直接将 b b b W W W 打印可以看到下边的信息,其中包括变量名、大小与类型。

<tf.Variable 'Variable:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'Variable_1:0' shape=(1, 2) dtype=float32_ref>
设置损失函数、操作、以及训练
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

在上边的程序中首先设置损失函数loss,它是借助tf.square()函数计算真实值与计算值之间的方差,接着使用tf.reduce_mean()函数计算各个数值的平均值。

使用tf.train.GradientDescentOptimizer接口使用GradientDescentOptimizer自适应学习率来自动调节训练过程中学习速率。

train = optimizer.minimize(loss)然后定义训练为使用GradientDescentOptimizer方法来使得损失函数最小的操作。

初始化变量
# 初始化变量
init = tf.initialize_all_variables()

使用tf.initialize_all_variables()函数将所有的函数进行初始化,就是将我们之前设定的 b b b W W W 进行初始化。

启动图
# 启动图 (graph)
sess = tf.Session()
sess.run(init)

图 (graph)是TensorFlow中一个很重要的概念,TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op。上边的程序就是将TensorFlow执行启动图的操作。

run(fetches, feed_dict=None, options=None, run_metadata=None)

run()运行fetches中的操作节点并求其,fetches参数可以是单个图元素(single graph element),也可以是任意嵌套的列表list,元组tuple,名称元组namedtuple,字典dict或包含图元素的OrderedDict。是将 ‘ feed_dict ’ 中的值替换为相应的输入值,通过运行必要的图形片段(necessary graph fragment)来执行每一个 ‘ Operation ’ 并评估 ‘ fetches ’ 中的每一个张量(evaluate every Tensor in fetches

执行循环
# 拟合平面
for step in range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print step, sess.run(W), sess.run(b)

在上边程序中我们开始执行循环,从for()函数中能够看出循环执行200次,每次循环都会启动图的训练操作( sess.run(train)),而且在每20次循环过程中输出一次优化以后的 b b b W W W 的数值。

0 [[0.76612234 0.3431572 ]] [0.66802967]
20 [[0.8309442  0.18778986]] [0.34280622]
40 [[0.8805279 0.1933982]] [0.313826]
60 [[0.8942932  0.19743352]] [0.30440328]
80 [[0.8982843  0.19910687]] [0.30139136]
100 [[0.8994758  0.19970436]] [0.30043778]
120 [[0.8998383  0.19990459]] [0.30013737]
140 [[0.89994985 0.19996963]] [0.30004302]
160 [[0.8999844  0.19999044]] [0.30001345]
180 [[0.89999515 0.199997  ]] [0.3000042]

从上边的运行结果中能够看出 b b b W W W再不断朝着我们期望的数值进行变化。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于关注和分享TensorFlow深度学习算法设计的人工智能学习者来说,《深入理解人工智能算法设计》这本书是一本非常宝贵的学习资源。TensorFlow是一个开源的机器学习框架,它提供了丰富的工具和库,可以帮助开发者设计和训练高效的深度学习模型。 这本书对于TensorFlow深度学习的算法设计提供了详细、系统的解读,对于想要深入学习和掌握TensorFlow的人来说非常有帮助。书中包含了各种不同的算法设计案例,从基础的神经网络模型到复杂的深度学习网络,涵盖了各个方面的知识。 通过关注和分享《深入理解人工智能算法设计》这本书,可以帮助更多的人了解和学习TensorFlow深度学习的算法设计。同时,分享这本书也可以推广和宣传TensorFlow这个强大的工具,让更多的人受益于人工智能算法设计的知识。 为了方便更多人获取这本书,《深入理解人工智能算法设计》的PDF版本可以通过下载来获得。PDF格式的书籍可以在各种电子设备上阅读,包括电脑、平板和手机。通过下载PDF版本,学习者可以随时随地地查阅这本书,提高学习效率。 因此,我鼓励大家关注和分享《深入理解人工智能算法设计》这本书,通过深入学习TensorFlow深度学习的算法设计,提升自己在人工智能领域的技能和能力。同时,也希望更多人可以通过下载PDF版本的方式获取这本书,便捷地进行学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值