1.先来看官方文档:
2.应用举例:
- 2.1扩大尺寸
我的理解是如果维度不变的情况下,要想扩展到更大的尺寸,只能将扩展维度为1的位置进行修改,维度不是1的就会报错
import torch
a = torch.arange(1, 9).reshape((1, 4, 2))
print(a, a.shape)
b = a.expand(2, 4, 2)
print(b, b.shape)
第一个个维度为1,我将其扩成2,没问题
import torch
a = torch.arange(1, 9).reshape((2, 4, 1))
print(a, a.shape)
b = a.expand(2, 4, 2)
print(b, b.shape)
第三个维度是1,我将其变成了2,没问题
import torch
a = torch.arange(1, 9).reshape((2, 4, 1))
print(a, a.shape)
b = a.expand(2, 8, 1)
print(b, b.shape)
可以看到,我将第二维维度为4的变成8了,结果报错
- 2.2扩大维度
扩大维度需要在前面扩充
import torch
a = torch.arange(1, 9).reshape((2, 4))
print(a, a.shape)
b = a.expand(3, 2, 4)
print(b, b.shape)
我将二维的扩充成三维的了,在最前面扩充了3,没问题
import torch
a = torch.arange(1, 9).reshape((2, 4))
print(a, a.shape)
b = a.expand(2, 3, 4)
print(b, b.shape)
我在第二维度处扩充到了3,结果报错