深度学习基础:张量运算

当前位置:manbetx2.0安卓客户端 > manbetx2.0安卓客户端 > 深度学习基础:张量运算
作者: manbetx2.0安卓客户端|来源: http://www.mykiraya.com|栏目:manbetx2.0安卓客户端

文章关键词:manbetx2.0安卓客户端,单位张量

  在2012年的Imagenet运动之后,深度学习取得了突飞猛进的发展。 深度学习现在已经成为我们日常生活中不可或缺的一部分,当我们与语音助手交谈、使用家庭自动化系统、写电子邮件等时,许多算法都在运行。事实上,它的影响是如此之大,以至于我们可以在亚马逊上看到名为“婴儿的神经网络”的书籍:D

  就其核心而言,深度学习只不过是人脑工作方式的缩影(忽略了人脑中存在的实际复杂性,这种复杂性仍然很难复制)。 计算机使用成百上千个跨越深层的神经元连接从它的输入和输出中学习(因此有了“深度学习”这个词)。

  在每次迭代中对权值进行优化,使预测损失最小化,并以最高精度预测输出。计算机是机器,机器只懂数字。因此,在底层,我们讨论的所有这些权重都是n维矩阵或张量。

  由于每个权值都是一个n维矩阵或张量,权值的学习和优化涉及数百万个矩阵乘法。在过去的6-7年中,我们已经看到许多DL框架的出现,它们简化了这个任务。

  Pytorch是一个流行的深度学习框架,由Facebook人工智能研究(FAIR)开发和维护,用于处理张力。自2016年1.0.0发布以来,由于使用的简单性和灵活性,它获得了极大的普及。在本文中,我们将主要关注使用Pytorch的一些核心张量运算。您可能想通过这个博客了解如何安装PyTorch的详细说明。

  在上面的示例中,我创建了一个3X2X4张量,torch.size返回3个维度。 我们的张量在外括号内有3个元素,每个元素都是一个矩阵。 每个矩阵同样有2个元素,每个元素都是一个包含4个元素的列表。

  在上面的示例中,mat1和mat2的大小均为3X3。 因此,torch.mm的输出大小也为3X3。 我们可以看到可以使用“ @”运算符代替torch.mm来执行相同的操作。

  第一个输入矩阵的列大小应等于第二个输入矩阵的行大小对于不是矩阵或大于2维的张量,torch.mm不起作用,我们可以使用torch.mul进行逐个元素的乘法‘@运算符执行与torch.mm相同的操作3.torch.cat

  通过使用dim参数并将其设置为1,我们可以水平连接2个张量。 默认设置为0,这将导致垂直串联。

  使用dim = 1来水平连接张量可以连接任意数量的张量,但是,请确保张量在串联方向上的大小应相同4.torch.mul

  我们可以看到逐元素乘法适用于任何维度的张量。使用*运算符或者使用a.mul(b),其中a和b为输入张量,也可以实现torch.mul的功能。

  torch.mul类似于两个向量之间的点积。“ *”运算符或a.mul(b)也执行与torch.mm相同的操作输入张量应满足广播条件5.torch.inverse

  这里,我们通过使用randn函数来建立了一个由随机数组成的4x4张量。torch.inverse可计算x的逆。Inv(x) @ X 则会返回一个单位矩阵。

  只有在输入张量的各个维度的元素数量相同时才可以正常使用torch.inversetorch.inverse 同样适用于3维张量。但是张量在各个方向上的维度需要相同或者为方阵张量。总结

  什么是深度学习?Pytorch是啥?什么是重要的张量运算?如何实现执行上述张量运算的核心功能?使用这些功能时要注意的几点是什么?雷锋字幕组是一个由 AI 爱好者组成的翻译团队,汇聚五百多位志愿者的力量,分享最新的海外AI资讯,交流关于人工智能技术领域的行业变革与技术创新的见解。

  团队成员有大数据专家、算法工程师、图像处理工程师、产品经理、产品运营、IT咨询人、在校师生;志愿者们来自IBM、AVL、Adobe、阿里、百度等知名企业,北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!