詳細理解Tensor中的張量

2021-10-10 22:42:44 字數 2956 閱讀 8196

最通俗的語言解釋什麼是張量,最近有混亂和不理解的可以詳細看一下,耐心看就行。emmmm我今天遇到了個問題把我一下子亂了所以再回憶一下基礎。

一、一維張量

從一維開始:

tf.constant(

[1.0 , 3.0 , 6.0]

)

表示:生成乙個一維張量(向量),shape是1行3列即shape是[3]。為什麼不是[1,3]呢?因為這個張量是一維的,只有乙個維度,你可以把維度和shape理解為乙個key:value的關係,就是乙個維度是擁有值的,這個值在張量中體現為 的層數。

shape為[1,3]的應該是:tf.constant([[1.0 , 5.0 , 9.0]])

二、二維張量

tf.constant(

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

])

如上,這就是乙個二維張量,看乙個tensor有多少個維度,首先從最裡面層的[或者]來數,有多少個層的[或者]就是有多少個維度,所以這裡是二維。

從[或者]來看,可以判斷有兩個維度,那如何判斷這裡的shape呢?

首先從最裡面乙個維度來看,它是有3個元素的,如[1.,2.,3.](注意,這個一般代表有幾個特徵,特徵可以理解為datafame的列),所以最裡面乙個維度為3,其次最裡面這個維度有3個樣本,所以最外面的維度是3.

我這裡為什麼要說最裡面和最外面呢?而不說第乙個維度、第二個維度呢?因為維度可以是相對的,你把最裡面的維度叫做第乙個維度也可以,把最外面的維度叫做第乙個維度也可以。這個並無大礙。這裡我們以最裡面成為第乙個維度,最外面成為第二個維度。

三、三維張量

先說,下面是乙個三維張量:

tf.constant([[

[1., 1.], [2., 2.]

], [

[3., 3.], [4., 4.]]]

)

其返回值是:

700, shape=(2

,2,2

), dtype=float32, numpy=

array([[

[1.,

1.],

[2.,

2.]]

,[[3

.,3.

],[4

.,4.

]]], dtype=float32)

>

如何理解呢?首先從[的數量可以判斷這個張量是三維的,其次,第乙個維度有2個值,如1.和1.,所以第乙個維度是2,第二個維度也是有兩個值,如[1.,1.]和[2.,2.],所以第二個維度是2,再看第三個維度,第三個維度有兩個值,分別是:

[[1.,1.],[2.,2.]] 和[[3.,3.],[4.,4.]]

所以第三個維度是2。所以這個張量有3個維度,3個維度的值分別是2,2,2.即shape是(2,2,2)。注意:這裡的維度index是從裡往外算的。

四、超過三維

這裡不舉例了,反正就是一直堆疊到陣列中即可。

比如:

tf.constant([[

[[1.

,1.]

,[2.

,2.]

],[[

3.,3

.],[

4.,4

.]]]

])

這個就是乙個四維向量!

返回值是:

701, shape=(1

,2,2

,2), dtype=float32, numpy=

array([[

[[1.

,1.]

,[2.

,2.]

],[[

3.,3

.],[

4.,4

.]]]

], dtype=float32)

>

分析一下:分析三維的時候那個三維張量的shape是(2,2,2),然後四維的話加了乙個層,可以這樣理解:就是把三維張量的第三維算作第四維的值,有多少個第三維,那麼第四維的shape值就是多少。

這麼這裡是有這麼多個三維,如下:

[[[

1.,1

.],[

2.,2

.]],

[[3.

,3.]

,[4.

,4.]

]]

以上是乙個三維張量,而四維張量的第四維度只有這麼乙個三維,注意喔,上面這個三維看作四維的乙個值!!! 所以因為第四維只有乙個值,所以自然第四維的shape值就是1了。

emmm說好的不舉例,又舉例了。。。

以上就是第四維的情況。然後n維的話,也按照這個思路和規律去理解。

注意:!

在tf的張量列印出來的格式中,他不是從裡到外數張量的,他是從外到裡數的。

案例:

tf.constant([[

[[1., 1.], [2., 2.]

], [

[3., 3.], [4., 4.]]]

])

列印結果:

(1, 2, 2, 2), dtype=float32, numpy=

array([[

[[1., 1.],

[2., 2.]

], [

[3., 3.],

[4., 4.]]]

], dtype=float32)

>

這裡的shape提示為(1,2,2,2),如果shape從左往右來看,那麼他在張量裡面數的時候是從外往里數的。晉記!

如果shape從右往左來看,那麼他在張量裡面數的時候是從裡往外數的。晉記!

通俗理解張量tensor

我們的目的是要用數學量來表示物理量,可是標量加上向量,都不足以表達所有的物理量,所以就需要擴大數學量的概念,張量就出現了。幾何代數中定義的張量是基於向量和矩陣的推廣,通俗一點理解的話,我們可以將標量視為零階張量,向量視為一階張量,那麼矩陣就是二階張量。張量的嚴格定義是利用線性對映來描述的。與向量相類...

通俗理解張量 Tensor

江湖人稱冷不丁 關注22018.07.20 17 20 26 字數 1,500 閱讀 49,100 我們的目的是要用數學量來表示物理量,可是標量加上向量,都不足以表達所有的物理量,所以就需要擴大數學量的概念,張量就出現了。幾何代數中定義的張量是基於向量和矩陣的推廣,通俗一點理解的話,我們可以將標量視...

對張量的理解,Tensor

講解contiguous,因為view需要連續的,但是現在reshape已經實現了congtiguous和view功能。個人覺的這個解釋很好 什麼是張量 tensor實際上就是乙個多維陣列 multidimensional array 其目的是能夠創造更高維度的矩陣 向量。為什麼用variable ...