pytorch入门2--数据预处理、线性代数的矩阵实现、求导

这篇具有很好参考价值的文章主要介绍了pytorch入门2--数据预处理、线性代数的矩阵实现、求导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据预处理是指将原始数据读取进来使得能用机器学习的方法进行处理。
首先介绍csv文件:
CSV 代表逗号分隔值(comma-separated values),CSV 文件就是使用逗号分隔数据的文本文件。
一个 CSV 文件包含一行或多行数据,每一行数据代表一个记录。每个记录包含一个或多个数值,使用逗号进行分隔。另外,一个 CSV 文件中的所有数据行都包含相同数量的值。
我们通常使用 CSV 文件存储表格数据,很多软件都支持这种文件格式,例如 Microsoft Excel(新建工作簿保存为.csv即可) 和 Google Spreadsheet。
python可以使用内置的csv模块读取csv文件。
一、数据预处理
1.首先要找到jupyter notebook创建地文件存放地位置。
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵

找到该路径。
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
可以看出jupyter与保存地本地文件夹一致。
2.在jupyter notebook里的DataSolving中编写代码:
pytorch 矩阵,线性代数,pytorch,矩阵
说明:(1)os.makedirs()用于递归地创建目录,exist_ok=True指定后如果该目录已存在也不报错;
(2)os.path.join()用于组合一个或多个路径名,os.path.join(‘…’,‘data’,‘house_tiny.csv’)的返回值为"…\data\house_tiny.cssv。
程序运行之后:
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
本地打开文件:
pytorch 矩阵,线性代数,pytorch,矩阵
3.也可读取.csv文件,使用pandas。
pytorch 矩阵,线性代数,pytorch,矩阵
4.可以使用fillna()对.csv文件中的空值(不是0,而是缺失)进行填充。
pytorch 矩阵,线性代数,pytorch,矩阵
可以看到NumRoom那一列的空值被填上了均值(data.mean()表示一列的空值处填充该列原本不为空的元素的均值),而Alley那一列的空值没有被填充,因为该列是字符串,没有均值。
对于不是数值的,可以将空值是为一个类别,处理如下:
pytorch 矩阵,线性代数,pytorch,矩阵
5.将从.csv文件中读取的数据转为torch张量。
pytorch 矩阵,线性代数,pytorch,矩阵
二、矩阵
1.创建矩阵和矩阵的转置。
pytorch 矩阵,线性代数,pytorch,矩阵
2.矩阵与向量的乘积torch.mv([矩阵名],[向量名])
pytorch 矩阵,线性代数,pytorch,矩阵
3.矩阵与矩阵的运算torch.mm([矩阵名],[矩阵名])
pytorch 矩阵,线性代数,pytorch,矩阵
4.矩阵的范数
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
5.矩阵计算(求导)
基于高数的知识,y=3x^2+2x,y’=6x+2,当x=2时,y’=14。该过程用pytorch实现为:
pytorch 矩阵,线性代数,pytorch,矩阵
说明:(1)创建一个张量x,并设置其requires_grad参数为True,程序将会追踪所有对于该张量的操作,当完成计算后通过调用.backward(),自动计算所有的梯度(梯度相当于导数,即方向导数的最大值),这个张量所有的梯度将会自动累积到grad属性。这里x.grad是y关于x的导数。
(2)创建了一个关于x的函数y,torch.pow(x,2)相当于x2即x的平方。
(3)y.backward()是利用反向传播机制。
pytorch 矩阵,线性代数,pytorch,矩阵
三种不同的求导情况:
(1)张量对标量求导:
pytorch 矩阵,线性代数,pytorch,矩阵
可以这样理解:
pytorch 矩阵,线性代数,pytorch,矩阵
(2)标量对张量求导:
pytorch 矩阵,线性代数,pytorch,矩阵
看下面的例子:
pytorch 矩阵,线性代数,pytorch,矩阵
设x=[x1,x2,x3],则z=x1
2+x22+x32+6,则
pytorch 矩阵,线性代数,pytorch,矩阵
标量对向量求导本质上是函数对各个自变量求导,这里只是把各个自变量看成一个向量。
(3)张量对张量求导
pytorch 矩阵,线性代数,pytorch,矩阵
理解:
现有如下问题,已知
pytorch 矩阵,线性代数,pytorch,矩阵
其中函数f(y1,y2,y3)的具体定义未知,现在求:
pytorch 矩阵,线性代数,pytorch,矩阵
根据多元函数求导法则:
pytorch 矩阵,线性代数,pytorch,矩阵
上面3个等式可以写成矩阵相乘的形式:
pytorch 矩阵,线性代数,pytorch,矩阵
叫做雅可比式,雅可比式可以根据已知条件求出,哪怕不知道f(y1,y2,y3)的具体形式。
pytorch 矩阵,线性代数,pytorch,矩阵
上面的张量是由pytorch的backward函数的gradient参数提供。
用pytorch实现:
pytorch 矩阵,线性代数,pytorch,矩阵
pytorch 矩阵,线性代数,pytorch,矩阵
和代码运行结果一样。
补充:
pytorch 矩阵,线性代数,pytorch,矩阵文章来源地址https://www.toymoban.com/news/detail-765662.html

到了这里,关于pytorch入门2--数据预处理、线性代数的矩阵实现、求导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Pytorch和Tensoflow对比学习第三周--Day 19-20: 数据加载和预处理

    这两天的学习重点是掌握在PyTorch和TensorFlow中进行数据加载和预处理的方法。正确的数据处理是训练有效模型的关键步骤。 数据加载和预处理: 学习了如何使用PyTorch的DataLoader和Dataset类以及TensorFlow的数据API来加载和预处理数据。 理解了数据标准化、转换和批处理的重要性。

    2024年01月20日
    浏览(10)
  • 【3D 图像分割】基于 Pytorch 的 3D 图像分割6(数据预处理之LIDC-IDRI 标签 xml 标签转储及标记次数统计 )

    【3D 图像分割】基于 Pytorch 的 3D 图像分割6(数据预处理之LIDC-IDRI 标签 xml 标签转储及标记次数统计 )

    由于之前哔站作者整理的 LUNA16 数据处理方式过于的繁琐,于是,本文就对 LUNA16 数据做一个新的整理,最终得到的数据和形式是差不多的。但是,主要不同的是代码逻辑比较的简单,便于理解。 对于 LUNA16 数据集的学习,可以去参考这里:【3D 图像分类】基于 Pytorch 的 3D 立

    2024年02月04日
    浏览(12)
  • Pytorch学习笔记(3):图像的预处理(transforms)

    Pytorch学习笔记(3):图像的预处理(transforms)

      目录  一、torchvision:计算机视觉工具包  二、transforms的运行机制 (1)torchvision.transforms:常用的图像预处理方法 (2)transforms运行原理   三、数据标准化 transforms.Normalize() 四、数据增强  4.1 transforms—数据裁剪 (1)transforms.CentorCrop (2)transforms.RandomCrop (3)RandomResiz

    2023年04月13日
    浏览(13)
  • 使用 Monai 和 PyTorch 预处理 3D Volumes以进行肿瘤分割

    使用 Monai 和 PyTorch 预处理 3D Volumes以进行肿瘤分割

    针对在使用传统图像处理工具时可能遇到的困难,深度学习已成为医疗保健领域的主要解决方案。 因为医学图像比标准图像更难处理(高对比度、人体的广泛变化……)深度学习用于分类、对象检测,尤其是分割任务。 在分割方面,深度学习用于分割人体器官,如肝脏、肺

    2023年04月11日
    浏览(8)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(10)
  • 自然语言处理入门:使用Python和NLTK进行文本预处理

    文章标题:自然语言处理入门:使用Python和NLTK进行文本预处理 简介 自然语言处理(NLP)是人工智能领域的一个重要分支,它致力于使计算机能够理解、分析和生成人类语言。本文将介绍如何使用Python编程语言和NLTK(Natural Language Toolkit)库进行文本预处理,为后续的文本分析

    2024年02月19日
    浏览(9)
  • 数据采集与预处理01: 项目1 数据采集与预处理准备

    数据采集与预处理01: 项目1 数据采集与预处理准备

    数据采集:足够的数据量是企业大数据战略建设的基础,因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环,其后的分析挖掘都建立在数据采集的基础上。大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,

    2024年01月25日
    浏览(15)
  • 数据预处理matlab matlab数据的获取、预处理、统计、可视化、降维

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    浏览(26)
  • 大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集

    大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集

    目录 大数据概念: 1.数据采集过程中会采集哪些类型的数据? 2.非结构化数据采集的特点是什么? 3.请阐述传统的数据采集与大数据采集的区别? ​​​​​​​ ​​​​​​​4.大数据采集的数据源有哪些?针对不同的数据源,我们可以采用哪些不同的方法和工具? 数据

    2024年01月25日
    浏览(12)
  • C语言从入门到精通第14天(C语言预处理)

    C语言从入门到精通第14天(C语言预处理)

    在前面我们已经对C语言的基础语法知识有所了解了,每次进行程序的编写之前,我们会使用 #include 命令去导入我们的库函数,而这种以 # 号开头的命令称为 预处理命令。 C语言提供了多种预处理功能,如 宏定义、文件包含、条件编译 等。合理地使用预处理功能编写地程序便

    2023年04月26日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包