多维张量的理解
Tensor是Tensorflow中最基礎的數據結構,常常翻譯為張量,可以理解為n維數組或矩陣,相關函數:
constant(value, dtype=None, shape=None, name='Const', verify_shape=False)?0.零維張量
import tensorflow as tf#零維張量 const0 = tf.constant(1, tf.float16) print(const0)?運行結果:
Tensor("Const:0", shape=(), dtype=float16)?1.一維張量
#一維張量,長度為4 const1 = tf.constant([1, 2, 3, 4], tf.float16) print(const1)運行結果:
Tensor("Const_1:0", shape=(4,), dtype=float16)幾何表示:
????????一維張量沒有行和列的概念,只有長度的概念。上述的const1就是長度為4的一維張量,或者稱為向量。上面的圖僅為示意,代表一維張量只有axis=0這個方向,并不是指這是一個4行的向量。事實上,tensorflow在做一些運算時,反而經常把1行N列的二維張量簡化成一個長度為N的一維向量。
2.二維張量
#二維張量,3行4列 const2 = tf.constant([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]], tf.float16) print(const2)運行結果:
Tensor("Const_2:0", shape=(3, 4), dtype=float16)幾何表示:
?3.三維張量
#三維張量,3行4列深度為2的張量 const3 = tf.constant([[[ 1, 2], [ 3, 4], [ 5, 6], [ 7, 8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]], tf.float16) print(const3)運行結果:
Tensor("Const_3:0", shape=(3, 4, 2), dtype=float16)幾何表示:
?4.四維張量
#四維張量 const4 = tf.constant([#第一個3行4列深度為2的三維張量[[[1, 2], [ 3, 4], [ 5, 6], [ 7, 8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]],#第二個3行4列深度為2的三維張量[[[1, 2], [ 3, 4], [ 5, 6], [ 7, 8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]]], tf.float16) print(const4)運行結果:
Tensor("Const_4:0", shape=(2, 3, 4, 2), dtype=float16)5.如何判斷一個張量的bitch數,行,列,深度
const4 = tf.constant([#第一個3行4列深度為2的三維張量[[[1, 2], [ 3, 4], [ 5, 6], [ 7, 8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]],#第二個3行4列深度為2的三維張量[[[1, 2], [ 3, 4], [ 5, 6], [ 7, 8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]]], tf.float16)從左邊開始數連續[的數量,最多有X個[說明是X維張量。上面的例子就是4維張量。
以三維以上的張量為例:
從左邊開始數連續的[,最后一個[對應的]中一共兩個元素,分別為1, 2,說明深度為2。
接下來向左邊數上一級[對應的]中一共有4個元素[1, 2], [ 3, 4], [ 5, 6], [ 7, 8],說明列為4。
同理繼續數上一級,得到3行,2個batch。
6.小結
shape屬性中的元素大于等于3時,可以用3維空間來理解。
shape=(3, 4, 2)時,表示3行4列深度為2的張量
shape=(2, 3, 4, 2)時,表示有2個 3行4列深度為2的張量
shape=(6, 2, 3, 4, 2)時,表示有6個四維張量,這個四維張量又可以表示為2個 3行4列深度為2的張量。
shape中的屬性分別與axis=0,axis=1、axis=2、axis=3……對應,以此類推。當維度超過3時,上圖幾何中的坐標系表示就已經錯誤了。但是對于理解多維是有幫助的。
總結
- 上一篇: PHP 导出数据到Excel
- 下一篇: 常用的霍尔效应测试方案