tensorflow 張量的階、形狀、數據類型及None在tensor中表示的意思。


x = tf.placeholder(tf.float32, [None, 784])

x isn't a specific value. It's a placeholder, a value that we'll input when we ask TensorFlow to run a computation. We want to be able to input any number of MNIST images, each flattened into a 784-dimensional vector. We represent this as a 2-D tensor of floating-point numbers, with a shape [None, 784]. (Here None means that a dimension can be of any length.)

 

TensorFlow用張量這種數據結構來表示所有的數據.你可以把一個張量想象成一個n維的數組或列表.一個張量有一個靜態類型和動態類型的維數.張量可以在圖中的節點之間流通.

在TensorFlow系統中,張量的維數來被描述為.但是張量的階和矩陣的階並不是同一個概念.張量的階(有時是關於如順序度數或者是n維)是張量維數的一個數量描述.比如,下面的張量(使用Python中list定義的)就是2階.

    t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

你可以認為一個二階張量就是我們平常所說的矩陣,一階張量可以認為是一個向量.對於一個二階張量你可以用語句t[i, j]來訪問其中的任何元素.而對於三階張量你可以用't[i, j, k]'來訪問其中的任何元素.

數學實例 Python 例子
0 純量 (只有大小) s = 483
1 向量(大小和方向) v = [1.1, 2.2, 3.3]
2 矩陣(數據表) m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3 3階張量 (數據立體) t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
n n階 (自己想想看) ....

形狀

TensorFlow文檔中使用了三種記號來方便地描述張量的維度:階,形狀以及維數.下表展示了他們之間的關系:

形狀 維數 實例
0 [ ] 0-D 一個 0維張量. 一個純量.
1 [D0] 1-D 一個1維張量的形式[5].
2 [D0, D1] 2-D 一個2維張量的形式[3, 4].
3 [D0, D1, D2] 3-D 一個3維張量的形式 [1, 4, 3].
n [D0, D1, ... Dn] n-D 一個n維張量的形式 [D0, D1, ... Dn].

形狀可以通過Python中的整數列表或元祖(int list或tuples)來表示,也或者用TensorShape class.

數據類型

除了維度,Tensors有一個數據類型屬性.你可以為一個張量指定下列數據類型中的任意一個類型:

數據類型 Python 類型 描述
DT_FLOAT tf.float32 32 位浮點數.
DT_DOUBLE tf.float64 64 位浮點數.
DT_INT64 tf.int64 64 位有符號整型.
DT_INT32 tf.int32 32 位有符號整型.
DT_INT16 tf.int16 16 位有符號整型.
DT_INT8 tf.int8 8 位有符號整型.
DT_UINT8 tf.uint8 8 位無符號整型.
DT_STRING tf.string 可變長度的字節數組.每一個張量元素都是一個字節數組.
DT_BOOL tf.bool 布爾型.
DT_COMPLEX64 tf.complex64 由兩個32位浮點數組成的復數:實數和虛數.
DT_QINT32 tf.qint32 用於量化Ops的32位有符號整型.
DT_QINT8 tf.qint8 用於量化Ops的8位有符號整型.
DT_QUINT8 tf.quint8 用於量化Ops的8位無符號整型.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM