Pytorch框架之expand/expand_as 维度扩张

torch的expand|expand_as 方法

  • expand
  • expand_as

                         QQ:3020889729                                                                                 小蔡

expand

给定一个shape进行单一维度的扩张:shape -> new_shape(new_dim)

'''
		expand(3, 3, 3) -> 相当于在原本第0轴上添加个一个维度大小为3的轴
		ps:如果将现在第0轴的3改成5,不影响改动,但是改变后边轴大小,使其无法与原tensor进行匹配时,
		会发生错误
'''
x = torch.rand(3, 3)
print(x.expand(3, 3, 3))    # 需要注意,维度大小扩张时,需要考虑原tensor的大小

Pytorch框架之expand/expand_as 维度扩张_第1张图片

expand_as

给定一个张量,调用expand_as方法使得维度与目标维度相同–注意原始shape
【tensor1.expand_as(tensor2) => tensor2.size() == tensor1.size()】

'''
		扩张成y的维度大小--同样要注意原始尺寸大小
		只允许对(3, 3)新扩展的轴进行大小修改,不允许修改(3, 3)基础大小
'''
x = torch.rand(3, 3)
y = torch.rand(2, 3, 3)
print(x.expand_as(y))  

Pytorch框架之expand/expand_as 维度扩张_第2张图片
也不能轻易交换维度大小
Pytorch框架之expand/expand_as 维度扩张_第3张图片

你可能感兴趣的:(pytorch,深度学习,人工智能,pytorch)