tensorflow的構(gòu)建流程
tf.Graph() 表示實(shí)例化了一個(gè)類,一個(gè)用于 tensorflow 計(jì)算和表示用的數(shù)據(jù)流圖,通俗來講就是:在代碼中添加的操作(畫中的結(jié)點(diǎn))和數(shù)據(jù)(畫中的線條)都是畫在紙上的“畫”,而圖就是呈現(xiàn)這些畫的紙,你可以利用很多線程生成很多張圖,但是默認(rèn)圖就只有一張。
例如有如下代碼:
import tensorflow as tf
g = tf.Graph()
## add nodes to the graph
with g.as_default():
a = tf.constant(1, name=‘a(chǎn)’)
b = tf.constant(2, name=‘b’)
c = tf.constant(3, name=‘c’)
z = 2 * (a - b) + c
## launch the graph
with tf.Session(graph=g) as sess:
writer = tf.summary.FileWriter(“E://PycharmProjects//Graph”, g)
print(‘2*(a-b)+c =》 ’, sess.run(z))
打開cmd命令行,輸入tensorboard --logdir=E:\PycharmProjects\Graph
回車后,打開google瀏覽器,輸入得的的網(wǎng)址即可看到 我們生成的流程圖了:
TensorFlow執(zhí)行流程
TensorFlow的基礎(chǔ)運(yùn)算
在搞神經(jīng)網(wǎng)絡(luò)之前,先讓我們把TensorFlow的基本運(yùn)算,也就是加減乘除搞清楚。
首先,TensorFlow有幾個(gè)概念需要進(jìn)行明確:
1 圖(Graph):用來表示計(jì)算任務(wù),也就我們要做的一些操作。
2 會(huì)話(Session):建立會(huì)話,此時(shí)會(huì)生成一張空?qǐng)D;在會(huì)話中添加節(jié)點(diǎn)和邊,形成一張圖,一個(gè)會(huì)話可以有多個(gè)圖,通過執(zhí)行這些圖得到結(jié)果。如果把每個(gè)圖看做一個(gè)車床,那會(huì)話就是一個(gè)車間,里面有若干個(gè)車床,用來把數(shù)據(jù)生產(chǎn)成結(jié)果。
3 Tensor:用來表示數(shù)據(jù),是我們的原料。
4 變量(Variable):用來記錄一些數(shù)據(jù)和狀態(tài),是我們的容器。
5 feed和fetch:可以為任意的操作(arbitrary operation) 賦值或者從其中獲取數(shù)據(jù)。相當(dāng)于一些鏟子,可以操作數(shù)據(jù)。
形象的比喻是:把會(huì)話看做車間,圖看做車床,里面用Tensor做原料,變量做容器,feed和fetch做鏟子,把數(shù)據(jù)加工成我們的結(jié)果。
2.1 創(chuàng)建圖和運(yùn)行圖:
下面我們創(chuàng)建一個(gè)圖,并在Session中執(zhí)行它,不用擔(dān)心看不懂,每句代碼都會(huì)注釋,只有有編程基礎(chǔ),都能OK:
上面就是用TensorFlow進(jìn)行了一個(gè)最簡(jiǎn)單的矩陣乘法。
2.2 創(chuàng)建一個(gè)變量,并用for循環(huán)對(duì)變量進(jìn)行賦值操作
可以看到,除了變量創(chuàng)建稍微麻煩一些和必須建立session來運(yùn)行,其他的操作基本和普通Python一樣。
2.3 通過feed設(shè)置placeholder的值
有的時(shí)候,我們會(huì)在聲明變量的時(shí)候不賦值,計(jì)算的時(shí)候才進(jìn)行賦值,這個(gè)時(shí)候feed就派上用場(chǎng)了。
責(zé)任編輯:YYX
-
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60560
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論