将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中的map()函数和reduce()函数的用法
Apr 27 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
python实现两张图片的像素融合
Feb 23 Python
Python3中列表list合并的四种方法
Apr 19 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python自定义函数实现最大值的输出方法
Jul 09 Python
python3字符串操作总结
Jul 24 Python
python经典趣味24点游戏程序设计
Jul 26 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
python中如何设置代码自动提示
Jul 15 Python
python集合的新增元素方法整理
Dec 07 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删除文件夹的三种方法
2013/06/09 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
json跟xml的对比分析
2008/06/10 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
python基于socket实现网络广播的方法
2015/04/29 Python
批处理与python代码混合编程的方法
2016/05/19 Python
win与linux系统中python requests 安装
2016/12/04 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
酒店端午节促销方案
2014/02/18 职场文书
借款协议书
2014/09/16 职场文书
银行授权委托书样本
2014/10/13 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
工作年限证明模板
2015/06/15 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python