tensorflow的工作原理

2021-12-30 03:51:56 字數 1279 閱讀 1065

?? 上章節對比了一下 numpy 和 tensorflow 的計算方式,這節來具體闡述一下tensorflow的工作原理:

??tensorflow是用資料流圖(data flow graphs)技術來進行數計算的!!!

那麼問題來了,啥是資料流圖???(重要的問題問三遍)

??資料流圖(data flow diagram):簡稱dfd,它從資料傳遞和加工角度,以圖形方式來表達系統的邏輯功能、資料在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟體模型的一種圖示方法。 —— [百度百科]

??說的這麼專業,這麼抽象,還是用**來說明問題:

??圖中,節點代表數**算,邊表示節點之間的某種聯絡,用來傳輸多維資料,而節點可以被分配到多個計算裝置上,可以非同步和並行地執行操作。因為圖是有向圖,所以計算按照指向有次序的進行。

(雖然圖是我偷的,但是學習的心是真的)

??下面用tensorflow來實現一下圖上的計算方法:

import tensorflow as tf

# 建立佔位物件x, y

x = tf.placeholder("float", [none])

y = tf.placeholder("float", [none])

# 設定會話

sess = tf.session()

# 初始化

init = tf.initialize_all_variables()

sess.run(init)

# 構建計算表示式

z = (2.2 - (x/11)) + (7 * tf.cos(y))

# 傳入引數啟動會話完成計算, 這裡令x = 1, y = 2

print sess.run(z, feed_dict=)

# 得到結果

# [-0.80393696]

再使用numpy來驗證一下結果是否正確

import numpy as np

print (2.2 - (1 / float(11)) + (7 * np.cos(2)))

# 得到結果

# -0.803936946739

??這裡對比 numpy 發現 tensorflow 計算是如此的麻煩, numpy 一行**的事, tensorflow 居然要寫那麼多,本身 tensorflow 就是來解決大規模資料量計算的,殺雞焉能用牛刀,這裡與 numpy 對比只是為了更好的理解它的執行計算方式。

TensorFlow的Session工作原理

session是graph和執行者之間的媒介,session.run 實際上將graph fetches feed dict序列化到位元組陣列中,並呼叫tf session.tf run 參見 usr local lib python2.7 site packages tensorflow pyth...

簡述hdfs工作原理 HDFS的工作原理

hdfs 的工作原理 hadoop 分布式檔案系統 hdfs 是一種被設計成適合執行在通用硬體上的分布式檔案系統。hdfs 是乙個高度容錯性的系統,適合部署在廉價的 機器上。它能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。要理解 hdfs 的內部工作原理,首先要理解什麼是分布式 檔案系統。...

TensorFlow的自動求導原理分析

tensorflow使用的求導方法稱為自動微分 automatic differentiation程式設計客棧 它既不是符號求導也不是數值求導,而類似於將兩者結合的產物。最基本的原理就是鏈式法則程式設計客棧,關鍵思想是在基本操作 op 的水平上應用符號求導,並保持中間結果 grad 基本操作的符號求...