将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 相关文章推荐
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
python pygame模块编写飞机大战
Nov 20 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
基于python代码批量处理图片resize
Jun 04 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
python pyg2plot的原理知识点总结
Feb 28 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操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
Python中多线程的创建及基本调用方法
2016/07/08 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Flask之flask-script模块使用
2018/07/26 Python
python numpy 反转 reverse示例
2019/12/04 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
产品推广策划方案
2014/05/10 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
班主任2015新年寄语
2014/12/08 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python