浅谈keras中的batch_dot,dot方法和TensorFlow的matmul


Posted in Python onJune 18, 2020

概述

在使用keras中的keras.backend.batch_dot和tf.matmul实现功能其实是一样的智能矩阵乘法,比如A,B,C,D,E,F,G,H,I,J,K,L都是二维矩阵,中间点表示矩阵乘法,AG 表示矩阵A 和G 矩阵乘法(A 的列维度等于G 行维度),WX=Z

import keras.backend as K
import tensorflow as tf
import numpy as np

w = K.variable(np.random.randint(10,size=(10,12,4,5)))
k = K.variable(np.random.randint(10,size=(10,12,5,8)))
z = K.batch_dot(w,k)
print(z.shape) #(10, 12, 4, 8)
import keras.backend as K
import tensorflow as tf
import numpy as np

w = tf.Variable(np.random.randint(10,size=(10,12,4,5)),dtype=tf.float32)
k = tf.Variable(np.random.randint(10,size=(10,12,5,8)),dtype=tf.float32)
z = tf.matmul(w,k)
print(z.shape) #(10, 12, 4, 8)

浅谈keras中的batch_dot,dot方法和TensorFlow的matmul

示例

from keras import backend as K
a = K.ones((3,4,5,2))
b = K.ones((2,5,3,7))
c = K.dot(a, b)
print(c.shape)

会输出:

ValueError: Dimensions must be equal, but are 2 and 3 for ‘MatMul' (op: ‘MatMul') with input shapes: [60,2], [3,70].

from keras import backend as K
a = K.ones((3,4))
b = K.ones((4,5))
c = K.dot(a, b)
print(c.shape)#(3,5)

或者

import tensorflow as tf
a = tf.ones((3,4))
b = tf.ones((4,5))
c = tf.matmul(a, b)
print(c.shape)#(3,5)

如果增加维度:

from keras import backend as K
a = K.ones((2,3,4))
b = K.ones((7,4,5))
c = K.dot(a, b)
print(c.shape)#(2, 3, 7, 5)

这个矩阵乘法会沿着两个矩阵最后两个维度进行乘法,不是element-wise矩阵乘法

from keras import backend as K
a = K.ones((1, 2, 3 , 4))
b = K.ones((8, 7, 4, 5))
c = K.dot(a, b)
print(c.shape)#(1, 2, 3, 8, 7, 5)

浅谈keras中的batch_dot,dot方法和TensorFlow的matmul

keras的dot方法是Theano中的复制

from keras import backend as K
a = K.ones((1, 2, 4))
b = K.ones((8, 7, 4, 5))
c = K.dot(a, b)
print(c.shape)# (1, 2, 8, 7, 5).
from keras import backend as K
a = K.ones((9, 8, 7, 4, 2))
b = K.ones((9, 8, 7, 2, 5))
c = K.batch_dot(a, b)
print(c.shape) #(9, 8, 7, 4, 5)

或者

import tensorflow as tf
a = tf.ones((9, 8, 7, 4, 2))
b = tf.ones((9, 8, 7, 2, 5))
c = tf.matmul(a, b)
print(c.shape) #(9, 8, 7, 4, 5)

以上这篇浅谈keras中的batch_dot,dot方法和TensorFlow的matmul就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
python判断字符串是否纯数字的方法
Nov 19 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
python如何保证输入键入数字的方法
Aug 23 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
Python 多进程原理及实现
Dec 21 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
PyCharm中配置PySide2的图文教程
Jun 18 #Python
python属于软件吗
Jun 18 #Python
python交互模式基础知识点学习
Jun 18 #Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 #Python
python如何从键盘获取输入实例
Jun 18 #Python
Python计算信息熵实例
Jun 18 #Python
python导入库的具体方法
Jun 18 #Python
You might like
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
用JS实现的一个include函数
2007/07/21 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
python二分法实现实例
2013/11/21 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
基于python plotly交互式图表大全
2019/12/07 Python
Python类中self参数用法详解
2020/02/13 Python
介绍一些UNIX常用简单命令
2014/11/11 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
违章停车检讨书
2014/10/21 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android