动手学深度学习一:环境安装与数据学习

news2024/9/22 20:30:09

2024,重新开始深度学习。
第一步:李沐动手学深度学习
课程网址:https://courses.d2l.ai/zh-v2/
包含教材和视频网址链接

Jupyter notebook安装

目前在本地先使用cpu版本pytorch,我的本地已经安装好conda,跟着教材创建虚拟环境并下载d2l工具包

创建虚拟环境

conda create --name d2l python=3.9 -y
conda activate d2l

配置pip清华源,否则接下来安装torch容易超时报错

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install torch==1.12.0
pip install torchvision==0.13.0
mkdir d2l-zh && cd d2l-zh

解压工具包

unzip d2l-zh.zip && rm d2l-zh.zip
cd pytorch

将虚拟环境注入jupyter notebook

conda install ipykernel
python -m ipykernel install --user --name d2l --display-name d2l

运行

jupyter notebook

测试环境与学习数据操作

1.torch张量的广播机制
疑问点:这个操作有什么好处?感觉容易引入很难被发现的问题
为了避免张量广播机制引发的错误,可以采取以下几种方法:

  1. 显式地调整张量的形状:可以使用torch.reshape()函数或者tensor.view()方法来显式地调整张量的形状,使其符合广播规则。通过调整张量的形状,可以确保在进行元素级操作时,张量的维度是兼容的。
import torch

tensor_1 = torch.ones(2, 3, 4)  # 2*3*4
tensor_2 = torch.ones(3, 1)  # 3*1

# 显式地调整张量的形状
tensor_2_expanded = tensor_2.expand(3, 4)  # 扩展为3*4的张量

# 进行元素级操作
tensor = tensor_1 + tensor_2_expanded

print(tensor)
  1. 使用torch.unsqueeze()函数:可以使用torch.unsqueeze()函数在指定的维度上增加一个维度,以满足广播规则。
import torch

tensor_1 = torch.ones(2, 3, 4)  # 2*3*4
tensor_2 = torch.ones(3, 1)  # 3*1

# 在第二个维度上增加一个维度
tensor_2_expanded = torch.unsqueeze(tensor_2, dim=0)  # 扩展为1*3*1的张量

# 进行元素级操作
tensor = tensor_1 + tensor_2_expanded

print(tensor)
  1. 使用torch.broadcast_to()函数:可以使用torch.broadcast_to()函数将张量广播到指定的形状,以满足广播规则。
import torch

tensor_1 = torch.ones(2, 3, 4)  # 2*3*4
tensor_2 = torch.ones(3, 1)  # 3*1

# 将tensor_2广播到2*3*4的形状
tensor_2_broadcasted = torch.broadcast_to(tensor_2, (2, 3, 4))

# 进行元素级操作
tensor = tensor_1 + tensor_2_broadcasted

print(tensor)

2.数据处理pandas的操作-处理缺失数据
pandas加载csv
将非缺失值的均值作为缺失值
isna输出缺失值矩阵
在这里插入图片描述
使用sum统计每一列的缺失值个数
在这里插入图片描述
使用idxmax得到最大值的索引
在这里插入图片描述
使用drop删除含缺失值最多的列
在这里插入图片描述
参考博客:
https://blog.csdn.net/qq_41084438/article/details/102862300
https://blog.csdn.net/wxyczhyza/article/details/120821510
https://blog.csdn.net/2301_76381099/article/details/129228928

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是自动化测试?为啥要学自动化测试?

什么是自动化测试,接着对常用的自动化测试框架进行了对比分析,最后,介绍了如果将自动化测试框架Cypress运用在项目中。 一、自动化测试概述 为了保障软件质量,并减少重复性的测试工作,自动化测试已经被广泛运用。在开…

【C++ Primer Plus学习记录】switch语句

假设要创建一个屏幕菜单,要求用户从5个选项中选择一个,例如,便宜、适中、昂贵、奢侈、过度。虽然可以扩展if else if else序列来处理这5种情况,但是C的switch语句能够更容易地从大型列表中进行选择。 下面是switch语句的通用格式…

清风数学建模-灰色预测

内容:灰色预测 概念:灰色预测是对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势:如图随机性被削弱,变的有规律。 原理介绍…

[C#]C# OpenVINO部署yolov8实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们…

后缀自动机超详细

后缀自动机 1.关于 e n d p o s endpos endpos 理解含义 假设字符串s是字符串S的一个子串,则 e n d p o s ( s ) endpos(s) endpos(s)表示s在S中的所有结束位置,如在字符串 a b c a b c a b abcabcab abcabcab中, e n d p o s ( a b ) 2 …

进程的基础认识

一、进程的概念 进程是指 可执行程序 内核数据结构(内核为了管理进程而创建的数据结构)。 二、进程的管理 进程是靠PCB(process control block [进程控制块])管理起来的,在linux下PCB叫 task_struct 当一个可执行程序从磁盘加载进内存&…

分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试 OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 给定一个由若干整数组成的数组nums ,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组),分别对子数组求和得到两个值.计算这两个值的差值…

lv14 字符设备驱动基础框架解析 4

一、字符设备驱动框架解析 设备的操作函数如果比喻是桩的话(性质类似于设备操作函数的函数,在一些场合被称为桩函数),则: 驱动实现设备操作函数 ----------- 做桩 insmod调用的init函数主要作用 --------- 钉桩 rm…

SQL窗口函数大小详解

窗口大小 OVER 子句中的 frame_clause 选项用于指定一个滑动的窗口。窗口总是位于分区范围之内,是分区的一个子集。指定了窗口之后,分析函数不再基于分区进行计算,而是基于窗口内的数据进行计算。 指定窗口大小的语法如下: ROWS…

怎么将视频转换为mp4?

怎么将视频转换为mp4?转换视频文件为 MP4 格式是非常普遍的需求,因为 MP4 是广泛支持的视频格式之一,能够在各种设备上流畅播放。MP4 格式具有很好的兼容性,基本上可以在所有的播放器中播放,也可以在大多数剪辑软件中打…

WEB 3D技术 three.js 补间动画(tween)

本文 我们来说 补间动画 比如说 我们有一个正方体 默认在如下图位置 然后 我们希望 一秒中之后 它到达如下图位置 那么 我们知道 终点和起点的位置 从起点到终点 一共需要一秒的时间 需要程序自己去处理这个图形 0.1 0.2 直到 1秒 它都分别要达到什么位置 通过开始和结束位…

尚硅谷大数据技术-数据湖Hudi视频教程-笔记01

大数据新风口:Hudi数据湖(尚硅谷&Apache Hudi联合出品)尚硅谷数据湖Hudi视频教程 B站直达:https://www.bilibili.com/video/BV1ue4y1i7na百度网盘:https://pan.baidu.com/s/1NkPku5Pp-l0gfgoo63hR-Q?pwdyyds阿里云…

爬虫如何使用代理IP通过HTML和CSS采集数据

目录 前言 1. 了解代理IP 2. 通过HTML和CSS采集数据 3. 使用代理IP进行数据采集 3.1 获取代理IP列表 3.2 配置代理IP 3.3 发送请求和解析网页内容 总结 前言 爬虫是一种自动化工具,用于从互联网上获取数据。代理IP是一种用于隐藏真实IP地址并改变网络请求的…

Python电能质量扰动信号分类(四)基于CNN-BiLSTM的一维信号分类模型

往期精彩内容: 引言 1 数据集制作与加载 1.1 导入数据 1.2 制作数据集 2 CNN-BiLSTM分类模型和超参数选取 2.1定义CNN-BiLSTM分类模型 2.2 设置参数,训练模型 3 模型评估 3.1 准确率、精确率、召回率、F1 Score 3.2 十分类混淆矩阵&#xff1a…

Stata各版本安装指南

Stata下载链接 https://pan.baidu.com/s/1ECc2mPsfNOUUwOQC9hCcYg?pwd0531 1.鼠标右击【Stata18(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Stata18(64bit)】。 2.打开解压后的文件夹,鼠标右击【Setup】选择【以管…

修复移动硬盘显示盘符但打不开问题

问题: 移动硬盘显示盘符,但无法打开。点击属性不显示磁盘使用信息。 分析解决: 这是由于硬盘存在损坏导致的,可以通过系统自带的磁盘检查修复解决,而无需额外工具。 假设损坏的盘符是E,在命令行运行以下命令…

【日积月累】Java中 正则表达式

目录 日积月累】Java中 正则表达式 1.前言2.基本语法3.Pattern和Matcher类4.校验的表达式大全5.参考文章所属专区 日积月累 1.前言 正则表达式是一种用于匹配文本模式的语法,它通常与编程语言一起使用。在Java中,正则表达式用于匹配字符串,可以使用Pattern和Matcher类来实…

性能测评高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘

阿里云服务器系统盘或数据盘支持多种云盘类型,如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等,阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

Vue 中的 ref 与 reactive:让你的应用更具响应性(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

uniapp中uview组件库丰富LoadingPage 加载页

目录 基本使用 #显示或隐藏 #文字内容 #动画模式 #动画图片 #文字颜色 #文字大小 #图标大小 2.0.32 #背景颜色 #图标颜色 API #Props 基本使用 <template><view><u-loading-page></u-loading-page></view> </template>#显示或…