tensorflow中高维数组乘法运算
1 前言
声明:本博客里的数组乘法运算是指矩阵乘法运算,不是对应元素相乘。
在线性代数或高等代数中,我们学习了矩阵乘法,那么,什么样的高维数组才能相乘?tensorflow 又是如何定义高维数组运算规则?
2 运算条件
- 两数组的维数相同:len(a.shape)=len(b.shape)
- 前n-2个维度都一致:a.shape[0]=b.shape[0],...,a.shape[-3]=b.shape[-3]
- 最后两个维度满足矩阵乘法运算:a.shape[-1]=b.shape[-2]
假设 a.shape=(n1,n2,...,nL),b.shape=(m1,m2,...,mL),则 tf.matmul(a,b) 能运算的条件如下图(箭头表示相等):
3 运算规则
令 c=tf.matmul(a,b),因为a和b只有最后两维不一致,若以二维矩阵为最小的元素,则a和b的维数完全一致,c的每个元素为a和b的对应元素相乘,每个元素都是一个二维矩阵。
4 实验
import numpy as np
import tensorflow as tf
a=np.array(
[[[1,1,1],
[2,2,2]],
[[2,2,2],
[3,3,3]],
[[3,3,3],
[4,4,4]]])
b=np.array(
[[[1,2],
[1,2],
[1,2]],
[[2,3],
[2,3],
[2,3]],
[[3,4],
[3,4],
[3,4]]])
c=tf.matmul(a,b)
with tf.Session() as sess:
c=sess.run(c)
print("c=tf.matmul(a,b)\n",c)
c=tf.matmul(a,b)
[[[ 3 6]
[ 6 12]]
[[12 18]
[18 27]]
[[27 36]
[36 48]]]
声明:本文转自tensorflow中高维数组乘法运算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)