将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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
将python代码和注释分离的方法
Apr 21 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python中os.remove()用法及注意事项
Jan 31 Python
pytorch中的model.eval()和BN层的使用
May 22 Python
python 远程执行命令的详细代码
Feb 15 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
javascript定义函数的方法
2010/12/06 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
浅谈Python 函数式编程
2020/06/20 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
C#面试常见问题
2013/02/25 面试题
实习护士自我鉴定
2013/10/13 职场文书
会计自荐信范文
2014/03/09 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
入职担保书范文
2014/05/21 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
2019年大学推荐信
2019/06/24 职场文书
Python中re模块的元字符使用小结
2022/04/07 Python