【动手学深度学习】深入浅出深度学习之PyTorch基础

目录

一、实验目的

二、实验准备

三、实验内容

1. 数据操作

2. 数据预处理

3. 线性代数

4. 微积分

5. 自动微分

四、实验心得


一、实验目的

(1)正确理解深度学习所需的数学知识;

(2)学习一些关于数据的实用技能,包括存储、操作和预处理数据;

(3)能够完成各种数据操作,存储和操作数据;

(4)PyTorch基础,完成《动⼿学深度学习》预备知识2.1-2.5节的课后练习。


二、实验准备

(1)根据GPU安装pytorch版本实现GPU运行实验代码;

(2)配置环境用来运行 Python、Jupyter Notebook和相关库等相关库。


三、实验内容

启动jupyter notebook,使用新增的pytorch环境新建ipynb文件,为了检查环境配置是否合理,输入import torch以及torch.cuda.is_available() ,若返回TRUE则说明实验环境配置正确,若返回False但可以正确导入torch则说明pytorch配置成功,但实验运行是在CPU进行的,结果如下:

图1-1


1. 数据操作

(1)使用jupyter notebook新增的pytorch环境新建ipynb文件,完成基本数据操作的实验代码与练习结果如下:

图1-2

图1-3

图1-4

图1-5

练习1:

图1-6


2. 数据预处理

(1)完成数据预处理的实验代码及练习内容如下:

图1-7

图1-8

练习2:

图1-9

图1-10


3. 线性代数

(1)完成线性代数的实验代码及练习结果如下:

图1-11

图1-12

图1-13

图1-14

练习3:

图1-15

图1-16


4. 微积分

(1)完成微积分的实验代码及练习结果如下:

图1-17

练习4:

图1-18

图1-19


5. 自动微分

(1)完成自动微分的实验代码及练习结果如下:

图1-20

练习5:

图1-21

图1-22

图1-23


四、实验心得

通过这次实验,我对深度学习的数据处理知识有了更深入的了解。尽管在安装PyTorch的过程中遇到了一些问题(由于conda默认安装了CPU版本的PyTorch),但在删除numpy库后成功地安装了GPU版本的PyTorch。并且我对以下内容有了更深刻的理解:

1.张量(n维数组)是深度学习存储和操作数据的主要接口。它提供了广泛的功能,包括基本数学运算、广播、索引、切片,还可以实现内存节省和转换其他Python对象。

2.pandas是Python中常用的数据分析工具之一,它与张量兼容,为数据处理提供了便利。

3.在处理缺失数据时,pandas提供了多种方法,根据情况可以选择插值法或删除法进行处理。

4.标量、向量、矩阵和张量是线性代数中的基本数学对象。

5.向量是标量的推广,矩阵是向量的推广。

6.标量、向量、矩阵和张量分别具有零、一、二和任意数量的轴。

7.通过使用sum和mean等操作,可以沿指定的轴降低张量的维度。

8.两个矩阵的按元素乘法被称为Hadamard积,与矩阵乘法不同。

9.在深度学习中,常常使用范数,如L1范数、L2范数和Frobenius范数。

10.微分和积分是微积分的两个分支,其中微分在深度学习的优化问题中得到了广泛应用。

11.导数可以被理解为函数相对于其变量的瞬时变化率,同时是函数曲线的切线斜率。

12.梯度是一个向量,其分量是多变量函数相对于所有变量的偏导数。

13.链式法则可以用于求解复合函数的导数。

14.深度学习框架能够自动计算导数:首先将梯度附加到需要计算偏导数的变量上,然后记录目标值的计算过程,执行反向传播函数,并获得相应的梯度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/483516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

逆向爬虫技术的进阶应用与实战技巧

前言 在互联网的海洋中,数据是无价的财富。爬虫技术作为获取这些数据的重要手段,一直备受关注。然而,随着网站反爬虫机制的日益完善,简单的爬虫程序已经很难满足我们的需求。因此,掌握爬虫逆向技术,突破反爬…

智慧农业引领未来:数字乡村推动农业现代化与智能化

随着信息技术的飞速发展,数字乡村已成为推动农业现代化与智能化的重要力量。智慧农业作为数字乡村的核心组成部分,正以其独特的优势引领未来农业的发展方向。本文将从智慧农业的内涵、发展现状、面临的挑战以及未来展望等方面,探讨数字乡村如…

初始Java篇(JavaSE基础语法)(2)(逻辑控制)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 逻辑控制 顺序结构 分支结构 if语句 switch 语句 循环结构 while 循环 for 循环 do while 循环 输入输出 输出到控制台 从键盘输入 …

登录与注册功能(简单版)(4)注册时使用Session校验图片验证码

目录 1、需求及实现流程分析 2、实现 1)新建register.jsp 2)导入CheckCodeUtil工具类 3)新建CheckCodeServlet 4)修改RegisterServlet 5)启动访问 1、需求及实现流程分析 验证码的作用:防止机器自动…

【Leetcode】2549. 统计桌面上的不同数字

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个正整数 n n n ,开始时,它放在桌面上。在 1 0 9 10^9 109 天内,每天都要执行下述步骤: 对于出现在桌面上的每个数字 x &am…

The plain HTTP request was sent to HTTPS port

异常信息 原因 错误信息 “The plain HTTP request was sent to HTTPS port” 表明客户端尝试使用未加密的HTTP协议发送请求到一个配置为使用加密的HTTPS协议的端口。 解决方案 要解决这个问题,需要确保使用正确的协议和端口号进行请求。应该使用的HTTPS前缀。例如…

Naive UI:一个 Vue 3 组件库,比较完整,主题可调,使用 TypeScript,快有点意思。

在当今的前端开发领域,Vue 3已成为中后台应用的首选框架。为了满足开发者的需求,各种组件库如雨后春笋般涌现。其中,Naive UI以其独特的优势,成为了Vue 3开发者的得力助手。本文将深入探讨Naive UI的特性、优势以及如何使用它来提…

【Auth Proxy】为你的 Web 服务上把锁

Auth Proxy 一个极简的用于 Web 服务鉴权的反向代理服务 Demo(密码为:whoami):https://auth-proxy.wengcx.top/ 极其简约的 UI对你的真实服务无任何侵入性支持容器部署,Docker Image 优化到不能再小(不到…

DevEco Profiler性能调优工具简介

一、概述 应用或服务运行期间可能出现响应速度慢、动画播放不流畅、列表拖动卡顿、应用崩溃或耗电量过高、发烫、交互延迟等现象,这些现象表明应用或服务可能存在性能问题。造成性能问题的原因可能是业务逻辑、应用代码对系统API的误用、对ArkTS对象的不合理持有导致内存泄露…

智慧公厕:跨界融合,打造智慧城市新名片

随着城市化进程的不断加快,公共厕所建设成为一个亟待解决的问题。传统的公厕存在着管理繁琐、卫生差、服务不到位等一系列问题,与城市发展的节奏不协调。为此,推进新型智慧公厕建设成为了一个重要的解决方案。智慧公厕的建设需要推进技术融合…

【创作纪念日】1024回忆录

不知不觉中,从创作第一篇文章到现在,已经1024天了,两年多的时间里,已经从硕士到博士了,1024,对于程序员来说,是个特别的数字吧,在此回忆与记录一下这些美好的经历吧。 缘起 很早以前…

YOLOv8-ROS-noetic+USB-CAM目标检测

环境介绍 Ubuntu20.04 Ros1-noetic Anaconda-yolov8虚拟环境 本文假设ROS和anaconda虚拟环境都已经配备,如果不知道怎么配备可以参考: https://blog.csdn.net/weixin_45231460/article/details/132906916 创建工作空间 mkdir -p ~/catkin_ws/srccd ~/ca…

Linux内核-网络代码-关键的数据结构(struct sk_buff、struct net_device)

1、struct sk_buff结构体解析 struct sk_buff:一个封包就存储在这里。所有网络分层都会使用这个结构来储存其报头、有关用户数据的信息(有效载荷),以及用来协调其工作的其他内部信息。 struct net_device:在Linux内核…

力扣-python-合并两个有序链表

题解: 这段代码是用于合并两个有序列表的递归函数,函数的输入是两个链表l1和l2,返回合并后的有序列表。具体操作是比较两个链表的头结点,将较小的头结点作为合并后的链表的头结点,并递归的将剩余的部分与另一个链表进…

unity编辑器扩展高级用法

在PropertyDrawer中,您不能使用来自GUILayout或EditorGUILayout的自动布局API,而只能使用来自GUI和EditorGUI的绝对Rect API始终传递相应的起始位置和维度。 你需要 计算显示嵌套内容所需的总高度将此高度添加到public override float GetPropertyHeig…

深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! Doris是一款高性能、开源的实时分析数据仓库,旨在为用户提供毫秒级查询响应、高并发、高可用以及易于扩展的OLAP解决方…

P1563 [NOIP2016 提高组] 玩具谜题

题目传送门 这道题实在是一道水题 话不多说&#xff0c;上代码 #include<iostream> #include<cstring> using namespace std; struct a{int io;//in朝里 out朝外 小人的朝向 string name;//小人的名字 int number;//角色编号 }a[100000]; int main(){int n, m…

连续子数组的最大和

问题描述&#xff1a; 输入一个整型数组&#xff0c;数组里有正数也有负数。求连续子数组中的最大和为多少。 举例&#xff1a; 数组&#xff1a;arry{1 , 2 &#xff0c;-5 , 4 , 1 &#xff0c;-2} 输出&#xff1a;5&#xff0c;数组中连续的位置相加最大值为5, 41 方法…

yolov8目标检测数据集制作——make sense

背景 在前几天我进行了录制视频以准备足够多的数据集&#xff0c;同时使用利用python自定义间隔帧数获取视频转存为图片&#xff0c;所以今天我准备对我要训练的数据集进行标注。我要做的是一个基于yolo的检测项目&#xff0c;在搜索资料后得知大家多是用labelme或者make sens…

文心一言 VS 讯飞星火 VS chatgpt (221)-- 算法导论16.3 3题

三、如下所示&#xff0c;8个字符对应的出现频率是斐波那契数列的前8个数&#xff0c;此频率集合的赫夫曼编码是怎样的? a:1 b:1 c:2 d:3 e:5 f:8 g:13 h:21 你能否推广你的结论&#xff0c;求频率集为前 n 个斐波那契数的最优前缀码? 文心一言&#xff1a; 首先&#xff0…