浅谈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中使用urllib2防止302跳转的代码例子
Jul 07 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
深入理解python函数递归和生成器
Jun 06 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Django实现全文检索的方法(支持中文)
May 14 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
python重要函数eval多种用法解析
Jan 14 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python Socket网络编程实现C/S模式和P2P
Jun 22 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
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
JS获取父节点方法
2009/08/20 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
副厂长岗位职责
2014/02/02 职场文书
市场营销工作计划书
2014/05/06 职场文书
2015年校长新年寄语
2014/12/08 职场文书
财务经理岗位职责
2015/01/31 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python