torch中的mul(、matmul(和mm(

1.mul()

源码中是这样的。可以看到主要有两个参数是必要的,分别是两个tensor向量。

def mul(input: Union[Tensor, Number], other: Union[Tensor, Number], *, out: Optional[Tensor]=None) -> Tensor: ...

用例子测试一下:

import torcha = torch.tensor([1, 3])
b = torch.tensor([2, 5])
print(torch.mul(a, b))

输出的结果为
tensor([ 2, 15])

可以发现,mul通过对应位置相乘,得到的值填入tensor向量中,这样需要保证输入的两个向量维度和大小一直

2.matmul()

源码如下,函数参数为两个tensor向量

def matmul(input: Tensor, other: Tensor, *, out: Optional[Tensor]=None) -> Tensor: ...

测试例子:

import torcha = torch.tensor([1, 3])
b = torch.tensor([2, 5])
print(torch.matmul(a, b))

得出的结果为:tensor(17)

可以看出,matmul是点积乘法,通过行乘列,相加的形式。
假设a=[a1a2]a=\begin{bmatrix} a_1&a_2 \end{bmatrix}a=[a1a2]b=[b11b12b13b21b22b23]b=\begin{bmatrix} b_{11} & b_{12}&b_{13}\\ b{21} & b_{22}&b_{23} \end{bmatrix}b=[b11b21b12b22b13b23]
那么,有
matmul(a,b)=[a1∗b11+a2∗b21a1∗b12+a2∗b22a1∗b13+a2∗b23]matmul(a,b)=\begin{bmatrix} a_1*b_{11}+a_2*b_{21} & a_1*b_{12}+a_2*b_{22}&a_1*b_{13}+a_2*b_{23} \end{bmatrix} matmul(a,b)=[a1b11+a2b21a1b12+a2b22a1b13+a2b23]

3.mm()

源码如下,输入的参数要求是矩阵tensor向量,要求满足二维tensormm()的本质也是点乘

def mm(input: Tensor, mat2: Tensor, *, out: Optional[Tensor]=None) -> Tensor: ...

这里也给出一个例子:

import torcha = torch.tensor([1, 3])
b = torch.tensor([2, 5])a = torch.unsqueeze(a, dim=0)
b = torch.unsqueeze(b, dim=0).T
print(a)
print(b)
a = torch.mm(a, b)
print(a)

输出的结果为:

tensor([[1, 3]])
tensor([[2],[5]])
tensor([[17]])

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2214823.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

torch中的mul()、matmul()和mm()

1.mul()
源码中是这样的。可以看到主要有两个参数是必要的,分别是两个tensor向量。
def mul(input: Union[Tensor, Number], other: Union[Tensor, Number], *, out: Optional[Tensor]None) -> Tensor: …用例子测试一下:
import torcha torch.t……

echarts 地图板块点击着色,移除着色

//选择省份变色 showProvince(name) { this.oldName name; this.mapChart && this.mapChart.dispatchAction({ type: geoSelect, name }) }, //移除上次点击变色 hideProvince() { this.mapChart && this.mapChart.dispatchAction({ type: geoUnSelect, name:……

ansys在求解过程中死机关机的解决办法

ansys是一款功能强大的仿真软件。它用于分析工程领域的结构分析和流体动力学。在使用ansys软件时,必须面对许多复杂的问题,并且计算机会崩溃关机。这导致工作人员的时间浪费以及效率低下。 ansys关闭计算机的原因
ansys在求解过程中关闭计算机的原因可能……

【Python_Selenium学习笔记(四)】基于Selenium模块实现键盘操作

基于Selenium模块实现键盘操作
前言
在 Selenium 模块中,提供了一个 Keys 类,来处理键盘操作; 在 Selenium 模块中,使用 send_keys() 方法,来模拟键盘输入, 此篇文章主要介绍如何使用 Keys 类 和 send_ke……

C#如何使用Task完成异步方法

目录 一、async和await特性的结构
1. 异步和同步
2.async和await
二、什么是异步方法
1.异步方法的结构
2.异步方法三种返回类型理解
3.异步方法的控制流
三、await表达式
四、取消一个异步操作
五、异常处理的await表达式
六、在调用方法中同步地等待任务
1. Wait ……

【Mysql-waiting for table metadata lock问题解决】

【简介】 最近遇到了一个特别奇怪的事情,项目每次到11点的时候就会登录不上去,没有反应,然后查看数据库看到了下面的情况。 【问题处理】
(1) "Waiting for table metadata lock"是指MySQL数据库中的一个进……

技术分享| 什么是动态更新?

近期工作提到动态更新比较多,今天也借此机会,梳理一下相关的机制原理同大家分享。
动态机制及技术原理
动态研发模式就是一种基于云端的移动应用开发方法,主要能让开发者快速构建和发布多端的移动应用,实现业务的敏捷迭代和热更……

mytracks mac Crack,程序提供全套功能

mytracks mac Crack,程序提供全套功能 MyTracks是一个完整的macOS应用程序,允许用户跟踪他们的户外活动,如步行和骑自行车,跑步,滑雪等等。该应用程序由Dirk Stichling开发,旨在帮助用户记录他们的路线、距离、时间和其……

谷粒商城笔记+踩坑(21)——提交订单。原子性验令牌+锁定库存

目录
1、环境准备
1.1、业务流程
1.2、Controller 层编写下单功能接口
1.3、订单提交的模型类
1.4、前端页面 confirm.html 提供数据
2、提交订单业务完整代码
3、原子性验令牌:令牌的对比和删除保证原子性
4、初始化新订单,包含订单、订单项等信……

7.2 搜索二叉树(BST)及其Java实现

文章目录1 搜索二叉树(BST)1.1 搜索二叉树的定义1.2 Java实现二叉搜索树1.2.1 二叉搜索树节点的要素1.2.2 二叉搜索树插入操作实现1.2.3 二叉搜索树删除操作实现1.2.4 二叉搜索树的查找操作1.2.5 获得树的极值1.2.6 按大小顺序打印元素1.3 完整代码仓库地……

【面试题 高逼格利用 类实现加法】编写代码, 实现多线程数组求和.

编写代码, 实现多线程数组求和.关键1. 数组的初始化关键2. 奇偶的相加import java.util.Random;public class Thread_2533 {public static void main(String[] args) throws InterruptedException {// 记录开始时间long start System.currentTimeMillis();// 1. 给定一个很长的……

一个python训练

美国:28:麻省理工学院,斯坦福大学,哈佛大学,加州理工学院,芝加哥大学,普林斯顿大学,宾夕法尼亚大学,耶鲁大学,康奈尔大学,哥伦比亚大学,密歇根大学安娜堡分校,约翰霍普金斯大学,西北大学,加州大学伯克利分校,纽约大学,加州大学洛杉矶分校,杜克大学,卡内基梅隆大学,加州大学圣地……

Mybatis03学习笔记

目录 使用注解开发
设置事务自动提交
mybatis运行原理
注解CRUD
lombok使用(偷懒神器,大神都不建议使用)
复杂查询环境(多对一)
复杂查询环境(一对多)
动态sql环境搭建
动态sql常用标签……

设置或取得c# NumericUpDown 编辑框值的方法,(注意:不是Value值)

本人在C#开发中使用到了NumericUpDown控件,但是发现该控件不能直接控制显示值,经研究得到下面的解决办法
NumericUpDown由于是由多个控件组合而来的控件,其中包含一个类似TextBox的控件,若想取得或改变其中的值要使用如下方法
N……

使用NPOI 技术 的SetColumnWidth 精确控制列宽不能成功的解决办法(C#)

在使用NPOI技术开发自动操作EXCEL软件时遇到不能精确设置列宽的问题。

ISheet sheet1 hssfworkbook.CreateSheet("Sheet1");
sheet1.SetColumnWidth(0, 50 * 256); // 在EXCEL文档中实际列宽为49.29
sheet1.SetColumnWidth(1, 100 * 256); // 在EXCEL文……

Mysql 数据库zip版安装时basedir datadir 路径设置问题,避免转义符的影响

本人在开发Mysql数据库自动安装程序时遇到个很奇怪的问题,其中my.ini的basedir 的路径设置是下面这样的:
basedir d:\测试\test\mysql
但是在使用mysqld安装mysql服务时老是启动不了,报1067错误,后来查看window事件发现一个独特……

java stream sorted排序 考虑null值

项目里使用到排序, java里没有像C# 里的linq,只有stream,查找stream.sorted源码看到有个
Comparator.nullsLast
然后看了一下实现,果然是能够处理null值的排序,如:minPriceList.stream().sorted(Comparator.comparing(l -> l.g……

spring @EnableConfigurationProperties 实现原理

查看DataSourceAutoConfiguration源码,发现如下代码: Configuration ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class }) EnableConfigurationProperties(DataSourceProperties.class) Import({ DataSourcePoolMetadataProvidersCon……

postman请求https网址没有响应,但是用浏览器有响应,解决办法

遇到个问题:同一个get请求的url,postman请求https网址没有响应,但是用浏览器有响应
url是https开头的,查看错误描述里有一个SSL的选项: 然后根据描述关掉这个选项: 然后就没问题了,能正常请求及……

java @Inherited注解的作用

看到很多注解都被Inherited进行了修饰,但是这个Inherited有什么作用呢?
查看Inherited代码描述:
Indicates that an annotation type is automatically inherited. If an Inherited meta-annotation is present on an annotation type decl……

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注