将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 用户登录验证的小例子
Mar 06 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
pycharm安装和首次使用教程
Aug 27 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python 提取文件指定列的方法示例
Aug 07 Python
Python3离线安装Requests模块问题
Oct 13 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
python简单验证码识别的实现过程
Jun 20 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函数
2006/12/06 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
js 数据类型转换总结笔记
2011/01/17 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python中zfill()方法的使用教程
2015/05/20 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
关于Java finally的面试题
2016/04/27 面试题
有个性的自我评价范文
2013/11/15 职场文书
建筑行业的大学生自我评价
2013/12/08 职场文书
快递业务员岗位职责
2014/01/06 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
拔河比赛口号
2014/06/10 职场文书
新手上路标语
2014/06/20 职场文书