output=torch.unsqueeze(input,dim=0)
dim = 0 在0维度加一个维度
import torch
x=torch.tensor([[1,2,3],[4,5,6]])
print(x)
print(x.shape)
y=torch.unsqueeze(x,dim=0)
print(y)
print(y.shape)
>>>
tensor([[1, 2, 3],
[4, 5, 6]])
torch.Size([2, 3])
tensor([[[1, 2, 3],
[4, 5, 6]]])
torch.Size([1, 2, 3])
总结:
torch.unsqueeze()
函数的作用增加数组A指定位置N的维度,例如两行三列的数组A维度为(2,3),那么这个数组就有三个位置可以增加维度,分别是( [位置0] 2,[位置1] 3 [位置2] )或者是 ( [位置-3] 2,[位置-2] 3 [位置-1] ),如果执行 torch.unsqueeze(A,1),数据的维度就变为了 (2,1,3)
torch.squeeze(A,N)
torch.unsqueeze()
函数的作用减少数组A指定位置N的维度,如果不指定位置参数N,如果数组A的维度为(1,1,3)那么执行 torch.squeeze(A,1) 后A的维度变为 (1,3),中间的维度被删除
注:
- 如果指定的维度大于1,那么将操作无效
- 如果不指定维度N,那么将删除所有维度为1的维度
shape和size的区别
shape和size没有什么明显的区别。根本上的区别是什么?
shape
shape是一个Tensor类中的属性,因为我们用tensor函数创建张量的时候(注意tensor是一个函数,Tensor是一个类),用到了Tensor类,然后创建的实例就可以使用Tensor中的属性
size
size是Tensor从上面的类中继承来的一个方法(不必纠结这个)中的一个方法。