关于tf.matmul() 和tf.multiply() 的区别说明


Posted in Python onJune 18, 2020

我就废话不多说了,大家还是直接看代码吧~

flyfish

# a
# [[1, 2, 3],
# [4, 5, 6]] a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])

# b1
# [[ 7, 8],
# [ 9, 10],
# [11, 12]] b1 = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])

#b2
#[[ 7 8 9]
# [10 11 12]] b2 = tf.constant([7, 8, 9, 10, 11, 12], shape=[2, 3])

# c矩阵相乘 第一个矩阵的列数(column)等于第二个矩阵的行数(row)
# [[ 58, 64],
# [139, 154]] c = tf.matmul(a, b1)

# d`数元素各自相乘
#[[ 7 16 27]
# [40 55 72]] d = tf.multiply(a, b2) #维度必须相等 with tf.Session():
 print(d.eval())

关于其他计算

b3 = tf.constant([7, 8, 9,], shape=[1, 3])
tf.multiply(a, b3)
结果是
[[ 7 16 27]
 [28 40 54]]

b4 = tf.constant([7, 8], shape=[2, 1])
tf.multiply(a, b4)
结果是
[[ 7 14 21]
 [32 40 48]]

b5 = tf.constant([7], shape=[1, 1])
tf.multiply(a, b5)

结果是

[[ 7 14 21]
 [28 35 42]]

补充知识:tensor matmul的对3维张量的处理

torch.matmul(a,b)处理的一般是a和b的最后两个维度,假设a的维度为B*F*M,b也为B*F*M, 在对a,b做相乘操作的时候,需要完成对B的维度顺序的变换,通过permute(0, 2, 1)变换为B*M*F。

通过变换后进行torch.matmul(a,b)得到结果为B*F*F,在除了最后两个维度的的之前维度上都被认为是Batch。

示例1:

>>> import torch
>>> a=torch.rand((1000,5,10))
>>> b=torch.rand((1000,10,12))
>>> c=torch.matmul(a,b)
>>> c.shape
torch.Size([1000, 5, 12])

在处理不同维度时,会通过广播来合并除最后两个维度外的其他维度,如对于A*B*F*M与B*M*F的matmul,结果为A*B*F*F

示例2:

>>> a=torch.rand((50,1000,5,10))
>>> b=torch.rand((1000,10,12))
>>> c=torch.matmul(a,b)
>>> c.shape
torch.Size([50, 1000, 5, 12])

以上这篇关于tf.matmul() 和tf.multiply() 的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
python简单实现刷新智联简历
Mar 30 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Django中使用Celery的方法示例
Nov 29 Python
python用match()函数爬数据方法详解
Jul 23 Python
django-初始配置(纯手写)详解
Jul 30 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
浅析Python3 pip换源问题
Jan 06 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 Python
Python正则表达式高级使用方法汇总
Jun 18 #Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 #Python
新手常见Python错误及异常解决处理方案
Jun 18 #Python
Python之Matplotlib文字与注释的使用方法
Jun 18 #Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 #Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 #Python
PyCharm中配置PySide2的图文教程
Jun 18 #Python
You might like
在PHP中使用XML
2006/10/09 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
Javascript实现打鼓效果
2021/01/29 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
Django CBV类的用法详解
2019/07/26 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
Python print不能立即打印的解决方式
2020/02/19 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
java程序员面试交流
2012/11/29 面试题
创意活动策划书
2014/01/15 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
眼镜促销方案
2014/03/15 职场文书
腾讯广告词
2014/03/19 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
放假通知
2015/04/14 职场文书
学生病假条怎么写
2015/08/17 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书