計(jì)算圖(流, flow)
現(xiàn)在我們理解了Tensor的含義,是時(shí)候了解流(Flow)了。流是指一個(gè)計(jì)算圖或簡(jiǎn)單的一個(gè)圖,圖不能形成環(huán)路,圖中的每個(gè)節(jié)點(diǎn)代表一個(gè)操作,如加法、減法等。每個(gè)操作都會(huì)導(dǎo)致新的張量形成。
上圖展示了一個(gè)簡(jiǎn)單的計(jì)算圖,所對(duì)應(yīng)的表達(dá)式為:
e = (a+b)x(b+1)
計(jì)算圖具有以下屬性:
· 葉子頂點(diǎn)或起始頂點(diǎn)始終是張量。意即,操作永遠(yuǎn)不會(huì)發(fā)生在圖的開頭,由此我們可以推斷圖中的每個(gè)操作都應(yīng)該接受一個(gè)張量并產(chǎn)生一個(gè)新的張量。同樣,張量不能作為非葉子節(jié)點(diǎn)出現(xiàn),這意味著它們應(yīng)始終作為輸入提供給操作/節(jié)點(diǎn)。
· 計(jì)算圖總是以層次順序表達(dá)復(fù)雜的操作。通過(guò)將a + b表示為c,將b + 1表示為d,可以分層次組織上述表達(dá)式。 因此,我們可以將e寫為:
e = (c)x(d) 這里 c = a+b 且 d = b+1.
· 以反序遍歷圖形而形成子表達(dá)式,這些子表達(dá)式組合起來(lái)形成最終表達(dá)式。
· 當(dāng)我們正向遍歷時(shí),遇到的頂點(diǎn)總是成為下一個(gè)頂點(diǎn)的依賴關(guān)系,例如沒有a和b就無(wú)法獲得c,同樣的,如果不解決c和d則無(wú)法獲得e。
· 同級(jí)節(jié)點(diǎn)的操作彼此獨(dú)立,這是計(jì)算圖的重要屬性之一。當(dāng)我們按照?qǐng)D中所示的方式構(gòu)造一個(gè)圖時(shí),很自然的是,在同一級(jí)中的節(jié)點(diǎn),例如c和d,彼此獨(dú)立,這意味著沒有必要在計(jì)算d之前計(jì)算c。 因此它們可以并行執(zhí)行。
計(jì)算圖的并行
上面提到的最后一個(gè)屬性當(dāng)然是最重要的屬性之一。它清楚地表明,同級(jí)的節(jié)點(diǎn)是獨(dú)立的,這意味著在c被計(jì)算之前不需空閑,可以在計(jì)算c的同時(shí)并行計(jì)算d。Tensorflow充分利用了這個(gè)屬性。








暫無(wú)數(shù)據(jù)