浅谈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处理文本文件实现生成指定格式文件的方法
Jul 31 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
Python简单定义与使用二叉树示例
May 11 Python
python 切换root 执行命令的方法
Jan 19 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
如何使用 Flask 做一个评论系统
Nov 27 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
discuz安全提问算法
2007/06/06 PHP
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
nginx 设置多个站跨域
2021/03/09 Servers
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
JavaScript实现简单进度条效果
2020/03/25 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python——全排列数的生成方式
2020/02/26 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
学生就业推荐信
2013/11/13 职场文书
师德个人剖析材料
2014/02/02 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
四则混合运算教学反思
2016/02/23 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL