关于d2l中train_ch3以及softmax中图在pycharm中显示不出来的解决方案
使用最新版d2l【1.0.3】的同学由于新版d2l包不包含第三章训练代码需要手动在【环境目录\d2l\Lib\site-packages\d2l\torch.py】文件中添加以下代码defevaluate_accuracy(net,data_iter:torch.utils.data.DataLoader):ifisinstance(net,torch.nn.Module):net.eval()metricAccumulator(2)withtorch.no_grad():forX,yindata_iter:metric.add(accuracy(net(X),y),y.numel())returnmetric[0]/metric[1]deftrain_epoch_ch3(net,train_iter,loss,updater):metricsAccumulator(3)ifisinstance(net,torch.nn.Module):net.train()forX,yintrain_iter:y_hatnet(X)lloss(y_hat,y)ifisinstance(updater,torch.optim.Optimizer):updater.zero_grad()l.mean().backward()updater.step()else:l.sum().backward()updater(X.shape[0])# number of Xs samplesmetrics.add(float(l.detach().sum()),accuracy(y_hat,y),y.numel())returnmetrics[0]/metrics[2],metrics[1]/metrics[2]deftrain_ch3(net,train_iter,test_iter,loss,num_epochs,updater):训练模型定义见第3章animatorAnimator(xlabelepoch,xlim[1,num_epochs],ylim[0.3,0.9],legend[train loss,train acc,test acc])foriinrange(num_epochs):train_metricstrain_epoch_ch3(net,train_iter,loss,updater)test_accevaluate_accuracy(net,test_iter)animator.add(i1,train_metrics(test_acc,))train_loss,train_acctrain_metricsasserttrain_loss0.5,train_lossasserttrain_acc1andtrain_acc0.7,train_accasserttest_acc1andtest_acc0.7,test_acc改动点将本书中的metrics.add(float(l.sum()), accuracy(y_hat, y), y.numel())改为metrics.add(float(l.detach().sum()), accuracy(y_hat, y), y.numel())同时针对使用在Pycharm专业版中使用Jupyter时没有图像输出或者图像一闪而过的情况需修改以下代码在【环境目录\d2l\Lib\site-packages\d2l\torch.py】文件中将【Animator】类中的display.display(self.fig)display.clear_output(waitTrue)注释掉即可。新的【Animator】类如下【注3.6中存在这样的问题也直接去掉就好了3.7中需要在上面提到的torch文件中手动注释】classAnimator:For plotting data in animation.def__init__(self,xlabelNone,ylabelNone,legendNone,xlimNone,ylimNone,xscalelinear,yscalelinear,fmts(-,m--,g-.,r:),nrows1,ncols1,figsize(3.5,2.5)):Defined in :numref:sec_utils# Incrementally plot multiple linesiflegendisNone:legend[]d2l.use_svg_display()self.fig,self.axesd2l.plt.subplots(nrows,ncols,figsizefigsize)ifnrows*ncols1:self.axes[self.axes,]# Use a lambda function to capture argumentsself.config_axeslambda:d2l.set_axes(self.axes[0],xlabel,ylabel,xlim,ylim,xscale,yscale,legend)self.X,self.Y,self.fmtsNone,None,fmtsdefadd(self,x,y):# Add multiple data points into the figureifnothasattr(y,__len__):y[y]nlen(y)ifnothasattr(x,__len__):x[x]*nifnotself.X:self.X[[]for_inrange(n)]ifnotself.Y:self.Y[[]for_inrange(n)]fori,(a,b)inenumerate(zip(x,y)):ifaisnotNoneandbisnotNone:self.X[i].append(a)self.Y[i].append(b)self.axes[0].cla()forx,y,fmtinzip(self.X,self.Y,self.fmts):self.axes[0].plot(x,y,fmt)self.config_axes()# display.display(self.fig)# display.clear_output(waitTrue)如果还是没有显示的话一般来说之前显示图没问题的话这一步是不用设置的并且如果全部都设置了还是无法显示就要考虑matplotlib和d2l的冲突了就在以下设置需要打开【不同的版本可能没有pillow那个无需理会全部勾选就ok】成功结果如下所示注本文参考d2l参考书中Zhang_Xuhui同学的评论并且贴主进行了一定的修改和优化

相关新闻

i福田 小散零星工程资质挂靠|避坑指南

i福田 小散零星工程资质挂靠|避坑指南

摘要:本文针对福田区小散零星工程在i福田平台申报时,因设计单位未在街道城建办备案导致退件的常见问题,提供系统性的避坑指南。文章剖析了“资质不等于备案”等四大误区,给出三步自查法与正确办理路径,并附FAQ和可执行…

2026/7/23 9:38:39 阅读更多 →
ESP32-S3音频采集与云端存储方案详解

ESP32-S3音频采集与云端存储方案详解

1. ESP32-S3音频采集与云端存储方案概述 ESP32-S3作为乐鑫科技推出的新一代Wi-Fi/蓝牙双模芯片,凭借其强大的处理能力和丰富的外设接口,在物联网音频领域展现出独特优势。本项目基于ADF(Audio Development Framework)框架实现麦克…

2026/7/23 9:38:39 阅读更多 →
基于Qwen3-TTS与Unity的实时语音合成系统:游戏角色语音实现

基于Qwen3-TTS与Unity的实时语音合成系统:游戏角色语音实现

1. 项目概述:当游戏角色开口说话 最近在捣鼓一个独立游戏项目,想让里面的NPC(非玩家角色)能更“活”起来。传统的做法要么是预录大量语音,成本高且不灵活;要么是让角色“沉默是金”,全靠字幕和气…

2026/7/23 9:38:39 阅读更多 →

最新新闻

轻断食真的能减肥吗?聊聊很多人试了却没瘦下来的真相

轻断食真的能减肥吗?聊聊很多人试了却没瘦下来的真相

你是不是也试过轻断食?跟着教程严格执行168,头两周体重掉得挺快,可到了第三周开始,秤上的数字就纹丝不动了,甚至反弹回去了……然后开始怀疑:轻断食到底是不是骗人的? 其实这个困惑一点都不少见…

2026/7/23 11:04:19 阅读更多 →
[绿色环保]---供应链协同--1.循环利用(可再生、可使用、再制造)

[绿色环保]---供应链协同--1.循环利用(可再生、可使用、再制造)

绿色环保-供应链协同上游:绿色采购与产业协同(对应“绿色采购”分支)在“绿色采购”下的三级供应商架构中,补充资源与辅料采购逻辑:一级供应商(核心资源端):来源:本地红土…

2026/7/23 11:04:19 阅读更多 →
DDIM扩散模型加速原理与工业实践

DDIM扩散模型加速原理与工业实践

1. 扩散模型加速革命的技术背景2022年可以说是AIGC技术爆发的元年,Stable Diffusion等扩散模型以惊人的图像生成质量席卷全球。但早期版本的扩散模型存在一个致命缺陷——生成单张图片需要1000步以上的迭代计算,耗时长达数十秒。这种低效的推理过程严重制…

2026/7/23 11:04:19 阅读更多 →
免费虚拟主机评测与优化策略

免费虚拟主机评测与优化策略

1. 免费虚拟主机的本质与适用场景免费虚拟主机本质上是一种通过资源共享方式提供的低成本网站托管服务。与付费主机相比,它通常通过广告展示、功能限制或资源配额来平衡运营成本。我在2015年第一次接触这类服务时,发现它们特别适合以下几种情况&#xff…

2026/7/23 11:04:19 阅读更多 →
若依消息中心改造:从单一站内信到多渠道集成

若依消息中心改造:从单一站内信到多渠道集成

1. 项目背景与需求分析若依(RuoYi)作为国内广泛使用的开源后台管理系统,其消息通知模块SysNotice在长期使用中暴露出几个典型问题:首先是功能单一,仅支持站内信形式的简单通知;其次是扩展性差,无…

2026/7/23 11:04:19 阅读更多 →
AI搜索效果评估体系重构(2024权威白皮书首发):覆盖召回率/意图识别/长尾衰减的12维黄金指标矩阵

AI搜索效果评估体系重构(2024权威白皮书首发):覆盖召回率/意图识别/长尾衰减的12维黄金指标矩阵

更多请点击: https://intelliparadigm.com 第一章:AI搜索效果评估体系重构(2024权威白皮书首发):覆盖召回率/意图识别/长尾衰减的12维黄金指标矩阵 传统搜索评估长期依赖单一的准确率与召回率,难以刻画大模…

2026/7/23 11:03:19 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻