IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> torch.mul()——矩阵点乘运算 -> 正文阅读

[人工智能]torch.mul()——矩阵点乘运算

torch.mul()

torch.mul(input, other, *, out=None)

输入:两个张量矩阵;输出:他们的点乘运算结果

用途:

①实现两个张量矩阵的点乘运算,可以实现广播功能(具体见案例代码)。

②实现矩阵的数值乘法(一个常数k与矩阵做乘法,对应于广播机制)

注意:

  • 若输入的两个矩阵形状不一致,则会通过广播功能进行数据扩充,然后再进行点乘
  • 整数矩阵与浮点数矩阵做点乘,结果是浮点数矩阵

案例代码:

①普通点乘

import torch 
a=torch.tensor([[1,2,3],[4,5,6]])
b=torch.tensor([[2,3,4],[5,6,7]])
c=torch.mul(a,b)
print('a:',a)
print('b:',b)
print('c:',c)

输出

a: tensor([[1, 2, 3],
        [4, 5, 6]])
b: tensor([[2, 3, 4],
        [5, 6, 7]])
c: tensor([[ 2,  6, 12],# 第一行对应点相乘
        [20, 30, 42]])# 第二行对应点相乘

②若矩阵大小不一致,则会通过广播机制进行扩充

import torch 
a=torch.tensor([[1,2,3],[4,5,6]])
b=torch.tensor([2,3,4])
c=torch.mul(a,b)
print('a:',a)
print('b:',b)
print('c:',c)

输出:

a: tensor([[1, 2, 3],
        [4, 5, 6]])
b: tensor([2, 3, 4])
c: tensor([[ 2,  6, 12],# b上的元素同时与a里面两个元素做点乘
        [ 8, 15, 24]])

再看一个例子:

import torch
mat_1=t.arange(8*512*14*14).reshape((8,512,14,14))
mat_2=t.arange(14*14).reshape(14,14)
mat_3=torch.mul(mat_1,mat_2)
print(mat_1.shape)
print(mat_2.shape)
print(mat_3)
print(mat_3.shape)

输出:

torch.Size([8, 512, 14, 14])
torch.Size([14, 14])
torch.Size([8, 512, 14, 14])

注:广播机制相当于做了一个复制扩充处理,如上个案例中的mat_2从两维扩充到了四维,并且在第一维度复制了8次,第二维度复制了512次,然后再与mat_1做点乘运算。

广播机制条件:

①两个数组的维数不相等,但是它们的后缘维度的轴长相符(从末尾开始算起的维度)(即上个案例)
②两个矩阵中对应的(从后向前对应)维度的尺寸大小相等(mat_1与mat_2在后两个维度大小均是14),若不相等,则必须有一方在该维度上尺寸大小是1。(比如上个案例中,若mat_2尺寸为[1,14,14],则仍可以通过广播机制进行扩充运算,结果与上述案例相同)

案例:

import torch
mat_1=t.arange(8*512*14*14).reshape((8,512,14,14))
mat_2=t.arange(2*14*14).reshape(2,14,14)
mat_3=torch.mul(mat_1,mat_2)

报错:
RuntimeError: The size of tensor a (512) must match the size of tensor b (2) at non-singleton dimension 1

原因:2与512尺寸大小不同,并且尺寸都不是1

在计算机视觉领域中,torch.mul常用于特征图与注意力图的相乘,特征图相当于上述案例的mat_1(batch_size=4,512张14×14的特征图),注意力图相当于上述案例的mat_2(14×14)。先将注意力图复制512次,和原来每个批次中特征图尺寸相匹配,再整体复制4次,对应4组特征图,最后做点乘运算。

官方文档

torch.mu()l:https://pytorch.org/docs/stable/generated/torch.mul.html?highlight=mul#torch.mul

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:20:36  更:2021-09-14 13:23:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 14:50:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码