1. 什么是Tensorflow?

在人工智慧,机器学习以及深度学习的浪潮推动下,一系列的平台推出进入大家的眼球,而最为火爆的为Tensorflow,最大的原因是Tensorflow底层封装的很好,让开发人员能快速上手并且直接应用.

2. Tensorflow 运行机理?

Tensorflow的运行机理大致如下:用张量定义数据模型,把数据模型和操作定义在计算图中,使用会话运行计算. 把计算定义在图上,跟Spark很像。

3. Tensorflow的应用?

  • 可以处理数据挖掘任务(参考我的这篇文章:数据挖掘的知识大纲)
  • 可以处理机器学习任务
  • 可以处理深度学习任务
  • 可以进行并行化学习

4. Tensorflow未来发展方向?

对比大数据生态圈:Hadoop生态俨然成为了业界的标准,通过MapReduce或Spark介面来处理数据,用户通过API提交任务后由Yarn进行统一的资源分配和调度,不仅让分散式计算成为可能,也通过资源共享和统一调度平的台极大地提高了伺服器的利用率。

未来tensorflow也基于这样的部署方案,目前的方案有:Google Cloud ML,Cloud Machine Learning,Caicloud.

5. 我该不该学Tensorflow?

Tensorflow主要用于谷歌BAT等巨头公司和科研任务,目前业界98%以上都用Spark,Tensorflow能做的Spark也能做,若是做科研,倒是可以学,底层代码都封装好,减去很多手动实现成本,若是就业,不如好好学习Spark.

6. 安装Tensorflow

  • 配置Anaconda

若你像我一样,Anaconda虚拟环境不起作用,那么直接修改环境变数:

  • 检查GPU支持

  • 安装Tensorflow-GPU版本

1. 安装tensorflow gpu版本:pip install tensorflow-gpu,注意安装过程中提示未安装的包需手动安装;

2. 安装相应版本的CUDA: CUDA Toolkit 9.0 Downloads,使用nvcc -V检查安装是否成功(目前支持到9.0版本);

3. 安装相应版本的cuDNN:developer.nvidia.com/cu ,按照官方文档覆盖文件。

7. 一个简单范例

import tensorflow as tf
import numpy as np

# Prepare train data
train_X = np.linspace(-1, 1, 100)
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.33 + 10

# Define the model
X = tf.placeholder("float")
Y = tf.placeholder("float")

w = tf.Variable(0.0, name="weight")
b = tf.Variable(0.0, name="bias")

loss = tf.square(Y - X * w - b)
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)

# Create session to run
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
epoch = 1
for i in range(10):
for (x, y) in zip(train_X, train_Y):
_, w_value, b_value = sess.run([train_op, w, b],feed_dict={X: x,Y: y})
print("Epoch: {}, w: {}, b: {}".format(epoch, w_value, b_value))
epoch += 1

经过10次迭代,w和b收敛到2和10,模型结果如下:

8. Tensorflow的资源(持续更新)

介绍、配置与代码资源:

机器学习速成课程 | Google Developers

资源 | GitHub万星:适用于初学者的TensorFlow代码资源集

TensorFlow深度学习,一篇文章就够了 - 文章 - 伯乐在线

视频课程:

Deep Learning | Coursera

Machine Learning | Coursera

Machine Learning Foundations: A Case Study Approach | Coursera


推荐阅读:
相关文章