阅读(82.3k) 书签 (0)

介绍TensorFlow

2019-04-09 09:29 更新

什么是 TensorFlow

TensorFlow 表达了高层次的机器学习计算,大幅简化了第一代系统,并且具备更好的灵活性和可延展性.

TensorFlow,简单看就是Tensor和Flow,即意味着Tensor和Flow是TensorFlow最为基础的要素;Tensor意味着data,Flow意味着流动,意味着计算,意味着映射,即数据的流动,数据的计算,数据的映射,同时也体现数据是有向的流动、计算和映射.

从实例开始学习 TensorFlow

让我们看一段使用 Python API 撰写的 TensorFlow 示例代码,让你对将要学习的内容有初步的印象.

这段很短的 Python 程序生成了一些三维数据,然后用一个平面拟合它.

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 xrange(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 解决经典机器学习问题

我们来看一下 TensorFlow 是如何解决一个经典的机器学习问题的,相信这将激发你的学习兴趣.

在神经网络领域, 最为经典的问题莫过于 MNIST 手写数字分类问题,但是考虑到每个人对 TensorFlow 知识掌握的程度不同,我们准备了两篇不同程度的教程,分别面向机器学习领域的初学者和专家.如果你已经使用其它软件训练过许多 MNIST 模型, 请阅读高级教程(红色药丸链接); 如果你以前从未听说过 MNIST, 请阅读初级教程(蓝色药丸链接). 如果你的水平介于这两类人之间,我们建议你先快速浏览初级教程,然后再阅读高级教程.

  

图片由 CC BY-SA 4.0 授权; 原作者W. Carter