《神经网络与PyTorch实战》——3使用PyTorch进行科学计算

举报
华章计算机 发表于 2019/06/05 19:50:12 2019/06/05
【摘要】 本书摘自《神经网络与PyTorch实战》——书中第3章,第3.1.1节,作者是肖智清。

第 3 章使用PyTorch进行科学计算

  本章开始介绍PyTorch。我们已经知道,PyTorch可以用来搭建人工神经网络。但是,本章不会直接介绍人工神经网络的搭建,而是学习一些预备知识。本章将介绍PyTorch的基本数据类型——张量,并利用张量进行科学计算。

3.1 初识张量

3.1.1 张量的数学定义

  本小节将从数学角度介绍什么是张量(tensor)。在高中数学和高等数学中,我们已经学习过向量和矩阵的概念。标量可以看作零维张量,向量可以看作一维张量,矩阵可以看作二维张量。继续扩展数据的维度,可以得到更高维度的张量(见图3-1)。因此,张量又称为多维数组(multi dimension array)。

image.png

图3-1 张量的例子

  给定一个张量数据,我们可以确定它的维度(dimension)、大小(size)和元素个数。对于维张量,它的大小可以用个元素的元组来表示。例如在图3-1中,张量是零维张量,它的大小为有0个条目的元组 (),元素个数为1。张量是一维张量,它的大小是有1个条目的元组 (3,),元素个数为3。张量是二维张量,它的大小是有2个条目的元组 (3, 3),元素个数为9。张量是三维张量,它的大小是有3个条目的元组 (3, 3, 3),元素个数为27。

注意:张量的概念在PyTorch下和其他语境下略有不同。本书遵循PyTorch的概念,定义张量、张量的维度、大小和元素个数。在数学和物理学中,张量并不是这么定义的。PyTorch中张量的维度在其他语境中可能被称为阶(rank)或维度大小(dimension size),PyTorch中张量的大小在其他语境中可能被称为维度(dimensions)或形状(shape)。

  值得一提的是,只有维度、大小、元素个数、各元素都相同的两个张量,才是两个相同的张量。对于某个张量,若其大小中有个条目是1,那么这个1也不可以省略,也应该算进张量的维度里。例如,大小为 (3, 1) 的二维张量和大小为 (3,) 的张量虽然有着相同的元素个数,但是它们的维度不同、大小不同,所以不可能是相同的张量。

注意:一维张量的大小具有的形式,而不是或的形式。一维张量和向量同构(isomorphism),但严格意义上并不是向量,也没有所谓“行张量”或是“列张量”这样的说法。二维张量和矩阵同构。虽然向量可以看作特殊的矩阵,但是一维张量都不是二维张量。同理,零维张量也不是一维张量。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。