文章作者:Tyan 博客:noahsnail.com | CSDN | 简书
介绍
让我们开始学习并运行TensorFlow!
但在我们开始之前,让我们先看一眼在Python API中TensorFlow代码什么样,对我们要学习的东西有点感觉。
下面是一个Python小程序,它在二维空间构造了一些数据,并用一条直线来拟合这些数据。
代码语言:javascript复制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(np.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]
代码的第一部分构建数据流图。在session
创建和run
函数调用之后,TensorFlow才开始真正的进行计算。
为了进一步提高你的兴趣,我们建议你查看一下在TensorFlow中经典的机器学习问题是什么样子。在神经网络领域,最经典的问题是MNIST手写字符识别问题。这儿我们有两个介绍,一个是为初学者准备的,一个是为专业人士准备的。如果你已经用其它的软件包训练了许多MNIST模型,请点红色的药丸。如果你从未听过MNIST,请点蓝色药丸。如果你介于两者之间,我们建议你先略读蓝色部分,再看红色部分。
图像许可CC BY-SA 4.0; 原作者W. Carter
如果你已经确定你想学习并安装TensorFlow,你可以跳过这些直接看接下来的东西。不用担心,你仍会看到MNIST——我们也将使用MNIST作为技术教程中的一个例子来阐述TensorFlow的特性。