浅谈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之禅》中对于Python编程过程中的一些建议
Apr 03 Python
对于Python装饰器使用的一些建议
Jun 03 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
python实现图片九宫格分割
Mar 07 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
python实现引用其他路径包里面的模块
Mar 09 Python
python从ftp获取文件并下载到本地
Dec 05 Python
如何在python中实现ECDSA你知道吗
Nov 23 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python读取键盘输入的2种方法
2015/06/16 Python
Python中int()函数的用法浅析
2017/10/17 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
python:接口间数据传递与调用方法
2018/12/17 Python
python框架django项目部署相关知识详解
2019/11/04 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
《司马光》教学反思
2016/02/22 职场文书
MySQL数据库之存储过程 procedure
2022/06/16 MySQL