d2l中各种内定函数的笔记

李沐《动手学深度学习》d2l——安装和使用 今天想要跟着沐神学习一下循环神经网络,在跑代码的时候,d2l出现了问题,这里记录一下解决的过程,方便以后查阅。 阅读详情

Accumulator()类与train_epoch_ch3

  首先看一下类的定义:

class Accumulator:  #@save
    """在n个变量上累加"""
    def __init__(self, n):
        self.data = [0.0] * n
 
    def add(self, *args):
        self.data = [a + float(b) for a, b in zip(self.data, args)]
 
    def reset(self):
        self.data = [0.0] * len(self.data)
 
    def __getitem__(self, idx):
        return self.data[idx]

这里首先对类里面的函数进行说明,第一个[0.0] * n

这里的n对应的是Accumulator(n)里面这个传入的参数,如果传入3,则data变成[0,0,0]

对于add(self, *args) :这里的self是刚刚初始化self.data,*args接收非关键字的传参可以是元组,或者是字符串

对于打包操作,如下图所示

a = [0, 0, 0]
b = [3, 7, 1]
zip(a, b)
>>>[(0, 3), (0, 7), (0, 1)]

for i, j in zip(a, b):
    print(i, j)

>>>0 3
   0 7
   0 1

>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(0, 0, 0), (1, 2, 3)]

  对应这个操作[a + float(b) for a, b in zip(self.data, args)],如上图返回值所示,a=0对应b=3,故第一项为3,其余返回值列表如下所示:

metric = Accumulator(3)
print(f'初始的metric.data:{metric.data}')
metric.add(3,7,1)
print(f'第1次调用add后,metric.data:{metric.data}')
metric.add(5,8,1)
print(f'第2次调用add后,metric.data:{metric.data}')
print(metric.data[0])

初始的metric.data:[0.0, 0.0, 0.0]
第1次调用add后,metric.data:[3.0, 7.0, 1.0]
第2次调用add后,metric.data:[8.0, 15.0, 2.0]
8.0

总结:这个metric = Accumulator(3)将原始metric.data设定为[0,0,0]3个量,应用在训练中时:

def train_epoch_ch3(net, train_iter, loss, updater): #@save
    """训练模型⼀个迭代周期(定义⻅第3章)"""
    # 将模型设置为训练模式
    if isinstance(net, torch.nn.Module):
        net.train()
    # 训练损失总和、训练准确度总和、样本数
    metric = Accumulator(3)
    for X, y in train_iter:
        # 计算梯度并更新参数
        y_hat = net(X)
        l = loss(y_hat, y)
        if isinstance(updater, torch.optim.Optimizer):
            # 使⽤PyTorch内置的优化器和损失函数
            updater.zero_grad()
            l.mean().backward()
            updater.step()
        else:
            # 使⽤定制的优化器和损失函数
            l.sum().backward()
            updater(X.shape[0])
        metric.add(float(l.sum()), accuracy(y_hat, y), y.numel())
    # 返回训练损失和训练精度
    return metric[0] / metric[2], metric[1] / metric[2]

训练函数中传入这三个数,分别表示从0开始依次[a,b,c],a为一个bs中的损失函数,b为一个bs中的预测正确的数量,c为一个bs中y标签向量中的总元素个数(等同于len(y)),由于一个X,y为一个bs,迭代完所有train_iter后,则三个数对应整个训练集中的数。

补充一下train_iter中定义完bs=32后每个X,y是什么:

train_iter, test_iter = load_data_fashion_mnist(32, resize=64)
for X, y in train_iter:
    print(X.shape, X.dtype, y.shape, y.dtype)
    break

>>>torch.Size([32, 1, 64, 64]) torch.float32 torch.Size([32]) torch.int64

补充d2l.torch库里面缺失train_ch3函数 深度学习 d2l库 阅读详情

相关推荐

d2l.train_ch3函数,将输入数据转化为该函数所接受的格式

python中的列表是我们非常熟悉一种数据格式,但在深度学习中很少用到,神经网络需要的数据格式为张量,那我们可以通过nd.array的方式将熟悉的列表数据转为张量 from mxnet import autograd, nd data = nd.array(data) 然后通过data_iter函数,生成随机的小批量样本,经过这两步转化可以将列表数据转为神经网络所需的张量数据,接下来我们可以将数据带入常用的函数进行计算,例如d2l中的包d2l.train_ch3(net, train_iter..

z463544804的博客 8344

《动手学深度学习》中d2l库的安装教程(含细节,开盖即食)

​ 在按照《动手学深度学习》这本书时会有需要导入d2l库的使用。​ 首先先随便了解一下d2l库如下:​ d2I是一个与《动手学深度学习》(Dive into Deep Learning)一书配套的开源教学库,它包含了作者李沐设计的深度学习相关代码和示例。这个库旨在帮助读者通过实践经验来理解和掌握深度学习的基础知识和核心算法,如神经网络、卷积神经网络(CNN)、循环神经网络(RNN)等。除了提供理论知识外,d2Il库还通过实际代码应用来帮助读者加深对这些算法的理解。

m0_75243362的博客 5万+

Anaconda D2L 虚拟环境安装配置

Anaconda配置d2l环境,包安装

shaqilaixi2的博客 1万+

d2l@动手学深度学习@pytorch名称和d2l包的搭配安装问题#@save修饰符@在线运行notebook和免费算力

summarytorchtorchaudio从上面的介绍来看,torch是必备的,但是后两者作为功能扩展的增强包License:安装 — 动手学深度学习 2.0.0 documentation (d2l.ai)d2l 第2版中,提示的方式安装PyTorch的CPU或GPU版本:下面提供的时cpu版本(不涉及CUDA的安装)

xuchaoxin1375的博客 7375

conda创建环境并下载d2l软件包

跟着李沐老师学深度学习(基于pytorch)

qq_49407329的博客 1万+

ChatGPT and Claude国内使用站点

这篇博客介绍了不同的AI聊天平台和定价信息,主要对比了ChatGPT和Claude两款产品。文章列出了多个提供聊天服务的AI平台,包括RawChat、ChatGPTPlus、ChatOpens、Wildcard和2233.ai等,并提供了每个平台的网页链接和定价详情。特别关注了Claude平台,介绍了其普通账号与会员账号的不同,以及相关的定价信息。此外,还提到了一些虚拟卡定价和服务细节,为用户选择合适的AI服务提供了多种参考。

nisidjndn的博客 1万+

Windows安装D2L的环境

的安装第3步,因为书上的命令是Linux的,与Windows有不同,需要解决。但后来出现'rm' 不是内部或外部命令,也不是可运行的程序。出现下面的错误,但可以参考下面方法解决,然后再运行上面的安装代码。又出现了提示,就按第2行直接复制粘贴,运行。进入官网,填邮箱,选择win版的miniconda,此时是。'unzip' 不是内部或外部命令,也不是可运行的程序。书官网的包的版本不匹配,换方案,按B站教学视频。打开jupyter笔记本,出成果啦,可以运行啦!的安装第一步,安装 Miniconda。

bravewomen的博客 1548

工业缺陷检测深度学习方法综述

异常:点异常、 上下文异常和集群异常。点异常:又称为离群值 (outliers)[9], 描述数值上偏离正 常样本的独立数据。与异常相近的概念还包括新颖点(novelty)和分布外数据。上下文异常:同样描述数据点,其数值属于正常范围,但不符合局部上下文规律。集群异常:描述一系列相关数据的集合,集合中的每一个实例的数值在单独考察时都处于正常值域,但集 合整体的相关性特征不服从正常模式。一般的图像异常检测往往仅需区分正常与异常样本,而工业缺陷检测更关注于检测 图像中的异常像素.

2301_80355452的博客 1842

解决d2l包下载不了的问题

d2l包是李沐老师等人开发的《动手深度学习》配套的包,最初的时候,我并没有安装的想法,可在代码实现方面,常常要自己写函数实现同样的效果,且因为用于Tensor数据的一些转换,让人颇感吃力(比如显示图片)。所以,今天在尝试安装,具体的方法李沐老师也给出了,但我的频繁报错,所有大家不妨先去看看李沐老师提供的方法。下载这个文件即可,下载的位置找到后,将其移动到需要安装的虚拟环境当中。当你获得下面相似的内容,就说明了d2l包下载成功。这个需要下载的东西较多,耐心等待。

m0_62919535的博客 1万+

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

Cloudflare SaaS 优选IP实战:提升大陆访问速度的配置指南

本文详细介绍了如何通过Cloudflare SaaS优选IP提升中国大陆用户访问速度的配置指南。从基础环境准备到IP筛选方法,再到完整配置流程和效果验证,帮助用户突破免费套餐限制,精准优化网络线路,特别适合跨境电商和面向中国大陆用户的网站优化。

weixin_29231027的博客 683

d2l的一些库解析,用到什么补充什么【深度学习+d2l+torch】

李沐老师d2l torch的解析,用到什么补充什么

kar1yn的博客 2万+

内容审核与文本安全技术综述:检测、过滤与对齐

检测质量高度依赖数据。毒性/仇恨/冒犯语言检测领域形成了一批经典数据集,但它们的标签体系差异很大:例如 OLID(OffensEval)强调“是否冒犯—冒犯类型—目标对象”三层结构;HateXplain 在“hate/offensive/normal”三分类之外,还提供目标群体与人类标注的 rationale span;RealToxicityPrompts 则不做离散标签,而是用毒性分数来研究“模型续写时的毒性退化”。ACL 汇编。

nmdbbzcl的博客 1370

L1和L2损失函数(L1 and L2 loss function)及python实现

       在我们做机器学习的时候,经常要选择损失函数,常见的损失函数有两种:L1-norm loss function和L2-norm loss function。       &

海军上将光之翼的博客 3万+

UMI——斯坦福刷盘机器人:通过手持夹爪革新数据收集方式,且使用视觉SLAM和Diffusion Policy预测动作

没想到今年年初的斯坦福mobilealoha的热度刚过,而到今年2月的下旬,斯坦福另一个团队又推出了UMI刷盘机器人,且这两个团队还互相认识、还在一块共同切磋(顺带小小感叹一下,斯坦福的氛围是真好而且真高产)斯坦福UMI刷盘机器人其与mobile aloha(以及AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild)最大的不同在于其收集数据处理的非真实的机器人,而是一个手持夹持器(从而大幅降低成本)

u013250861的博客 1357

【数据集实例】CMIP6气候模式数据下载-以河东地区为例

以河东地区为例,介绍CMIP6数据下载及处理

WW、forever的博客 4930

Colab 导入 d2l 包的方法

Colab 导入 d2l 包的方法

扬扬说 7602

SAP S/4HANA 中 RAP 业务对象接口的消费模式

本文探讨了SAP S/4HANA中RAP业务对象接口的消费模式,重点介绍了通过EML直接调用和CDS投影两种Clean Core开发路径。文章分析了BO Interface作为稳定契约的价值,并提供了BAdI集成、OData服务发布等实际场景案例,同时对比了OData V2/V4的技术选型考量,最后强调了ADT向导使用中的DCL权限注意事项。全文旨在帮助开发者构建升级友好的业务对象消费方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 757

ModuleNotFoundError: No module named ‘d2l’

解决方案问题描述:原因分析:解决方案:1.下载2.寻找conda外部软件包的安装位置2.1打开命令行2.2查看已安装包的路径3.将d2l库移动到安装包路径下4.其它可能遇到的问题 问题描述: Anaconda导入d2l库发生错误 import d2l ModuleNotFoundError: No module named ‘d2l’ 原因分析: d2l库是李沐大神自己写的库函数,包括了一些我们常用的库和自定义函数。 解决方案: 1.下载 方式一:李沐老师动手深度学习github仓库

小刘的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【d2l安装超详细老妈子教程】

《动手学深度学习》d2l环境配置,成功率百分百,别让安装成为大神之路的阻碍!

weixin_46143783的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

李沐d2l 环境安装

安装pytorch 对应李沐d2l 环境安装过程问题1 安装问题2 从头检查环境3 CUDA4 测试pytorch5 安装 d2l 软件包6 开始使用d2l7 遗留问题8 已安装的软件包9 问题AttributeError: module 'torch' has no attribute 'plot' 过程问题 1 安装问题 anaconda prompt (anaconda3)base 环境下 WARNING: You are using pip version 21.1.1; however, v

weixin_45758918的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

From d2l import torch as d2l 报错

最近算是从头开始好好学习一遍李沐大佬的《pytorch-动手学深度学习V2》,我看到视频评论下有小伙伴说From d2l import torch as d2l 报错,因为自己之前也遇到过这个问题,索性把他记录下来。 其实这句代码就是把torch.py这个文件导入进来,里面都是一些常能用到的函数,因为是pytorch框架,所以我们导入的文件是torch.py 如果你使用的是其他的框架,比如Mxnet,name你就是from d2l import mxnet as d2l 了 解决办法1 1、把名为d2l的

weixin_44407411的博客 1万+

d2l包安装教程

本文介绍了安装d2l的流程和一些常见问题的解决方案

m0_56312629的博客 1万+

理解动手学深度学习的自编包d2l

在d2l文件夹内,共有5个文件和一个文件夹,分别是__init__.py, mxnet.py, paddle.py, tensorflow.py, torch.py这5个.py文件和__pycache__文件夹。其中,Location告诉你这个包安装在什么位置,在这个目录下,会有一个d2l文件夹(注:在上面目录里,d2l是我安装这个包的虚拟环境的名字,与d2l包无关)。另外,Requires表示d2l这个包需要哪些其它包,而Required-by表示d2l被哪些包调用,这里是空的,表示没有包依赖于d2l。

彬彬有礼的专栏 3599

李沐动手学深度学习pytorch :问题:找不到d2l包,No module named ‘d2l’

下载d2lzh_pytorch 直接百度云: 链接:https://pan.baidu.com/s/1ndV7qloDG7vIGrZmEdasWw 提取码:hwn4 将文件夹 d2lzh_pytorch 【记住这个是 小写 L 不是 数字 1 】 放到anaconda 你自己创建的环境下: C:\ProgramData\Anaconda3\envs\pytorchzc\Lib\site-packages 重点:要放到自己创建的环境下,别放错了。 在Anaconda Prompt 下查看环境: conda.

scar2016的博客 4万+
上一篇: 混淆矩阵、ROC曲线以及文件处理
下一篇: d2l-softmax实现流程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值