Pytorch数学运算

张量的乘法

API 说明
matmul() 矩阵的乘法
@ 重载运算符

  多维张量的乘法是如何定义的呢?不考虑前几维,只考虑数据的最后两维。如维度[4, 3, 64, 42] 的张量 @ 维度[4, 3, 42, 128]的张量,结果则为[4, 3, 64, 128]的张量。有时也会用到广播特性,暂不介绍。

q1 = torch.rand(4, 3, 42, 64)
q2 = torch.rand(4, 3, 64, 128)
ret = q1@q2
print(ret.shape)
结果为:
torch.Size([4, 3, 42, 128])

  使用**运算符即可。

指数

  • torch.exp()
  • torch.log(), torch.log2(), torch.log10()

近似

  1. floor(),往下取整
  2. ceil(),往上取整
  3. round(),四舍五入
  4. trunc(),只取整数部分
  5. frac(),只取小数部分

clamp

  在观察神经网络的过程中,求解W.grad.norm(2),如果大于100就过大,小于10,大于1是比较合适的。可用来辅助实现relu函数等。

范数

Pytorch数学运算_第1张图片
  其中norm(dim=n)表示的是把该维的数据会消掉,其中norm(dim=1)表示的是沿着行的方向求范数。

统计值

  1. mean(), prod()表示的累乘。
  2. argmax(), argmin()。如果不给定参数的话,结果为把数据flatten到一维的结果。给定参数求的则是该维度上的最值。

ndim

Pytorch数学运算_第2张图片

topk

Pytorch数学运算_第3张图片
  kthvalue指的是第几的数据。

高阶OP

  1. Where
    Pytorch数学运算_第4张图片
  2. Gather
    Pytorch数学运算_第5张图片

你可能感兴趣的:(Pytorch)