浅谈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 相关文章推荐
python查看zip包中文件及大小的方法
Jul 09 Python
Python语言描述最大连续子序列和
Dec 05 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
python基于socket函数实现端口扫描
May 28 Python
一文搞懂如何实现Go 超时控制
Mar 30 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
python如何为list实现find方法
May 30 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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
oracle资料库函式库
2006/10/09 PHP
php判断当前操作系统类型
2015/10/28 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
Python切片索引用法示例
2018/05/15 Python
python邮件发送smtplib使用详解
2020/06/16 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python 用struct模块解决黏包问题
2020/11/07 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
外贸主管求职简历的自我评价
2013/10/23 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
高二历史教学反思
2014/01/25 职场文书
开展读书活动总结
2014/06/30 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
施工安全员岗位职责
2015/04/11 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
python 单机五子棋对战游戏
2022/04/28 Python