一種用numpy-style broadcasting來保證tensor參數(shù)的形態(tài)兼容的操作。
一塊可以用來運(yùn)算并且擁有自己的地址空間的硬件,比如GPU和CPU。
Tensor 的一個(gè)方法,返回 Tensor 的值。觸發(fā)任意一個(gè)圖計(jì)算都需要計(jì)算出這個(gè)值。只能在一個(gè)已經(jīng)啟動(dòng)的會(huì)話的圖中才能調(diào)用該 Tensor 值。
TensorFlow 的一個(gè)概念:把一個(gè) Tensor 直接連接到一個(gè)會(huì)話圖表中的任意節(jié)點(diǎn)。feed 不是在構(gòu)建圖(graph)的時(shí)候創(chuàng)建,而是在觸發(fā)圖的執(zhí)行操作時(shí)去申請(qǐng)。一個(gè) feed 臨時(shí)替代一個(gè)帶有 Tensor 值的節(jié)點(diǎn)。把feed數(shù)據(jù)作為run( )方法和eval( )方法的參數(shù)來初始化運(yùn)算。方法運(yùn)行結(jié)束后,替換的 feed 就會(huì)消失,而最初的節(jié)點(diǎn)定義仍然還在??梢酝ㄟ^tf.placeholder( )把特定的節(jié)點(diǎn)指定為 feed 節(jié)點(diǎn)來創(chuàng)建它們。詳見Basic Usage.
TensorFlow中的一個(gè)概念:為了取回運(yùn)算操作的輸出結(jié)果。取回的申請(qǐng)發(fā)生在觸發(fā)執(zhí)行圖操作的時(shí)候,而不是發(fā)生在建立圖的時(shí)候。如果要取回一個(gè)或多個(gè)節(jié)點(diǎn)(node)的 Tensor 值,可以通過在 Session 對(duì)象上調(diào)用run( )方法并將待取回節(jié)點(diǎn)(node)的列表作為參數(shù)來執(zhí)行圖表(graph)。詳見Basic Usage。
把運(yùn)算任務(wù)描述成一個(gè)直接的無環(huán)圖形(DAG),圖表中的節(jié)點(diǎn)(node)代表必須要實(shí)現(xiàn)的一些操作。圖中的邊代表數(shù)據(jù)或者可控的依賴。GratheDef 是系統(tǒng)中描述一個(gè)圖表的協(xié)議(api),它由一個(gè) NodeDefs 集合組成。一個(gè)GraphDef可以轉(zhuǎn)化成一個(gè)更容易操作的圖表對(duì)象。
在 Python API 中,TensorFlow 僅僅在第一維上對(duì) Tensor 有所體現(xiàn)。如果一個(gè) Tensor 有k維,那么一個(gè) IndexedSlices 實(shí)例在邏輯上代表一個(gè)沿著這個(gè) Tensor 第一維的(k-1)維切片的集合。切片的索引被連續(xù)儲(chǔ)存在一個(gè)單獨(dú)的一維向量中,而對(duì)應(yīng)的切片則被拼接成一個(gè)單獨(dú)的k維 Tensor。如果 sparsity 不是受限于第一維空間,請(qǐng)用 SparseTensor。
圖中的一個(gè)元素。 把啟動(dòng)一個(gè)特定操作的方式稱為特定運(yùn)算圖表的一個(gè)節(jié)點(diǎn),包括任何用來配置這個(gè)操作的屬性的值。對(duì)于那些多形態(tài)的操作,這些屬性包括能完全決定這個(gè)節(jié)點(diǎn)(Node)簽名的充分信息。詳見graph.proto。
在 TensorFlow 的運(yùn)行時(shí)中,它是一種類似 add 或 matmul 或 concat的運(yùn)算??梢杂?a rel="nofollow" >how to add an op中的方法來向運(yùn)行時(shí)添加新的操作。
在 Python 的API中,它是圖中的一個(gè)節(jié)點(diǎn)。在tf.Operation類中列舉出了這些操作。一個(gè)操作(Operation)的 type 屬性決定這個(gè)節(jié)點(diǎn)(node)的操作類型,比如add和matmul。
在一個(gè)運(yùn)行的圖中執(zhí)行某種操作的行為。要求圖必須運(yùn)行在會(huì)話中。
在 Python 的 API 中,它是 Session 類的一個(gè)方法tf.Session.run??梢酝ㄟ^ Tensors 來訂閱或獲取run( )操作。
在C++的API中,它是tensorflow::Session類 的一個(gè)方法。
啟動(dòng)圖的第一步是創(chuàng)建一個(gè) Session 對(duì)象。Session 提供在圖中執(zhí)行操作的一些方法。
在 Python API中,使用tf.Session。
在 C++ 的API中,tensorflow::Session是用來創(chuàng)建一個(gè)圖并運(yùn)行操作的類:
Tensor 的維度和它們的大小。
在一個(gè)已經(jīng)啟動(dòng)的圖中,它表示流動(dòng)在節(jié)點(diǎn)(node)之間的 Tensor 的屬性。一些操作對(duì) shape 有比較強(qiáng)的要求,如果沒有 Shape 屬性則會(huì)報(bào)告錯(cuò)誤。
在 Python API中,用創(chuàng)建圖的 API 來說明 Tensor 的 Shape 屬性。Tensor 的Shape 屬性要么只有部分已知,要么全部未知。詳見tf.TensroShape
在C++中,Shape 類用來表示 Tensor 的維度。tensorflow::TensorShape。
在 Python API 中,它用來表示在 TensorFlow 中稀疏散落在任意地方的 Tensor 。SparseTensor 以字典-值格式來儲(chǔ)存那些沿著索引的非空值。換言之,m個(gè)非空值,就包含一個(gè)長度為m的值向量和一個(gè)由m列索引(indices)組成的矩陣。為了提升效率,SparseTensor 需要將 indice(索引)按維度的增加來按序存儲(chǔ),比如行主序。如果稀疏值僅沿著第一維度,就用 IndexedSlices。
Tensor是一種特定的多維數(shù)組。比如,一個(gè)浮點(diǎn)型的四維數(shù)組表示一小批由[batch,height,width,channel]組成的圖片。
在一個(gè)運(yùn)行的圖(graph)中,它是一種流動(dòng)在節(jié)點(diǎn)(node)之間的數(shù)據(jù)。 在 Python 中,Tensor 類表示添加到圖的操作中的輸入和輸出,見tf.Tensor,這樣的類不持有數(shù)據(jù)。
在C++中,Tensor是方法Session::Run( )的返回值,見tensorflow::Tensor,這樣的 Tensor 持有數(shù)據(jù)。
原文:Glossary
翻譯:leege100
校對(duì):lonlonago