目录描述

  • 1.向量的外积
  • 1.1 实例一
  • 1.2 实例二
  • 2.张量内积
  • 3.张量积(直积)
  • 4.Kronecker乘积(Kronecker Product)
  • 5.Hadamard乘积(Hadamard Product)
  • 6.Khatri-Rao乘积(Khatri-Rao Product)
  • 7.张量乘法
  • 7.1 张量内积
  • 7.2 张量乘以矩阵
  • 8.个人思考


1.向量的外积

1.1 实例一

存在三个向量:

张量python 张量积运算法则_学习


将三个向量相乘:

张量python 张量积运算法则_ci_02


作用:大大地降低了参数的维度。(将原本需要存储的12个数降低为7个数)

1.2 实例二

有三个向量:

张量python 张量积运算法则_java_03


张量python 张量积运算法则_ci_04

第一种:

张量python 张量积运算法则_学习_05


第二种:

张量python 张量积运算法则_java_06


第三种:

张量python 张量积运算法则_ci_07

2.张量内积

已知两个张量:

张量python 张量积运算法则_开发语言_08



张量python 张量积运算法则_学习_09


则两个张量的内积可以表示为:

张量python 张量积运算法则_张量python_10

3.张量积(直积)

  1. 张量积(积张量):有两个任意阶张量,第一个张量的每一个分量乘以第二个张量中的每一个分量,它们组合的集合仍然是一个张量,称为第一个张量乘以第二个张量的乘积。
  2. 张量积的阶数等于因子张量阶数之和

例如:张量python 张量积运算法则_张量python_11

张量python 张量积运算法则_学习_12


则:

张量python 张量积运算法则_ci_13

4.Kronecker乘积(Kronecker Product)

Kronecker乘积定义在两个矩阵张量python 张量积运算法则_java_14,张量python 张量积运算法则_java_15的运算:

张量python 张量积运算法则_学习_16


张量python 张量积运算法则_ci_17


张量python 张量积运算法则_开发语言_18


例如:

张量python 张量积运算法则_张量python_19

5.Hadamard乘积(Hadamard Product)

Hadamard乘积定义在两个相同大小的矩阵张量python 张量积运算法则_java_14,张量python 张量积运算法则_张量python_21的运算:

张量python 张量积运算法则_java_22

6.Khatri-Rao乘积(Khatri-Rao Product)

Khatri-Rao乘积定义了两个相同列数的矩阵张量python 张量积运算法则_ci_23,张量python 张量积运算法则_ci_24的运算:

张量python 张量积运算法则_学习_25


其演示图为:

张量python 张量积运算法则_ci_26


例如:

张量python 张量积运算法则_学习_27


张量python 张量积运算法则_java_28


即:

张量python 张量积运算法则_java_29

7.张量乘法

可以定义三种不同的张量乘法,分别为:

  1. 同样大小的张量相乘
  2. 张量乘以矩阵
  3. 张量乘以向量

7.1 张量内积

张量python 张量积运算法则_java_30


张量python 张量积运算法则_张量python_31

7.2 张量乘以矩阵

张量乘以矩阵步骤如下:

  1. 将张量矩阵化
  2. 再将张量和矩阵相乘

注意:这部分需要先了解 张量学习(10)

例如

有一个张量和矩阵:

张量python 张量积运算法则_java_32


张量python 张量积运算法则_学习_33


对张量进行张量python 张量积运算法则_学习_34得到:

张量python 张量积运算法则_ci_35


再将得到的矩阵和矩阵张量python 张量积运算法则_学习_36相乘:

张量python 张量积运算法则_java_37


其过程可以用一个图演示:

张量python 张量积运算法则_张量python_38

8.个人思考

张量的乘积与矩阵的乘积还是部分相对应的,其具体的物理意义可能再后面运用中才慢慢展现。