2017-04-20 150 views
2

爲了清楚地理解張量流中的張量,我需要清楚地理解張量如何定義張量。如何計算張量流中張量的形狀

這些都是從tensorflow文件的一些例子:

3 # a rank 0 tensor; this is a scalar with shape [] [1. ,2., 3.] # a rank 1 tensor; this is a vector with shape [3] [[1., 2., 3.], [4., 5., 6.]] # a rank 2 tensor; a matrix with shape [2, 3] [[[1., 2., 3.]], [[7., 8., 9.]]] # a rank 3 tensor with shape [2, 1, 3]

是以下礦井的理解是否正確:

爲了找到張量的形狀,我們從最開始列出並計算裏面的元素(或列表)的數量。這個數字是第一個維度。然後,我們對內部列表重複此過程,並找出張量的下一個維度。

如果我錯了,請糾正我。

回答

1

是的,你的理解是正確的。如果你有一個有效的張量,你的算法會返回張量的正確尺寸。你可以把它寫在python通過以下方式

def get_shape(arr): 
    res = [] 
    while isinstance((arr), list): 
     res.append(len(arr)) 
     arr = arr[0] 
    return res 

注意,在改編的任意值的情況下,你還需要確保的尺寸相符([[1, 2, 3], [4, 5]]不是有效的張量)