将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模块学习 re 正则表达式
May 19 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python单例模式的两种实现方法
Aug 14 Python
对numpy中shape的深入理解
Jun 15 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
python pandas生成时间列表
Jun 29 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 Python
python opencv实现图像配准与比较
Feb 09 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
set_include_path在win和linux下的区别
2008/01/10 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
Python 多维List创建的问题小结
2019/01/18 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
python集合删除多种方法详解
2020/02/10 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
用python读取xlsx文件
2020/12/17 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
营业经理岗位职责
2013/11/10 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
医院护士工作检讨书
2014/10/26 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
解读Vue组件注册方式
2021/05/15 Vue.js
MySQL 如何限制一张表的记录数
2021/09/14 MySQL