您现在的位置是:首页 >技术杂谈 >Numpy 函数 (一) squeeze(), unsquezze()网站首页技术杂谈

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

挪威的深林 2024-06-17 11:28:36
简介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

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。