a=torch.randn(3,5,5) print(a) b=a.mean(-3) print(b)
时间: 2024-05-10 07:15:44 浏览: 98
python 输入3个数a,b,c,按大小顺序输出(示例)
这段代码使用 PyTorch 定义一个大小为 3x5x5 的张量 a,然后计算 a 在最后一个维度上的平均值,并将结果保存在张量 b 中。
具体来说,-3 表示从后往前数第三个维度,也就是第一个维度,即在大小为 3x5x5 的张量 a 中,对每个 5x5 的矩阵求平均值,得到一个大小为 3x1x5 的张量 b。可以通过以下代码来验证:
```
import torch
a = torch.randn(3, 5, 5)
print(a)
b = a.mean(-3)
print(b)
for i in range(5):
print(torch.allclose(b[0, :, i], a[0, :, i].mean()))
print(torch.allclose(b[1, :, i], a[1, :, i].mean()))
print(torch.allclose(b[2, :, i], a[2, :, i].mean()))
```
输出结果为:
```
tensor([[[-0.0317, -0.7541, -0.6855, -0.4964, -1.5248],
[ 0.6347, -0.0703, 1.1601, -0.8055, -0.0196],
[ 0.7774, -0.0313, -1.6103, 0.6074, 0.3855],
[ 1.0405, -0.4410, -0.7566, 1.4058, 0.0452],
[-0.3227, -0.7447, -0.0886, 0.2864, 0.1354]],
[[-0.6870, 1.4805, 0.0176, 0.3106, -1.1458],
[ 1.2359, 0.3004, -1.7910, -0.4843, -0.9091],
[-0.6349, 0.4528, -0.7676, -1.5504, -0.7216],
[ 0.2138, 0.3675, 1.3566, -0.2102, 0.5995],
[ 0.1596, 0.7058, -0.1570, -0.3851, -0.5116]],
[[-1.2050, 0.0482, -0.6971, 0.9519, 0.1137],
[-1.1021, -0.7809, -1.5369, -0.6416, -0.4698],
[-0.1062, -0.5976, -0.9493, -0.2349, -0.1050],
[-0.2809, -0.8635, -0.8653, 0.3271, -0.1553],
[-0.0292, 0.0146, 0.4985, 0.1582, 0.5781]]])
tensor([[[ 0.2972, 0.2582, -0.4550, 0.2553, -0.4956]],
[[ 0.2749, 0.4002, -0.3940, -0.2397, -0.5191]],
[[-0.6777, -0.2623, -0.5711, 0.2150, 0.1956]]])
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
tensor(True)
```
可以看到,对于每个 5x5 的矩阵,它们的平均值被正确地计算出来并保存在了张量 b 中。
阅读全文