- Published on
PyTorch中rank与ndim的区别
在PyTorch中,rank
和ndim
是两个完全不同的概念.
tensor([[0.1183, 0.1972, 0.2399, 0.2899, 0.1328],
[0.1972, 0.7784, 0.8612, 0.6411, 0.5808],
[0.2399, 0.8612, 1.1439, 0.8376, 0.6411],
[0.2899, 0.6411, 0.8376, 0.8076, 0.4530],
[0.1328, 0.5808, 0.6411, 0.4530, 0.4365]], device='cuda:0')
ndim
(Number of Dimensions)
1. 含义:表示张量的维度数量(也叫轴的数量)
示例:
x.ndim # 返回2
这表示
x
是一个2维张量(矩阵),因为它有行和列两个维度。等价写法:
len(x.shape) # 也是2
rank
(矩阵的秩)
2. - 含义:在线性代数中,矩阵的秩是指其行或列向量组的最大线性无关组的大小
- 注意:
- PyTorch张量没有直接的
.rank
属性 - 需要使用
torch.linalg.matrix_rank()
计算
- PyTorch张量没有直接的
- 示例:这表示5×5矩阵的秩是3(不是满秩矩阵)
torch.linalg.matrix_rank(x) # 返回tensor(3)
关键区别对比表
概念 | 数学意义 | PyTorch获取方式 | 示例结果 |
---|---|---|---|
ndim | 张量的维度数量 | .ndim 或len(x.shape) | 2 |
rank | 矩阵的秩(线性无关性) | torch.linalg.matrix_rank() | 3 |
THE END