torch常用函数手册(10-20)

索引、切片、连接、换位

torch.cat()

torch.cat(inputs, dimension=0) → Tensor

在给定维度上对输入张量序列seq进行连接操作.
torch.cat()可以看做 torch.split() 和 torch.chunk()的反操作。 cat() 函数
可以通过下面例子更好的理解
参数:

  • inputs (sequence of Tensors) 可以是任意相同的Tensor类型的python序列。
  • dimension (int, optional) –沿着此维连接张量序列。

torch.chunk

torch.chunk(tensor, chunks, dim=0)

在给定维度上将输入张量进行分块儿。
参数:

  • tensor (Tensor) – 待分块的输入张量
  • chunks (int) – 分块的个数
  • dim (int) – 沿着此维度进行分块

torch.gather

torch.gather(input, dim, index, out=None) → Tensor

沿给定轴dim,将输入的索引张量index,指定位置的值进行聚合。
参数

  • input (Tensor) – 源张量
  • dim (int) – 索引的轴
  • index (LongTensor) – 聚合元素的下标
  • out (Tensor, optional) – 目标张量

torch.index_select

torch.index_select(input, dim, index, out=None) → Tensor

沿着指定维度对输入进行切片,取index中指定的相应项数。((index 为一个 LongTensor)然后返回到一个新的张量,返回的张量与原始张量_Tensor**_有相同的维度(在指定轴上)**
注意:返回的张量不与原始张量共享内存空间**。**
参数:

  • input (Tensor) – 输入张量
  • dim (int) – 索引的轴
  • index (LongTensor) – 包含索引下标的一维张量
  • out (Tensor, optional) – 目标张量

torch.masked_select

torch.masked_select(input, mask, out=None) → Tensor

根据掩码张量mask中的二元值,取输入张量中的指定项(mask 为一个 ByteTensor)值返回到一个新的IID张量,张量mask需跟input张量有相同数量的元素数目但形状和维度不需要相同
注意:返回的张量不与原始向量共享内存**。**

参数:

  • input (Tensor) – 输入张量
  • mask (ByteTensor) – 掩码张量,包含了二元索引值
  • out (Tensor, optional) – 目标张量

torch.nonzero

torch.nonzero(input, out=None) → LongTensor

返回一个包含输入input中非零元素索引的张量,输出张量中的每行包含输入中非零元素索引。
如果输入 input 有 n 维,则输出的索引张量 output 的形状为 z x n, 这里 z 是输入张量
input 中所有非零元素的个数

参数:

  • input (Tensor) – 源张量
  • out (LongTensor, optional) – 包含索引值的结果张量

torch.split

torch.split(tensor, split_size, dim=0)

将输入张量分割成相等形状的 chunks(如果可分)。 如果沿指定维的张量形状大小不能被
split_size 整分, 则最后一个分块会小于其它分块
参数:

  • tensor(Tensor)-待分割张量
  • split_size (int) – 单个分块的形状大小
  • 'dim (int) – 沿着此维进行分割

torch.squeeze

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

将输入张量形状中的 1 去除并返回。 如果输入是形如(A×1×B×1×C×1×D),那么输出形状就
为:
(A×B×C×D)
当给定 dim 时 , 那 么 挤 压 操 作 只 在 给 定 维 度 上 。 例 如 , 输 入 形 状
为: (A×1×B), squeeze(input, 0) 将
会保持张量不变,只有用 squeeze(input, 1),形状会变成 (A×B)。
注意:返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。
参数:

  • input (Tensor) – 输入张量
  • dim (int, optional) – 如果给定,则 input 只会在给定维度挤压
  • out (Tensor, optional) – 输出张量

torch.stack[source]

torch.stack(sequence, dim=0)

沿着一个新的维度对输入张量序列进行连接操作, 序列中所有的张量都应该为相同形状。
参数:

  • sqequence (Sequence) – 待连接的张量序列
  • dim (int) – 插入的维度。必须介于 0 与 待连接的张量序列数之间

torch.t

torch.t(input, out=None) → Tensor

输入一个矩阵(2 维张量),并转置 0, 1 维。 可以被视为函数 transpose(input, 0, 1)
的简写
参数:

  • input (Tensor) – 输入张量
  • out (Tensor, optional) – 结果张量

torch.transpose

torch.transpose(input, dim0, dim1, out=None) → Tensor

返回输入矩阵 input 的转置。交换维度 dim0 和 dim1。 输出张量与输入张量共享内存,
所以改变,其中一个会导致另外一个也被修改。
参数

  • input (Tensor) – 输入张量
  • dim0 (int) – 转置的第一维
  • dim1 (int) – 转置的第二维

torch.unbind

torch.unbind(tensor, dim=0)[source]

移除指定维后,返回一个元组,包含了沿着指定维切片后的各个切片
参数:

  • tensor (Tensor) – 输入张量

  • dim (int) – 删除的维度

torch.unsqueeze

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

返回一个新的张量,对输入的制定位置插入维度 1
注意: 返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。
如果 dim 为负,则将会被转化 dim+input.dim()+1
参数

  • tensor (Tensor) – 输入张量
  • dim (int) – 插入维度的索引
  • out (Tensor, optional) – 结果张量

随机抽样

torch.manual_seed

torch.manual_seed(seed)

设定生成随机数的种子,并返回一个 torch._C.Generator 对象.

参数: seed (int or long) – 种子

torch.initial_seed

torch.initial_seed()

返回生成随机数的原始种子值(python long)

torch.get_rng_state

torch.get_rng_state()[source]

返回随机生成器状态(ByteTensor)

torch.set_rng_state

torch.set_rng_state(new_state)[source]

设定随机生成器状态 参数: new_state (torch.ByteTensor) – 期望的状态

torch.default_generator

torch.default_generator = <torch._C.Generator object>

torch.bernoulli

torch.bernoulli(input, out=None) → Tensor

从伯努利分布中抽取二元随机数(0 或者 1)。
输入张量须包含用于抽取上述二元随机值的概率。 因此,输入中的所有值都必须在[0,1]
区间,

参数:

  • input (Tensor) – 输入为伯努利分布的概率值
  • out (Tensor, optional) – 输出张量(可选)

torch.multinomia

torch.multinomial(input, num_samples,replacement=False, out=None) →

LongTensor

返回一个张量,每行包含从 input 相应行中定义的多项分布中抽取的 num_samples 个样本。

参数

  • input (Tensor) – 包含概率值的张量
  • num_samples (int) – 抽取的样本数
  • replacement (bool, optional) – 布尔值,决定是否能重复抽取
  • out (Tensor, optional) – 结果张量

torch.normal()

torch.normal(means, std, out=None)

返回一个张量,包含从给定参数 means,std 的离散正态分布中抽取随机数。 均值 means 是一
个张量,包含每个输出元素相关的正态分布的均值。 std 是一个张量,包含每个输出元素相关的
正态分布的标准差。 均值和标准差的形状不须匹配,但每个张量的元素个数须相同
参数:

  • means (Tensor) – 均值
  • std (Tensor) – 标准差
  • out (Tensor) – 可选的输出张量
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

big_matster

您的鼓励,是给予我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值