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


推薦閱讀:
相關文章