Ternsorflow 学习:001-通过例程,初步了解tensorflow

前言

本章的目的是了解和运行 TensorFlow,在开始之前,让我们先看一段使用 Python API 撰写的 TensorFlow 示例代码,让你 对将要学习的内容有初步的印象。

下面这段短小的 Python 程序将把一些数据放入二维空间,再用一条线来拟合这些数据:

import tensorflow as tf
import numpy as np
 # Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3

x_data = np.random.rand(100).astype("float32")
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but Tensorflow will
# figure that out for us.)
w = tf.Variable(tf.random_uniform([1],-1.0,1.0))
b = tf.Variable(tf.zeros([1]))
y = w * x_data +b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
 # Before starting, initialize the variables. We will 'run' this first
init = tf.initialize_all_variables()
# Launch the graph.
sess = tf.Session()
sess.run(init)
# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 ==0:
        print(step, sess.run(w), sess.run(b))
# Learns best fit is W: [0.1], b: [0.3]
(tensorflow-dev)

以上代码的第一部分构建了数据的流向图 (?ow graph).在一个 session 被建立并 且run()函数被运行前,TensorFlow 不会进行任何实质的计算. 在虚拟环境下运行python3 tf_001.py以后的执行结果为:

[0.5336875] [0.07610922]
[0.22660719] [0.2293212]
[0.13763347] [0.278991]
[0.1111864] [0.29375517]
[0.10332511] [0.29814377]
[0.10098837] [0.29944825]
[0.10029378] [0.299836]
[0.10008732] [0.29995126]
[0.10002597] [0.2999855]
[0.10000773] [0.2999957]
[0.10000231] [0.29999873]
(tensorflow-dev)

为了进一步激发你的学习欲望, 我们想让你先看一下 TensorFlow 是如何解决一个经典的机器学习问题的。
在神经网络领域,最为经典的问题莫过于 MNIST 手写数字分类。
为此,我们准备了两篇不同的教程,分别面向初学者和专家。如果你已经使用其它软件训练过许多MNIST模型,请参阅高级教程(红色药丸).如果你以前从未听说过MNIST,请先阅读初级教程 (蓝色药丸).如果你的水平介于这两类人之间, 我们建议你先快速 浏览初级教程,然后再阅读高级教程。

相关推荐