关于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时区设置方法与pytz查询时区教程
Nov 27 Python
python 网络编程详解及简单实例
Apr 25 Python
python机器学习之神经网络(三)
Dec 20 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
Flask框架模板继承实现方法分析
Jul 31 Python
python字典的常用方法总结
Jul 31 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
详解python中index()、find()方法
Aug 29 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
python 单机五子棋对战游戏
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 mysql Errcode: 28 终极解决方法
2009/07/01 PHP
php csv操作类代码
2009/12/14 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP实现货币换算的方法
2014/11/29 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
JavaScript的eval JSON object问题
2009/11/15 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python实现代码块儿折叠
2020/04/15 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
虚拟机下载python是否需要联网
2020/07/27 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
研讨会主持词
2014/04/02 职场文书
大学班级计划书
2014/04/29 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
人事任命书格式
2014/06/05 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
单位车辆管理制度
2015/08/05 职场文书
运动会广播稿100字
2015/08/19 职场文书
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python
Python自动化实战之接口请求的实现
2022/05/30 Python