一、Broadcasting 广播机制
- 广播机制的实际应用例子
- 广播的规则
二、合并与分割
- cat():合并方法
dim:表示在指定在哪个维度上进行合并
注意:除选择的拼接维度外,其余维度必须相等
- stack():用于维度拼接,但是是在指定dim维度前创建新的维度(新的维度值为合并个数),且合并的各tensor在指定的dim维度及其之后的维度上值相等
- split():在指定的dim上,按照指定的各分片在此维度上的长度进行拆分
- chunk():在指定的dim上,按照指定的拆分数量进行拆分(均等拆分)
三、数学运算
- 符号操作与方法是一致的
注意:其中的 * 与 mul是tensor按元素位置对应相乘的操作
- matmul:矩阵乘法
torch.mm():仅支持2维的矩阵相乘
torch.matmul():支持多维的(推荐)
@:与torch.matmul()功能一致,是符号化的操作
- 矩阵乘法的实际运用
- 高维度矩阵乘法
必须dim值相等,除最后两个维度外其他维度数值相等(或能根据broadcasting进行扩充后相等),且只做最后两个维度上的矩阵运算,结果规则仅变换最后两个维度,其他数值不变。
- Power:求tensor元素求次方操作
pow():对各元素做次方操作
sqrt():对各元素做开次方根操作
**n:对各元素做次方操作
- 对数\指数操作
- 求近似解方法
floor():取下限整数
ceil():取上限整数
trunc():取整数部分
frac():取小数部分
round():四舍五入
- clamp:① 设定tensor中的最小值,指凡事值小于10的均由是0代替
② 或设定取值区间,不在该区间的值取边界值
max():返回最大值
min():返回最小值
median():返回中间值
四、属性统计
- norm:范数求解
normalize表示正则化,norm表示求范数
matrix norm表示矩阵范数,vector norm表示向量范数
- 常见统计方法
mean():平均值
sum():累加值
min():最小值
max():最大值
prod():累乘值
argmax():返回最大值所在的index,为tensor标量
argmin(): 返回最小值所在的index,为tensor标量
注意:argmax、argmin均默认是先将高维转换为1维(按行转)再求index
- 对于属性统计中dim参数的用处,可以统计操作的维度通道
keepdim参数:为True时保持维度数不变
- topk():用于保留指定维度上的排名前k位的元素数值的tensor(tensor的维度不会变化),及其空间位置index
注:其中可以使用参数largest来设定是从小到大选取,还是从大到小选取,默认为True表示从大到小选取
kthvalue():用于保留指定维度上排序后位列第k个的数值的tensor
- compare:实现tensor之间各元素位置上值的大小比较运算
torch.eq():用于比较两tensor各对应位置上元素值是否相等
torch.equal():用于比较两tensor是否完全一致,返回的是逻辑真或逻辑假
注:结果为1或0,表示逻辑真与假
- 高阶操作
- where():根据condition的值控制返回的源数据来自是哪一个
condition与a、b是同维度的bool矩阵
- gather():执行收集操作,使用index对input中的数据进行收集