megengine.functional

import megengine.functional as F

注解

顾名思义,megengine.functional 模块中包含着所有与 Tensor 有关的计算接口:

参见

用户指南中对于 使用 Functional 操作与计算 有另外一套分类逻辑,可作为参考。

General tensor operations

注解

该部分的 API 设计接纳了 Python 数据 API 标准联盟 中的倡导, 尽可能地向 NumPy API 靠拢。

Creation Functions

arange

返回一个数值从 startstop ,相邻间隔为 step 的张量。

linspace

返回指定间隔的等距数列。

eye

返回一个二维张量,其对角线上值均为1,其他位置值为0。

zeros

根据给定形状返回元素全为 0 的 Tensor

zeros_like

返回一个和参数同维度,且数值全为 0 的 Tensor

ones

返回一个具有给定形状的全1张量。

ones_like

返回一个与输入张量形状相同的全1张量

full

Creates a tensor of shape shape filled with value.

full_like

返回一个与输入张量形状相同的且值为给定值的零张量

Manipulation Functions

copy

把张量复制到另一个设备上。

reshape

将一个张量重塑为给定的目标形状;逻辑元素的总数必须保持不变

flatten

通过将子张量从 start_axis 维展平到 end_axis 维,实现对张量的重塑(reshape)。

transpose

根据给定模板交换形状和步长。

broadcast_to

将张量广播至指定的形状。

expand_dims

在给定轴之前添加维度。

squeeze

移除形状中下标为1的维度。

concat

拼接一些张量

stack

沿新轴对张量进行拼接。

split

将输入张量拆分成更小的张量。

tile

通过重复 inp 数据 reps 次来构造一个数组。

repeat

重复数组的元素。

roll

Roll the tensor along the given axis(or axes).

Arithmetic operations

add

逐元素相加。

sub

Element-wise sub.

mul

逐元素相乘。

div

逐元素相除。

floor_div

逐元素相除并下取整。

neg

逐元素取相反数。

abs

逐元素取绝对值。

sign

返回一个新的张量,该张量表明每个元素的符号。

pow

逐元素进行指数运算。

mod

返回逐元素相除所得的余数。

sqrt

逐元素取平方根。

square

Element-wise square.

maximum

逐元素的最大数组元素。

minimum

逐元素的最小数组元素。

round

逐元素四舍五入到整数。

ceil

逐元素上取整。

floor

逐元素计算下取整函数。

clip

Clamps all elements in input tensor into the range [ lower, upper ] and returns a resulting tensor:

exp

逐元素计算 ex 次方。

expm1

逐元素计算 expm1 函数。

log

逐元素计算以 e 为底的对数。

log1p

逐元素计算 (x+1)e 为底的对数。

Trigonometric functions

sin

逐元素计算正弦函数。

cos

逐元素计算余弦函数。

tan

逐元素计算正切函数。

asin

逐元素计算反正弦函数。

acos

逐元素计算反余弦函数。

atan

逐元素计算反正切函数。

atan2

逐元素计算两个参数的反正切函数。

Hyperbolic functions

sinh

逐元素计算双曲正弦函数。

cosh

逐元素计算双曲余弦函数。

tanh

逐元素计算双曲正切值。

acosh

逐元素计算反双曲余弦函数。

asinh

逐元素计算反双曲正弦函数。

atanh

逐元素计算反双曲正切函数。

Bit operations

left_shift

逐元素计算 x << y。

right_shift

逐元素计算 x >> y。

Logic functions

isnan

返回一个新的张量,该张量表明每个元素是否为非数值类型 NaN.

isinf

返回一个张量,它表示每个元素是否是无穷大值 Inf.

logical_and

逐元素进行逻辑与运算。

logical_not

逐元素进行逻辑非运算。

logical_or

逐元素进行逻辑或运算。

logical_xor

逐元素进行逻辑异或运算。

greater

逐元素计算 x 大于 y.

greater_equal

逐元素判断 x 大于或者等于 y.

less

逐元素的计算 x 小于 y.

less_equal

逐元素计算 x 小于或等于 y.

equal

逐元素判断是否相等。

not_equal

逐元素计算 x 不等于 y.

Statistical Functions

sum

返回输入张量在给定轴上所有元素求和后的结果。

prod

返回输入张量在给定轴上所有元素求乘积后的结果。

mean

返回输入张量在给定轴上所有元素求平均后的结果。

min

返回输入张量在给定轴上所有元素求最小值后的结果。

max

返回输入张量在给定轴上所有元素求最大值后的结果。

var

返回输入张量在给定轴上所有元素求方差后的结果。

std

返回输入张量在给定轴上所有元素求标准差后的结果。

cumsum

Computes the cumulative sum of elements along given axis.

参见

想要返回 min, max 的索引而不是元素值,请参考 Searching Functions

Linear Algebra Functions

dot

计算两个向量 inp1inp2 的点积。

matinv

计算一批矩阵的逆;输入必须满足 [...,n,n] 的形状。

matmul

对矩阵 inp1inp2 进行矩阵乘法。

svd

对输入矩阵 inp 进行奇异值分解。

norm

计算在给定轴 axisinp 张量每一行的 p-范数。

normalize

返回在给定轴 axisinp 张量每一行进行 \(L_p\) 归一化后的结果。

Indexing Functions

gather

使用 indexaxis 上的 inp 聚合数据。

scatter

source 张量中所有的值通过 index 张量指定的索引位置上写入到输入张量中。

cond_take

如果在满足特定条件,则从数据中获取元素。

where

根据 mask 条件选择张量 xy 作为对应的输出。

Searching Functions

argmin

返回沿给定轴的最小值的索引。

argmax

返回沿给定轴的最大值的索引。

Sorting Functions

sort

返回经过排序后的张量。

argsort

返回经过排序后的张量。

topk

按行排序,选出二维矩阵中 Top-K (默认情况下)个最小元素。

Neural network operations

Convolution functions

conv1d

一维卷积运算。

conv2d

二维卷积运算。

conv3d

三维卷积运算。

local_conv2d

使用 untied kernels 对图像进行二维空域卷积。

conv_transpose2d

二维转置卷积运算。

conv_transpose3d

3D transposed convolution operation.

deformable_conv2d

可变形卷积

sliding_window

Extracts sliding local blocks from a batched input tensor.

sliding_window_transpose

Sum over the sliding windows on the corresponding input location.

Pooling functions

avg_pool2d

对输入进行二维平均池化。

max_pool2d

对输入张量进行二维最大池化。

adaptive_avg_pool2d

对输入进行二维平均池化。

adaptive_max_pool2d

对输入数据进行2D最大池化。

deformable_psroi_pooling

可变形的位置敏感的感兴趣区域池化

Non-linear activation functions

sigmoid

逐元素计算 1 / ( 1 + exp( -x ) ).

hsigmoid

逐元素计算 relu6(x + 3) / 6.

hswish

逐元素计算 x * relu6(x + 3) / 6.

relu

逐元素计算 max(x, 0).

relu6

逐元素计算 min(max(x, 0), 6).

prelu

Elememt-wise PReLU function.

leaky_relu

Element-wose LeakyReLU function

silu

Applies the element-wise Sigmoid Linear Unit function, i.e. x * sigmoid(x).

gelu

逐元素应用函数:

softplus

逐元素应用函数:

softmax

Applies a \(\text{softmax}(x)\) function.

logsoftmax

Applies the \(\log(\text{softmax}(x))\) function to an n-dimensional input tensor.

logsigmoid

逐元素应用函数:

logsumexp

计算输入数据沿给定维度 axis 的指数之和的对数。该计算是数值稳定的。

Normalization functions

batch_norm

对输入进行批标准化。

sync_batch_norm

对输入进同步批标准化。

Linear functions

linear

对输入张量进行线性变换。

Dropout functions

dropout

返回一个新的张量,其中每个元素以 P = drop_prob 的概率随机设置为零。

Sparse functions

one_hot

对输入张量进行 one-hot 编码。

indexing_one_hot

对一些轴进行 One-hot 索引。

embedding

应用查找表进行 embedding。

Metric functions

topk_accuracy

根据给定的预测的logits和真实值标签计算分类准确率。

Loss functions

l1_loss

计算预测值 \(x\) 和标签值 \(y\) 的每个元素之间的平均绝对误差(MAE)。

square_loss

计算预测值 \(x\) 和标签值 \(y\) 之间的均方误差(平方L2范数)。

hinge_loss

计算支持向量机 SVM 中经常使用的 hinge loss。

binary_cross_entropy

计算 binary cross entropy loss(默认使用 logits)。

cross_entropy

计算 multi-class cross entropy loss(默认使用 logits)。

Vision functions

cvt_color

将图像从一种格式转化成另一种格式。

pad

Pad is python warpper for padding opr in megbrain, can padding in random one of the max 7 dimensions.

interpolate

根据给定的大小或缩放因子将输入张量进行上/下采样。

remap

对按批组织的二维图像进行重映射变换。

warp_affine

对按批处置的二维图像进行仿射变换。

warp_perspective

对按批组织的二维图像进行透视变换。

roi_pooling

对输入进行 roi pooling。

roi_align

对输入进行 roi align。

nms

根据小方框的 IoU 值进行 非最大值抑制(NMS)。

correlation

Applies correlation to inputs.

nvof

NVIDIA光流SDK的实现

Distributed functions

all_reduce_max

Reduce tensors across the specified group by max.

all_reduce_min

Reduce tensors across the specified group by min.

all_reduce_sum

Reduce tensors across the specified group by sum.

broadcast

Broadcast tensor data from root process to others.

remote_send

Send tensor to another process.

remote_recv

Receive a tensor from another process.

all_gather

Gather tensors across the specified group and concat them at first dimension.

all_to_all

Each process scatter input tensor to all processes and return gathered tensor.

reduce_sum

Reduce tensor data across the specified group by sum.

gather

Gather tensors across the specified group.

scatter

Split tensor in root process at first dimension.

reduce_scatter_sum

Reduce tensors across the specified group by sum and split them at first dimension.

Debug Setting

get_execution_strategy

Returns the execution strategy of Conv2d and matmul

set_execution_strategy

Sets the execution strategy of Conv2d and matmul