Numpy 函数 (一) squeeze(), unsquezze()

1. np.squeeze()

syn: np.squeeze(a,axis=None)

Notice:

1. a 表示输入的数组

2. axis表示指定需要删除的维度,但是指定的维度必须为单个维度,否则会报错

3. axis 取值可以为None, int, tuple of ints, 或者 axis 为空则表示删除所有单个维度

4.返回值:数组

5. 不会在原来的数组上修改

 参考:np.squeeze() 参考

2. array 操作

 

3. torch.squezze()

目的:降低维度

将输入的张量形状中为1的去除并且返回.如果输入是想A*1*C*1. 则输出为A*B形状

如果给定dim , 对tensor进行挤压或者压缩时,则会对该维度进行压缩.如果维度的形状为1,则会被压缩.如果该形状的维度不是1, 则该维度的形状不会被压缩.

input: A*1*C,  torch.squeeze(input,0) , 该input 则会保持不变

input: A*1*C, torch.squeeze(input,1), 该维度则会改变形状变成A*C

意义: 多维张量的本质上就是一个变换.如果张量的维度是1. 那么, 1仅仅起到了扩充维度的作用. 而没有其他用途. 因为, 在进行降维操作时,为了加快计算,可以去掉这些维度.

4. tensor.unsqueeze_()

unsqueeze和unsqueeze_实现的功能是一样的. 区别在于unsqueeze_是in_place 操作, 即unsqueeze不会在原来的张量上进行操作. 不对对unsqueeze的张量进行改变.所以unsqueeze后必须赋予一个新的值. unsqueeze_则会对自己进行改变.

5. torch.unsqueeze()

torch.unsqueeze(input, dim, out=None)

目的:扩展维度

返回一个新的张量, 对输入的既定位置插入维度1

注意:返回张量和输入张量共享内存, 所以改变一个的内容,另一个的内容也会改变.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值