将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实现360皮肤按钮控件示例
Feb 21 Python
python实现DES加密解密方法实例详解
Jun 30 Python
python字典的常用操作方法小结
May 16 Python
如何将python中的List转化成dictionary
Aug 15 Python
python开发利器之ulipad的使用实践
Mar 16 Python
python出现"IndentationError: unexpected indent"错误解决办法
Oct 15 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python实现批量注册网站用户的示例
Feb 22 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
python处理document文档保留原样式
Sep 23 Python
matplotlib阶梯图的实现(step())
Mar 02 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的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
PHP会话处理的10个函数
2015/08/11 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
Python httplib模块使用实例
2015/04/11 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python for循环与getitem的关系详解
2020/01/02 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
python 实用工具状态机transitions
2020/11/21 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
就业推荐自我鉴定
2013/10/06 职场文书
平面设计的岗位职责
2013/11/08 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB