pytorch作为深度学习最成功的开源框架之一,tensor(张量)是其最基本的数据结构,熟悉各种tensor的生成变换操作是继续学习pytorch的基础。
1.创建tensor
torch.eye(n ,m=None, out=None),返回一个2张量,对角线为1,其它全0。
torch.from_numpy(naddary),将numpy.ndarray转换成Tensor,注意,转换后生成的Tensor跟原ndarray共享一块内存空间。
torch.linespace(start, end, steps=100, out=None),返回一个在区间[start, end]内均匀间隔的包含steps个数据的一个一维tensor。
torch.arrange(start, end, step=1, out=None),返回一个人在区间[start, end]内以step为步长的一维tensor。
torch.ones(*sizes, out=None),返回一个大小为size的全1的tensor。
torch.zeros(*sizes, out=None),返回一个大小为size的全0的tensor。
torch.rand(*sizes, out=None),返回一个大小为size的tensor,tensor的值满足[0,1]的均匀分布。
torch.randn(*sizes, out=None),返回一个大小为size的tensor,tensor的值满足标准正太分布。
二.索引,切片,连接和变换
torch.cat(inputs, dimention=0),在dimention维度上将inputs连接至该tensor上。
torch.chunk(input, chunks, dim=0),在dim维度上将input分成chunks块。
torch.index_select(input, dim, index, out=None),在dim维度上对input进行切片,返回的张量取index中的指定项对应的tensor。
torch.nonzero(input, out=None),返回张量input中非0元素对应的索引。
torch.split(tensor, split_size, dim=0),在维度dim上将tensor切分。
torch.squeeze(input, dim=None, out=None),在给定维度dim上将tensor中的1删除,返回结果共享内存。
torch.unsqueeze(input, dim, out=None),在指定维度插入1。
torch.t(input, out=None),input为二维tensor,转置。
torch.transpose(input, dim0, dim1, out=None)交换dim0和dim1维度,共享内存。
torch.topk(input, dim=None, largest=True, sorted=True, out=None),在给定维度dim上返回最大的k个值,默认为最后一维度。