Skip to main content
 首页 » 编程设计

python之如何计算 tensorflow 中张量的形状

2025年02月15日25zengkefu

为了清楚地理解tensorflow中的张量,我需要清楚地理解张量的形状是如何定义的。

这些是来自 tensorflow 文档的一些示例:

3 # 0阶张量;这是一个形状为 [] 的标量 [1. ,2., 3.] # 1阶张量;这是一个形状为 [3] 的向量 [[1., 2., 3.], [4., 5., 6.]] # 一个二阶张量;形状为 [2, 3] 的矩阵 [[[1., 2., 3.]], [[7., 8., 9.]]] # 一个形状为 [2, 1, 3] 的三阶张量

我的以下理解是否正确:

为了找到张量的形状,我们从最外面的列表开始,计算里面的元素(或列表)的数量。这个计数构成了第一个维度。然后,我们对内部列表重复此过程并找到张量的下一个维度。

如有错误请指正

请您参考如下方法:

是的,你的理解是正确的。如果你有一个有效的张量,你的算法会返回正确的张量维度。你可以用python写成下面的方式

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

请注意,在 arr 的任意值的情况下,您还需要确保尺寸匹配([[1, 2, 3], [4, 5]] 不是有效的张量)