将tf.batch_matmul替换成tf.matmul的实现


Posted in Python onJune 18, 2020

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

import tensorflow as tf
h_doc=tf.placeholder(tf.int32,[None,30,512])
h_query=tf.placeholder(tf.int32,[None,10,512])
temp = tf.matmul(h_doc, h_query, adjoint_b = True) # tf.batch_matmul(h_doc, h_query, adj_y=True)
print(temp.get_shape())

(?, 30, 10)

补充知识:tf.matmul() 和tf.multiply() 的区别

1.tf.multiply()两个矩阵中对应元素各自相乘

格式: tf.multiply(x, y, name=None)

参数:

x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。

y: 一个类型跟张量x相同的张量。

返回值: x * y element-wise.

注意:

(1)multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。

(2)两个相乘的数必须有相同的数据类型,不然就会报错。

2.tf.matmul()将矩阵a乘以矩阵b,生成a * b。

格式: tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)

参数:

a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。

b: 一个类型跟张量a相同的张量。

transpose_a: 如果为真, a则在进行乘法计算前进行转置。

transpose_b: 如果为真, b则在进行乘法计算前进行转置。

adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。

adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。

a_is_sparse: 如果为真, a会被处理为稀疏矩阵。

b_is_sparse: 如果为真, b会被处理为稀疏矩阵。

name: 操作的名字(可选参数)

返回值: 一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。

注意:

(1)输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸。

(2)两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128。

引发错误:

ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被设置为真

程序示例:

将tf.batch_matmul替换成tf.matmul的实现

运行结果:

将tf.batch_matmul替换成tf.matmul的实现

注意:

在TensorFlow的世界里,变量的定义和初始化是分开的,所有关于图变量的赋值和计算都要通过tf.Session的run来进行。想要将所有图变量进行集体初始化时应该使用tf.global_variables_initializer。

以上这篇将tf.batch_matmul替换成tf.matmul的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
Python合并字符串的3种方法
May 21 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python理解递归的方法总结
Jan 28 Python
python利用7z批量解压rar的实现
Aug 07 Python
python中threading开启关闭线程操作
May 02 Python
Pycharm调试程序技巧小结
Aug 08 Python
python函数指定默认值的实例讲解
Mar 29 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
python属于软件吗
Jun 18 #Python
python交互模式基础知识点学习
Jun 18 #Python
You might like
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python求最大连续子数组的和
2018/07/07 Python
python实现宿舍管理系统
2019/11/22 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python实现拼图小游戏
2020/02/22 Python
python中rc1什么意思
2020/06/19 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
护理专业个人求职简历的自我评价
2013/10/13 职场文书
总经理岗位职责范本
2014/02/02 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
软件售后服务方案
2014/05/29 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL