浅谈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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python3 Random模块代码详解
Dec 04 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Python配置虚拟环境图文步骤
May 20 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python实现银行实战系统
Feb 26 Python
python实现与redis交互操作详解
Apr 21 Python
PyQt实现计数器的方法示例
Jan 18 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文件读写操作之文件写入代码
2011/01/13 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
DOM 事件流详解
2015/01/20 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python and、or以及and-or语法总结
2015/04/14 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
详解python之配置日志的几种方式
2017/05/22 Python
一道python走迷宫算法题
2018/01/22 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python3中rank函数的用法
2019/11/27 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
蛋白质世界:Protein World
2017/11/23 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
安全生产投入制度
2014/01/29 职场文书
面试后的英文感谢信
2014/02/01 职场文书
活动总结模板
2014/05/09 职场文书
监考失职检讨书
2015/01/26 职场文书
实习班主任自我评价
2015/03/11 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis