【深入浅出pytorch-task1】-张量和n维数组的区别?

深入浅出pytorch

    • 张量
      • 疑问:有n维数组就可以表示了,为什么pytorch要专门定义一个tensor张量呢?
        • 物理上区分数组和张量(辅助理解)
        • 功能上区分数组和张量
      • 总结一下

今天的task是关于pytorch环境的配置以及 基础知识学习

环境已经在之前配置好啦,今天来复习一遍pytorch的基础知识

在学习过程中,主要是对张量这边有点小疑问,索性来做一下记录

张量

张量是pytorch的基本数据类型,这就跟series和dataframe是pandas的基本数据类型一样,我们把数据放到张量tensor上,通过tensor的承载功能,带着我们的数据进入各种各样的网络中进行运算,通过理解tensor,我们能更加深入理解神经网络运算的本质

疑问:有n维数组就可以表示了,为什么pytorch要专门定义一个tensor张量呢?

我简单查阅了一下资料,张量这个词并不是由pytorch造出来的,张量是广义相对论的数学基础,在pytorch中,张量可以表示为多维数组

例如,一张图片的长和宽,视为两个维度,它的rgb,视为第三维度,那么假如我们有很多张图片呢?这时候图片的数量就可以视为第四维度啦,显然张量能够用于表示更多的维度,其本质上是方便计算

物理上区分数组和张量(辅助理解)

看了网络上一些文章的理解,总结一下就是,多维数组仅仅是一堆数字,是为了方便计算,使用张量

可以说,多维数组只是张量的表示形式,我们描述张量时,就可以用多维数组来解释,多维数组能够让我们更好的理解张量,但是并不能完全代表张量

更通俗一些的理解就是,我们知道三维数组可以表示为一个空间,那么四维数组叫什么呢,以上,不如给它叫做张量,这样就好比我们在描述空间的时候,我们不会叫它“这个三维有点大”。

但是上述理解不是说空间是三维数组的名字,相反,三维数组只是空间的一个表述而已,在现实中,空间是真实的,我们仅仅在数学中对空间进行运算时,才引入三维数组对空间进行表示。同理,tensor也是对物理上多维空间的一个表示,我们可以用张量来表示一个三维以上的东西(暂时不知道是不是叫作空间)

功能上区分数组和张量

既然n维数组可以表示n维张量,那么为什么我们不用n维数组,而是要用tensor呢,这里有一个功能上差别的解释,在pytorch里面,tensor可以很方便的丢到GPU进行加速运算,还可以进行自动求导,而数组要丢到GPU的话,还需要使用cuda,比较麻烦,tensor是已经封装好的数据类型,所以非常方便计算

总结一下

tensor的本质是在pytorch中方便计算高维数据,定义一个专门用于计算和求导并且适用GPU的数据类型从而应用于神经网络方面的计算。

以上是我看过一些文章后的总结以及一些理解,如果有不对的地方请及时指正,对于入门阶段的理解至关重要。

你可能感兴趣的:(pytorch,学习)