输入输出维度

在本节的博客中将整理对于输入输出维度的相关认识,总结如下:

在之前发布的博客《PyTorch深度学习实践——反向传播》中谈到了自己对于一个模型输入的维度认识:不同的维度类似于不同的属性,从不同的方向上来描述一个模型,使得模型愈加的丰满具体。

但这种理解过于抽象,没有实际的理论依据,在机器学习中如果没有引入向量和矩阵的相关概念就来讨论维度也显得非常不严谨而且让人容易混淆,因此在使用PyTorch实现线性回归时,输入维度中引入了tensor张量,使得自己出现了很多疑问,在经过宝藏学长的耐心讲解后,对于维度这个概念有了重新的理解,以下从四个方面来阐述什么是维度:①认知②空间③数学④机器学习

①认知上:从我们的认知上而言,维度不妨去这样理解:不同的维度就像一个物体的不同属性,这些不同的属性从不同的方向上来描述一个物体,使得物体愈加的丰满具体。因此维度的增加使得我们现实中的物体由抽象变为了具体

②空间上:在空间中,我们知道,0维代表一个点,1维代表一条线,2维代表一个面,3维代表一个体....0维的点是一个无穷小的点,没有方向也没有大小,无数0维的点便构成了1维的线,换言之,1维的线的截面便是0维的点,同理无数1维度的线变构成了2维的面,2维的面的截面便是1维的线,无数2维的面叠加变形成了3维的体,3维的体的截面是2维的面....我们无法想象出四维的形状但我们也能推出,4维由无数3维的体叠加,而每一个截面也是3维的体

③数学上:从空间上我们知道了0维,1维,2维,3维的基本概念,我们也能在脑子中想象出由0维到3维的过程画面,但是数学上而言又是怎么体现出维度的呢?

假定一个方程f(x)=x,显而易见这是一条直线,那么为什么会是一条直线呢?因为自变量x只有一个,换句话来讲,也就是只从x这一空间方向上来构成这个方程,同理当f(x,y)=x+y,我们可以看做从两个空间方向上来构成了这一个函数,因此形成的是一个面,而f(x,y,z)=x+y+z,由于从三个方向上来构成了这个函数,因此是一个体,在这些例子中,当k=f(x)时,对于因变量k,因变量形状的构成依赖于自变量的个数,而这种关系可以通过数学上的几何坐标形式来体现,也就是当自变量的个数增多,几何空间轴变多,k变量代表物体实现了由0维到多维的跨度,而这反应了变量维度和空间维度的区别

在线性代数中我们学习过矩阵,矩阵的设计是用来解决多元方程问题,我们举出一个例子:

假定一个方程f(x,y,z)=k,这是一个三维体,因变量k由x,y,z三个变量关系构成,当因变量k值确定,代表的三维体的某点确定,当我们从x,y,z三个方向分别确定自变量的值时,意味着我们实际上是在通过三个不同方向确定各自位置来找寻这一个由自变量到因变量唯一对应关系,那么如何实现这种确定关系呢?我们需要通过三个方程联立求得这种关系,也就是利用三种方程的输入到输出关系来得到最终对应关系

假定这个方程这样成立了这样三种关系

④在机器学习中:在这个矩阵中,因为是一个矩阵(面)所以也有2个维度,在机器学习中第0维度代表样本维度,第一维度代表变量维度(特征维),根据数学中的理解,这个变量维度又分为自变量的维度和因变量的维度,在这个例子中我们可以知道,自变量有三个维度(三个输入方向)因变量有一个维度(一个输出方向),样本维度有三,也就三种不同的方程来体现这种输入到输出的关系,对应tensor张量是这样来进行描述的:

表明tenssor张量中构建出了3行4列的矩阵

再与手动实现的x_data,y_data的输入作比较:

我们可以看出,对于手动实现的输入维度,我们这样假定数据其实是存在问题的,一维数组无法让我们知晓矩阵的行列,因此x_data,y_data可以看作一个输入维度,一个输入维度,三个样本,同样也能看作,一个输入样本,三个输入和输出的维度,而对于pytorch引入的tensor张量我们便不存在这个问题,因此一位数组我们一般不讨论维度(一维数组看作矩阵既能当作行向量也能看作列向量),而二维数组引入了行列下表,便可以当作二维矩阵看待

值得注意的一点,特征维分为了自变量特征维和因变量特征维,将特征维度分成两个对应的二维矩阵再使得数据的输入与输出维度对应更易于理解与处理。

以上总结是为了是自己能对之前的疑问进行合理的解释,但由于自己刚接触深度学习并且还未学习过线代,导致部分概念加入了自己的揣测,在更深层次学习后会对博文不正确地方进行修改,有错误的地方请大佬们理解与指正,感激不尽!

PyTorch深度学习实践——对维度的认识相关推荐

  1. PyTorch深度学习实践

    根据学习情况随时更新. 2020.08.14更新完成. 参考课程-刘二大人<PyTorch深度学习实践> 文章目录 (一)课程概述 (二)线性模型 (三)梯度下降算法 (四)反向传播 (五 ...

  2. 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)

    从有代码的课程开始讨论 [Pytorch深度学习实践]B站up刘二大人之LinearModel -代码理解与实现(1/9) [Pytorch深度学习实践]B站up刘二大人之 Gradient Desc ...

  3. 《PyTorch 深度学习实践》第10讲 卷积神经网络(基础篇)

    文章目录 1 卷积层 1.1 torch.nn.Conv2d相关参数 1.2 填充:padding 1.3 步长:stride 2 最大池化层 3 手写数字识别 该专栏内容为对该视频的学习记录:[&l ...

  4. 《PyTorch深度学习实践》 课堂笔记 Lesson7 神经网络多维特征输入的原理推导与实现

    文章目录 1.为什么使用多维的特征输入 2. 多维特征向量输入推导 3.实现过程 3.1源代码 3.2训练结果 写在最后 1.为什么使用多维的特征输入 对于现实世界来说,影响一个事物发展的因素有很多种 ...

  5. PyTorch深度学习实践概论笔记9-SoftMax分类器

    上一讲PyTorch深度学习实践概论笔记8-加载数据集中,主要介绍了Dataset 和 DataLoader是加载数据的两个工具类.这一讲介绍多分类问题如何解决,一般会用到SoftMax分类器. 0 ...

  6. 《PyTorch深度学习实践》

    [<PyTorch深度学习实践>完结合集] https://www.bilibili.com/video/BV1Y7411d7Ys/?share_source=copy_web&v ...

  7. 【刘二大人】PyTorch深度学习实践

    文章目录 一.overview 1 机器学习 二.Linear_Model(线性模型) 1 例子引入 三.Gradient_Descent(梯度下降法) 1 梯度下降 2 梯度下降与随机梯度下降(SG ...

  8. 【PyTorch】PyTorch深度学习实践|视频学习笔记|P6-P9

    PyTorch深度学习实践 逻辑斯蒂回归及实现 背景与概念 基于分类问题中属性是类别性的,所以不能采取基于序数的线性回归模型,而提出了新的分类模型--逻辑斯蒂回归模型,输出每个样本在各个预测值上的概率 ...

  9. 【PyTorch深度学习实践 | 刘二大人】B站视频教程笔记

    资料 [参考:<PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili] [参考 分类专栏:PyTorch 深度学习实践_错错莫的博客-CSDN博客] 全[参考 分类专栏:PyT ...

最新文章

  1. IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐
  2. vscode怎么安装python包_vscode如何安装python
  3. nasa电池数据集_文章分享—模型与滤波算法结合的锂电池剩余寿命预测方法
  4. docker使用阿里云镜像仓库
  5. 网络-HTTP-Cookie
  6. 访问某个xml的url并将网页转成字节流
  7. Java 8 Base64 编码解码
  8. 如何使用Java代码将GBK编码格式的工程转换为UTF-8编码格式的工程
  9. 软件测试 | 状态迁移法
  10. 健身管理系统一站式智能化健身管理体验
  11. 电商后台管理系统分享
  12. Oracle基本知识点总结
  13. ERP系统操作难吗?
  14. 一切过往皆序章,一切未来皆可期——2021给自己定个小目标:读完52本书
  15. 《计算机工程》投稿经验分享
  16. 如何用树莓派借用计算机的显示屏,树莓派4寸A显示屏使用教程
  17. 抖音直播流量怎么来?四大渠道告诉你
  18. PHP 魔术常量,__LINE__,__FILE__,__DIR__等等8个常用魔术常量
  19. android 小球曲线运动,如图所示,将一小球向斜向上抛出,小球做复杂的曲线运动.实际分析处理...
  20. 网络模型——OSI模型与TCP/IP模型

热门文章

  1. 内网环境搭建docker具体步骤
  2. TypeScript 初体验:开发工具准备
  3. 这个屏下指纹解锁,为什么这么快?
  4. JAVA学习 on Mac DAY 2 转义字符
  5. UE4 贴图导出-将T3D格式导出为TGA
  6. 程序员,知道你为什么面试90%不通过的原因吗?
  7. 笔记——zgrep命令(2)
  8. 电网窃电用户数据检测与识别数据集
  9. 英国商业经济金融发展史
  10. 基于idea使用技巧