当前位置: 首页 > news >正文

如何购买网站虚拟主机wordpress 看板娘

如何购买网站虚拟主机,wordpress 看板娘,怎么建设手机网站首页,手机如何制作小程序张量[1]是向量和矩阵到 n 维的推广。了解它们如何相互作用是机器学习的基础。 简介 虽然张量看起来是复杂的对象#xff0c;但它们可以理解为向量和矩阵的集合。理解向量和矩阵对于理解张量至关重要。 向量是元素的一维列表#xff1a; 矩阵是向量的二维列表#xff1a; 下标… 张量[1]是向量和矩阵到 n 维的推广。了解它们如何相互作用是机器学习的基础。 简介 虽然张量看起来是复杂的对象但它们可以理解为向量和矩阵的集合。理解向量和矩阵对于理解张量至关重要。 向量是元素的一维列表 矩阵是向量的二维列表 下标表示行列。考虑矩阵的另一种方式是用向量作为元素的向量。请注意它们通常用大写字母表示。 3D 张量可以被视为三维矩阵列表 考虑 3D 张量的另一种方式是使用矩阵作为元素的向量。请注意在本文中它们是用书法大写字母标注的。 4D 张量可以被认为是 3D 张量的四维列表 考虑 4D 张量的另一种方式是使用 3D 张量作为其元素的向量。这些可能会变得越来越复杂但这是继续使用张量进行运算所必需的程度。 向量运算 假设这些是相同长度的向量i。接下来的操作主要是按元素进行的。这意味着每个向量中的相应元素被一起操作。 加法 import torchx  torch.tensor([1, 3, 5])y  torch.tensor([3, 7, 4])x  y# tensor([ 4, 10,  9]) 减法 x  torch.tensor([1, 3, 5])y  torch.tensor([3, 7, 4])x - y# tensor([-2, -4,  1]) 点乘 这也可以用求和来表示 x  torch.tensor([1, 3, 5])y  torch.tensor([3, 7, 4])torch.dot(x, y) # 1*3  3*7  5*4  3  21  20  44# tensor(44) 这也可以用 x y 来执行。点积的输出是一个标量。它不返回向量。 Hadamard乘法 Hadamard 乘积用于执行逐元素乘法并返回一个向量。 x  torch.tensor([1, 3, 5])y  torch.tensor([3, 7, 4])x * y# tensor([ 3, 21, 20]) 标量乘法 k 是标量在大多数情况下是实数。 k  5x  torch.tensor([1, 3, 5])k * x# tensor([ 5, 15, 25]) 由于 k 可以是分数因此这也可以被视为标量除法。 矩阵乘法 请记住矩阵是向量的集合。相同的操作适用于向量但在涉及行和列时还有一些规则需要注意。 假设如下其中 X 和 Y 的形状为 (4,3) 加法 X  torch.tensor([[1, 3, 5],                  [3, 6, 1],                  [6, 8, 5],                  [7, 3, 2]])Y  torch.tensor([[6, 3, 2],                  [8, 5, 4],                  [3, 1, 7],                  [1, 8, 3]])X  Y# tensor([[ 7,  6,  7],        [11, 11,  5],        [ 9,  9, 12],        [ 8, 11,  5]]) 减法 X  torch.tensor([[1, 3, 5],                  [3, 6, 1],                  [6, 8, 5],                  [7, 3, 2]])Y  torch.tensor([[6, 3, 2],                  [8, 5, 4],                  [3, 1, 7],                  [1, 8, 3]])X - Y# tensor([[-5,  0,  3],        [-5,  1, -3],        [ 3,  7, -2],        [ 6, -5, -1]]) 点积 在执行矩阵乘法时重要的是要将矩阵视为由向量组成。通过这个视图就可以清楚如何在矩阵上执行点积。发生乘法的唯一方法是第一个矩阵中的行数与第二个矩阵中的列数匹配。这导致 (m, n) x (n, r) (m, r) 如果情况并非如此则必须转置其中一个矩阵以适应该顺序这会切换行和列但保留点积的向量。 在上图中很明显左侧矩阵中的每个向量或行都乘以第二个矩阵中的每个向量或列。因此在此示例中A 中的每个向量必须与 B 中的每个向量相乘从而产生 16 个点积。 X  torch.tensor([[1, 3, 5],                  [3, 6, 1],                  [6, 8, 5],                  [7, 3, 2]])Y  torch.tensor([[6, 3, 2],                  [8, 5, 4],                  [3, 1, 7],                  [1, 8, 3]])X.matmul(Y.T) # X  Y.T# tensor([[ 25,  43,  41,  40],        [ 38,  58,  22,  54],        [ 70, 108,  61,  85],        [ 55,  79,  38,  37]]) Hadamard 积 Hadamard 乘积是逐元素乘法因此其执行方式与加法和减法相同。 X  torch.tensor([[1, 3, 5],                  [3, 6, 1],                  [6, 8, 5],                  [7, 3, 2]])Y  torch.tensor([[6, 3, 2],                  [8, 5, 4],                  [3, 1, 7],                  [1, 8, 3]])X * Y# tensor([[ 6,  9, 10],        [24, 30,  4],        [18,  8, 35],        [ 7, 24,  6]]) 标量乘法 k  5X  torch.tensor([[1, 3, 5],                  [3, 6, 1],                  [6, 8, 5],                  [7, 3, 2]])k * X# tensor([[ 5, 15, 25],        [15, 30,  5],        [30, 40, 25],        [35, 15, 10]]) 三维张量运算 张量运算要求两个张量具有相同的大小除非正在执行点积。 对于本节中的逐元素运算假设两个张量的形状为 (3, 3, 2)。这意味着两个张量都包含三个 (3,2) 矩阵。如下所示 import torchgen  torch.Generator().manual_seed(2147483647)X  torch.randint(0, 10, (3, 3, 2), generatorgen)Y  torch.randint(0, 10, (3, 3, 2), generatorgen)X  tensor([[[1, 4],             [9, 2],             [3, 0]],            [[4, 6],             [7, 7],             [1, 5]],            [[6, 8],             [1, 4],             [4, 9]]])Y  tensor([[[8, 0],             [3, 6],             [6, 0]],            [[9, 1],             [0, 0],             [2, 2]],            [[7, 1],             [8, 1],             [9, 0]]]) 加法 加法是按元素进行的并且按预期执行。每个张量中对应的元素相互相加。 X  Ytensor([[[ 9,  4],         [12,  8],         [ 9,  0]],        [[13,  7],         [ 7,  7],         [ 3,  7]],        [[13,  9],         [ 9,  5],         [13,  9]]]) 减法 减法也是按元素进行的并且按预期执行。 X - Ytensor([[[-7,  4],         [ 6, -4],         [-3,  0]],        [[-5,  5],         [ 7,  7],         [-1,  3]],        [[-1,  7],         [-7,  3],         [-5,  9]]]) 点积 张量乘法比二维中的张量乘法稍微复杂一些。之前矩阵乘法只有满足以下条件才能发生 (m, n) x (n, r) (m, r) 在三个维度上这仍然是一个要求。但是第一个轴必须相同 (z, m, n) x (z, n, r) (z, m, r) 为什么是这样嗯如前所述二维的点积主要是将向量彼此相乘。在三维中重点是按矩阵相乘然后对这些矩阵中的每个向量执行点积。 上图应该有助于解释这一点。将两个 3D 张量视为矩阵向量可能会有所帮助。由于点积是通过按元素相乘然后求和来执行的因此首先发生的事情是每个矩阵与其相应的矩阵相乘。当这种情况发生时矩阵乘法会导致矩阵中的每个向量与其他向量执行点积。从某种意义上说它就像一个嵌套的点积。 为了使 和 彼此相乘必须调换 的第二轴和第三轴。并且两者的大小均为 (3, 3, 2)。这意味着必须变成(3,2,3)。这可以使用 Y.permute(0, 2, 1) 来完成它转置第二和第三轴。或者可以使用 Y.transpose(1,2)。 print(Y.transpose(1,2))print(Y.transpose(1,2).shape) # Y.permute(0, 2, 1)tensor([[[8, 3, 6],         [0, 6, 0]],        [[9, 0, 2],         [1, 0, 2]],        [[7, 8, 9],         [1, 1, 0]]])torch.Size([3, 2, 3]) 通过适当的调整大小现在可以使用 matmul 或 执行张量乘法。输出的形状应为 (3, 3, 2) x (3, 2, 3) (3, 3, 3)。 X.matmul(Y.transpose(1,2)) # X  Y.transpose(1,2)tensor([[[ 8, 27,  6],         [72, 39, 54],         [24,  9, 18]],        [[42,  0, 20],         [70,  0, 28],         [14,  0, 12]],        [[50, 56, 54],         [11, 12,  9],         [37, 41, 36]]]) Hadamard 积 Hadamard 积的性能符合预期并在 3D 张量的矩阵中按元素相乘。 X * Ytensor([[[ 8,  0],         [27, 12],         [18,  0]],        [[36,  6],         [ 0,  0],         [ 2, 10]],        [[42,  8],         [ 8,  4],         [36,  0]]]) 标量乘法 标量乘法也按预期执行。 k  5k*Xtensor([[[ 5, 20],         [45, 10],         [15,  0]],        [[20, 30],         [35, 35],         [ 5, 25]],        [[30, 40],         [ 5, 20],         [20, 45]]]) 四维张量运算 四维张量运算仍然要求两个张量具有相同的大小。 对于本部分假设形状为 (2, 3, 3, 2)。这意味着两个 4D 张量都包含两个 3D 张量并且每个张量都包含三个 (3,2) 矩阵。如下所示 import torchgen  torch.Generator().manual_seed(2147483647)X  torch.randint(0, 10, (2, 3, 3, 2), generatorgen)Y  torch.randint(0, 10, (2, 3, 3, 2), generatorgen)X# 4d tensortensor([# 3d tensor        [         # matrix 1         [[1, 4],          [9, 2],          [3, 0]],         # matrix 2         [[4, 6],          [7, 7],          [1, 5]],         # matrix 3         [[6, 8],          [1, 4],          [4, 9]]],# 3d tensor        [         # matrix 1         [[8, 0],          [3, 6],          [6, 0]],         # matrix 2         [[9, 1],          [0, 0],          [2, 2]],         # matrix 3         [[7, 1],          [8, 1],          [9, 0]]]])Y# 4d tensortensor([# 3d tensor        [         # matrix 1          [[6, 3],          [6, 4],          [5, 7]],         # matrix 2         [[3, 7],          [2, 0],          [5, 1]],         # matrix 3         [[0, 4],          [0, 8],          [0, 6]]],# 3d tensor        [         # matrix 1         [[0, 5],          [8, 6],          [1, 0]],         # matrix 2         [[5, 1],          [1, 6],          [1, 2]],         # matrix 3         [[6, 0],          [2, 6],          [1, 5]]]]) 加法 加法、减法和哈达玛积仍然按预期按元素执行。 X  Ytensor([[[[ 7,  7],          [15,  6],          [ 8,  7]],         [[ 7, 13],          [ 9,  7],          [ 6,  6]],         [[ 6, 12],          [ 1, 12],          [ 4, 15]]],        [[[ 8,  5],          [11, 12],          [ 7,  0]],         [[14,  2],          [ 1,  6],          [ 3,  4]],         [[13,  1],          [10,  7],          [10,  5]]]]) 减法 X - Ytensor([[[[-5,  1],          [ 3, -2],          [-2, -7]],         [[ 1, -1],          [ 5,  7],          [-4,  4]],         [[ 6,  4],          [ 1, -4],          [ 4,  3]]],        [[[ 8, -5],          [-5,  0],          [ 5,  0]],         [[ 4,  0],          [-1, -6],          [ 1,  0]],         [[ 1,  1],          [ 6, -5],          [ 8, -5]]]]) 点积 在四维中张量乘法将具有与三维和二维中相同的要求。它还需要第一轴和第二轴与两个张量匹配 (c、z、m、n) x (c、z、n、r) (c、z、m、r) 在三维空间中进行矩阵乘法然后进行向量之间的点积。相同的步骤将在四个维度中发生但首先将每个 3D 张量与其相应的 3D 张量相乘。然后它们的每个矩阵将相互相乘。最后它们的向量将相互执行点积。这可以在上图中看到。 对于本例 和 的大小为 (2, 3, 3, 2)。为了进行乘法运算必须调换 的第三轴和第四轴。这可以按照与之前使用 Y.permute(0, 1, 3, 2) 或 Y.transpose(2,3) 相同的方式完成。转置后的形状为 (2, 3, 2, 3)。 结果的形状应为 (2, 3, 3, 2) x (2, 3, 2, 3) (2,3,3,3)。这意味着将有两个 3D 张量每个张量将包含三个 (3,3) 矩阵。这个结果可以使用 matmul 或 获得。 X.matmul(Y.transpose(2,3)) # X  Y.transpose(2,3)tensor([[[[18, 22, 33],          [60, 62, 59],          [18, 18, 15]],         [[54,  8, 26],          [70, 14, 42],          [38,  2, 10]],         [[32, 64, 48],          [16, 32, 24],          [36, 72, 54]]],        [[[ 0, 64,  8],          [30, 60,  3],          [ 0, 48,  6]],         [[46, 15, 11],          [ 0,  0,  0],          [12, 14,  6]],         [[42, 20, 12],          [48, 22, 13],          [54, 18,  9]]]]) Hadamard 积 X * Ytensor([[[[ 6, 12],          [54,  8],          [15,  0]],         [[12, 42],          [14,  0],          [ 5,  5]],         [[ 0, 32],          [ 0, 32],          [ 0, 54]]],        [[[ 0,  0],          [24, 36],          [ 6,  0]],         [[45,  1],          [ 0,  0],          [ 2,  4]],         [[42,  0],          [16,  6],          [ 9,  0]]]]) 标量乘法 k  5k * Xtensor([[[[ 5, 20],          [45, 10],          [15,  0]],         [[20, 30],          [35, 35],          [ 5, 25]],         [[30, 40],          [ 5, 20],          [20, 45]]],        [[[40,  0],          [15, 30],          [30,  0]],         [[45,  5],          [ 0,  0],          [10, 10]],         [[35,  5],          [40,  5],          [45,  0]]]]) Reference [1] Source: https://medium.com/hunter-j-phillips/a-simple-introduction-to-tensors-c4a8321efffc 本文由 mdnice 多平台发布
http://www.zqtcl.cn/news/631021/

相关文章:

  • 网站深圳优化建设购物网站模版
  • 网站后端用什么软件做广西城乡建设部网站首页
  • wordpress android客户端湛江网站关键词优化
  • 建材企业网站推广方案申请域名建立网站
  • 备案期间网站要关闭吗汽车行业网站建设比较好
  • 百度网站优化公司做欧洲电商看哪个网站
  • 性做网站推广赚钱群
  • 猪八戒网站做推广怎么样制作企业网站是怎么收费的
  • 罗湖网站公司wordpress 单页面美化
  • 小白自己做网站商业摄影网站源码
  • 网站做外链什么意思青岛科友网站建设网络公司
  • 洛阳网站建设培训杭州seo网站排名
  • 长沙公司网站wordpress发文章后显示两篇
  • 优享购物官方网站wordpress添加数据
  • 重庆工程建设造价信息网站娱乐网站策划书
  • 南通电商网站建设网站设计制作电话多少
  • 微网站搭建流程郑州市金水区建设局官方网站
  • 手工活接单在家做有正规网站吗网站开发的职责与分工
  • 网站程序系统信阳建网站
  • 站长工具关键词排名怎么查深企在线
  • 长垣县建站塔山双喜网站被抓取
  • 如何更改网站的关键词企业商务网站有哪些
  • 太阳能建设网站运城个人网站建设
  • 网站建设 起飞最好的免费logo设计网站
  • 提供网站建设设计wordpress数据库查询很慢
  • 可以自己做漫画的网站怎么才能学网页设计
  • 能盈利的网站网站运营经验
  • 咸宁网站建设价格创建app需要什么条件
  • 一个静态网站多少钱谷歌推广公司哪家好
  • 做体育的网站c2c跨境电商平台有哪些?