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 操作
- numpy.copyto
- numpy.shape
- numpy.reshape
- numpy.ravel
- numpy.ndarray.flat
- numpy.ndarray.flatten
- numpy.moveaxis
- numpy.rollaxis
- numpy.swapaxes
- numpy.ndarray.T
- numpy.transpose
- numpy.atleast_1d
- numpy.atleast_2d
- numpy.atleast_3d
- numpy.broadcast
- numpy.broadcast_to
- numpy.broadcast_arrays
- numpy.expand_dims
- numpy.squeeze
- numpy.asarray
- numpy.asanyarray
- numpy.asmatrix
- numpy.asfarray
- numpy.asfortranarray
- numpy.ascontiguousarray
- numpy.asarray_chkfinite
- numpy.require
- numpy.concatenate
- numpy.stack
- numpy.block
- numpy.vstack
- numpy.hstack
- numpy.dstack
- numpy.column_stack
- numpy.row_stack
- numpy.split
- numpy.array_split
- numpy.dsplit
- numpy.hsplit
- numpy.vsplit
- numpy.tile
- numpy.repeat
- numpy.delete
- numpy.insert
- numpy.append
- numpy.resize
- numpy.trim_zeros
- numpy.unique
- numpy.flip
- numpy.fliplr
- numpy.flipud
- numpy.reshape
- numpy.roll
- numpy.rot90
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
注意:返回张量和输入张量共享内存, 所以改变一个的内容,另一个的内容也会改变.