将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脚本实现xls(xlsx)转成csv
Apr 10 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
pandas抽取行列数据的几种方法
Dec 13 Python
python3实现Dijkstra算法最短路径的实现
May 12 Python
总结Python常用的魔法方法
May 25 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 Python
python开发人人对战的五子棋小游戏
May 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 快速生成 Flash 动画的方法
2007/03/06 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
python连接MySQL数据库实例分析
2015/05/12 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
枚举与#define宏的区别
2014/04/30 面试题
医学专业毕业生推荐信
2013/11/14 职场文书
财务主管的岗位职责
2013/12/30 职场文书
竞选部长演讲稿
2014/04/26 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
解决redis批量删除key值的问题
2022/03/23 Redis