tensorflow中高维数组乘法运算

本文详细介绍了在TensorFlow中进行高维数组乘法的条件与规则,包括维数匹配、维度一致性及矩阵乘法规则,并通过具体实验演示了高维数组的乘法运算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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]]]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

little_fat_sheep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值