Docker 又吃了我 40GB 硬盘:从诊断到清理的完整指南

C盘清理终极指南:从休眠文件到Docker,一次释放几十GB 磁盘空间管理是Windows系统维护的核心技能,而C盘空间不足往往源于休眠文件、虚拟内存、系统更新残留等隐藏大户。这些文件虽不显眼,却随着使用不断膨胀,导致传统磁盘清理收效甚微。理解各类系统文件的生成机制与清理原理,是安全释放空间的前提。对于办公用户,合理调整休眠与虚拟内存、重定向用户目录即可换取数十GB;而开发者还需关注WSL虚拟磁盘、Docker镜像及包管理器缓存的定期清理。通过命令行工具与计划任务,可将清理流程自动化,实现长效维护。本文从系统级瘦身到开发者场景,提供一套完整的C盘清理与预防方案,帮助读 阅读详情

摘要:Docker 在 macOS 上运行几个月后,磁盘占用轻轻松松超过 30GB——不是因为镜像太多,而是因为虚拟机磁盘镜像只增不减、构建缓存从不自动清理、退出容器后的卷成了孤儿。本文从三层诊断入手——Docker 自身的 system df 数据、macOS 文件系统层的 SpacePeek 空间分析、以及 Docker Desktop 的磁盘镜像占用——给出分级清理策略(安全 / 标准 / 激进),每一步标注可回收空间量和风险等级。文末提供按月执行的自动化脚本。

本文信息:基于 Docker Desktop for Mac (Apple Silicon)、macOS 15.0 Sequoia、Docker Engine 26+ 实测。清理命令适用于 Docker 26+ 版本,低版本需注意命令兼容性。


一、问题背景

Docker 的磁盘占用不是 bug,是设计

Docker 在 macOS 上的运行机制和 Linux 完全不同。在 Linux 上,Docker 直接跑在宿主机内核上,镜像和容器数据存在本机文件系统里。但在 macOS 上,Docker 跑在一个轻量 Linux 虚拟机里——这个虚拟机的磁盘镜像(Docker.raw)是一个只增不减的稀疏文件。

关键问题就出在"只增不减"这四个字。

你拉了一个 2GB 的镜像,用完了删掉——虚拟机镜像文件不会缩小。你跑了 100 次 docker build,每次都产生构建缓存——虚拟机镜像文件只增不减。你创建了 10 个数据卷,项目结束后删了容器但忘了删卷——虚拟机镜像文件继续增大。

结果就是:用了三个月 Docker 之后,你去 ~/Library/Containers/com.docker.docker/ 一看——Docker.raw 已经 45GB 了。


二、三层诊断:找到 Docker 到底吃了你多少空间

第 1 层:Docker 自己的数据统计

docker system df

输出解读:

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          45        12        8.7GB     5.2GB (59%)
Containers      18        6         1.1GB     620MB (55%)
Local Volumes   5         3         120MB     50MB (40%)
Build Cache     0         0         0B        0B

怎么看:

  • Images 的 RECLAIMABLE 数字——这些是可以安全回收的未使用镜像
  • Containers 的 RECLAIMABLE——已退出但未删除的容器
  • Local Volumes 的 RECLAIMABLE——未被任何容器挂载的卷(孤儿卷)
  • Build Cache——docker build 的中间层缓存

进阶命令:

docker system df -v    # 详细列出每个镜像/容器/卷的大小

第 2 层:macOS 文件系统层的实际占用

# 查看 Docker 虚拟机磁盘镜像的实际大小
ls -lh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

典型输出:45GB。但 Docker Desktop 设置里显示"已使用 28GB"——为什么差 17GB?因为 Docker.raw 是稀疏文件,它从 0 开始只增不减,即使你删除了镜像,这个文件也不会自动缩小。这是 macOS 版 Docker 最核心的空间问题。

如果你装了 SpacePeek:在 Finder 里进入 ~/Library/Containers/com.docker.docker/ → 按空格 → 饼图会告诉你 Data/vms 占了 95% 以上。不需要手动逐层 ls -lh,一眼定位。
在这里插入图片描述

第 3 层:Docker Desktop 的资源面板

Docker Desktop → 右上角齿轮 Settings → Resources → 可以看到:

  • Disk image size:当前磁盘镜像的实际占用(包含稀疏文件中的"空洞")
  • Disk image max size:镜像文件允许的最大体积(默认通常设为 64GB 或 128GB)

如果 Disk image size 接近 max size,你需要进行"激进清理"(见下文)。


三、分级清理策略

⚠️ 清理原则:安全优先。先从低风险操作开始,释放量不够再逐步升级。


🟢 Level 1:安全清理(零风险,释放 5-15GB)

这些命令只删除未被任何运行中容器使用的资源。不会影响你正在开发的项目。

# 1. 清理悬空镜像(<none>:<none>)
docker image prune -f

# 2. 清理已停止的容器
docker container prune -f

# 3. 清理未被使用的卷
docker volume prune -f

# 4. 清理构建缓存
docker builder prune -f

每次预期释放:5-15GB(取决于你上次清理是什么时候)。


🟡 Level 2:标准清理(低风险,释放 10-25GB)

这些命令会删除所有未被运行中容器使用的镜像、构建缓存和网络。不会影响正在运行的容器,但会删除已停止容器的镜像和缓存。

# 一条命令搞定 Level 1 + Level 2 的全部清理
docker system prune -a --volumes -f

参数解释:

参数作用
-a删除所有未被使用的镜像(不只是悬空的)
--volumes同时删除未被使用的卷
-f跳过确认提示

⚠️ 注意:-a 会删除所有未运行容器的镜像。如果你有一个停止的容器需要保留其镜像,先用 docker images 确认。

每次预期释放:10-25GB。


🔴 Level 3:激进清理(中风险,释放 20-40GB)

场景:Level 2 清理之后,Docker.raw 文件仍然很大——因为你已经删除了所有可清理的数据,但磁盘镜像文件本身没有缩小。

原因:Docker Desktop 的虚拟机磁盘镜像是稀疏文件,内部数据删除后,占用的空间不会还给 macOS。你需要手动压缩这个文件。

操作步骤:

1. Docker Desktop → Troubleshoot → Reset to factory defaults
   ⚠️ 这会删除所有容器、镜像、卷、构建缓存——相当于重装 Docker

2. 替代方案(保留部分数据):
   Docker Desktop → Settings → Resources → Advanced →
   将"Disk image size"调到一个较小的值(如 32GB)→ Apply & Restart
   Docker 会自动压缩镜像文件到设定值以下

注意:Level 3 只在你确认"所有重要的 Docker 数据已经不需要了"时执行。如果你有需要保留的镜像,先用 docker save 导出。


四、预防:写一个按月执行的脚本

比清理更重要的是——不要回到"每季度突然发现 Docker 占了 50GB"的循环。

#!/bin/bash
# ~/scripts/docker-monthly-cleanup.sh
# 每月执行一次,放在 crontab 里

echo "===== $(date) =====" >> ~/docker-cleanup.log

echo "清理前使用情况:" >> ~/docker-cleanup.log
docker system df >> ~/docker-cleanup.log

echo "→ 清理悬空镜像..." >> ~/docker-cleanup.log
docker image prune -f >> ~/docker-cleanup.log 2>&1

echo "→ 清理退出容器..." >> ~/docker-cleanup.log
docker container prune -f >> ~/docker-cleanup.log 2>&1

echo "→ 清理构建缓存..." >> ~/docker-cleanup.log
docker builder prune -f >> ~/docker-cleanup.log 2>&1

echo "清理后使用情况:" >> ~/docker-cleanup.log
docker system df >> ~/docker-cleanup.log
echo "---" >> ~/docker-cleanup.log

设置每月自动执行:

chmod +x ~/scripts/docker-monthly-cleanup.sh
crontab -e
# 加入:0 9 1 * * ~/scripts/docker-monthly-cleanup.sh
# 每月 1 号上午 9 点执行

五、关于 macOS 版 Docker 的一个认知纠正

有人会说"Docker 在 macOS 上就是吃资源"——这不完全对。

Docker Desktop 在 macOS 上需要虚拟机,这是物理上无法绕过的事实。但"磁盘镜像只增不减"的原因不是 Docker 做得差,而是 macOS 的 Hypervisor 框架对稀疏文件的管理方式和 Linux 的 OverlayFS 不同。

你能做的是:主动管理。每月 run 一次 Level 1-2 清理 + 看一眼 SpacePeek 确认 Docker.raw 没膨胀到离谱。养成这个习惯之后,Docker 的磁盘占用不再是问题。


六、总结

三点核心

  1. Docker on macOS 的磁盘膨胀分两层:Docker 内部的数据层(镜像/容器/卷/缓存,用 docker system df 诊断)和 macOS 文件系统层(Docker.raw 虚拟机磁盘镜像,用 ls -lh 或 SpacePeek 诊断)。两层都要清理,缺一不可。

  2. 清理有三级,按需升级:Level 1(悬空资源,5-15GB,零风险)→ Level 2(全部未使用资源,10-25GB,低风险)→ Level 3(压缩磁盘镜像,20-40GB,中风险)。绝大多数情况 Level 2 就够了。

  3. 预防比清理更重要。 一个月执行一次 Level 1 清理,比半年执行一次 Level 3 重置更安全、更省时间。配合 SpacePeek 的 Finder 侧随手按空格,你可以在日常浏览文件时顺便知道 Docker.raw 有没有偷偷膨胀。

涉及的工具

工具文中角色获取
docker system dfDocker 内部数据诊断Docker 自带
docker system pruneDocker 内部数据清理Docker 自带
SpacePeekmacOS 文件系统层诊断App Store 免费
crontab自动执行清理脚本macOS 自带

测试环境:Docker Desktop for Mac (Apple Silicon) / Docker Engine 26 / macOS 15.0 Sequoia / 2026 年 7 月


你的 Docker 最长多久没清理过?评论区晒一下 docker system df 的 RECLAIMABLE 数字——让我看看谁的最离谱。

C盘爆红怎么办?从诊断到自动化的系统空间清理完整指南 在Windows系统日常维护中,磁盘空间不足是高频问题之一,尤其C盘可用容量告急时,往往由临时文件、系统更新残留、软件缓存与个人文件混存共同导致。理解空间占用原理,是进行安全清理的前提。通过系统自带的存储感知、磁盘清理工具以及命令行手段,可以快速释放基础垃圾;借助磁盘分析工具则能定位深层大文件,实现精细化迁移或删除。这一整套流程不仅解决当前告警,更能通过计划任务固化为定期执行的自动化运维方案,适用于个人电脑与批量维护场景。本文将从空间诊断、系统自带清理、命令行操作、应用迁移到定时任务,完整梳理C盘从飘红到恢 阅读详情

相关推荐

ROS日志磁盘占用检查:从‘Usage is <1GB’告警到高效清理实战

本文详细解析了ROS日志磁盘占用检查机制,从常见的'Usage is <1GB'告警入手,揭示了日志管理的潜在问题与解决方案。通过实战案例,介绍了如何精准诊断日志占用、安全清理文件、配置预防性措施以及实施高级日志分级存储策略,帮助开发者有效管理ROS日志磁盘空间,提升系统稳定性。

weixin_30800807的博客 359

macOS上Docker磁盘占用爆满?从虚拟磁盘原理到清理实战

容器技术为本地开发带来便利,但镜像、数据卷与构建缓存的持续累积,常常让macOS开发者的磁盘空间悄然告急。其根源在于Docker Desktop通过一个虚拟磁盘镜像文件(如Docker.raw)来承载全部容器数据,文件内部逻辑占用与macOS物理磁盘大小并不实时同步,导致删除镜像后空间未必立即释放。掌握docker system df、prune系列命令以及构建缓存和卷的清理边界,能够精准定位空间消耗大户,并在不误伤业务数据的前提下高效回收容量。本文面向macOS环境下的容器存储管理,从虚拟磁盘结构分析出发

weixin_31569671的博客 164

AI辅助诊断eNSP AR启动40错误:从虚拟化冲突到精准排查

虚拟化技术是网络模拟与测试的基石,它通过在单一物理硬件上创建多个隔离的虚拟环境,为网络设备仿真提供了运行平台。其核心原理是利用虚拟机监视器(Hypervisor)对CPU、内存和I/O资源进行抽象与调度。这项技术的价值在于能大幅降低实验成本、提升部署灵活性,广泛应用于网络工程教学、方案验证及开发测试等场景。然而,虚拟化环境常因组件冲突、资源竞争或配置不当引发故障,例如在运行华为eNSP模拟器启动AR路由器时,典型的“错误代码40”便常源于VirtualBox与Windows Hyper-V的虚拟化平台冲突,

cnvdkx2837的博客 432

Docker占用空间大的问题

经查询发现Docker.raw 文件特别大。 该文件为docker的逻辑磁盘的文件。属于预占用文件,系统分配给dockcer的逻辑硬盘大小,是最大可用的磁盘空间,实际没有占用。 mac 下编辑: ~/Library/Group\ Containers/group.com.docker/settings.json 配置文件。 修改参数: “diskSizeMiB”: 15258 这里的15258 单位就是mb。 修改后重启docker就会发现占用空间瞬间变小。 注意:调整会导致镜像与容器丢失。 可用通过如下命

马拉松PB 3420

Ubuntu零基础入门到精通【9.10讲】:Ubuntu 磁盘空间排查与清理:从“磁盘满了“到系统稳定运行的完整实战指南

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。该本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1564

AI数字人:口播与唇形同步的福音,支持本地部署/批量生成/口齿清晰

你也可以直接输入语音,虚拟化身会根据语音的节奏和语调,同步做出相应的动作和表情,表现更加生动。不过这依然是个值得关注的工具。借助先进的 AI 算法,Heygem 高精度捕捉五官、轮廓等特征,构建逼真的虚拟模型。同时,它还能克隆语音,捕捉人声的细微特征,支持多种语音参数设置,打造高度相似的音色效果。打开设置,调整镜像存储位置,镜像文件比较大70~80G,选择合适的盘,设置完成后点击“Apply & Restart”。数字人视频画面与声音高度同步,口型匹配自然流畅,智能优化音视频效果,带来极佳的视听体验。

m0_72580657的博客 5862

怎样在mac上彻底删除docker

No offense against Docker. I like the concept and the software! – This guide is based on V1.3.0 of the installer – But I absolutely do not like the official Docker OS X installer (install manu

Benjamin 2万+

模拟调制系统实战:从AM到FM的5种调制方式对比与选型指南

本文深度解析AM、DSB、SSB、VSB、FM五种经典模拟调制方式,从实现电路、频谱效率、抗噪性能及工程成本等维度进行实战对比。通过MATLAB/Simulink仿真案例,提供清晰的选型决策框架,帮助工程师在无人机图传、短波通信、广播系统等具体项目中,根据带宽、功耗和抗干扰需求选择最优方案。

study的专栏 935

Mac下减少docker磁盘文件空间占用

问题 眼见mac里面的docker磁盘文件占空间越来越大,心想着自己其实没怎么用啊已经19G了。需要想办法缩小一下 解决 这里面隐含着两个操作。因为我的目的是减小Docker.qcow2的大小,所以需要减小虚拟磁盘文件内部的使用空间,再减小磁盘文件实际占用的空间。经过搜索,依次执行以下操作 docker system prune -a mv Docker.qcow2 Doc...

h691738337的博客 2830

Ultrascale/Ultrascale+ FPGA GTH IP及结构详解(一)

FPGA GTH Transceiver

houzi6320的博客 1万+

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1021

docker for mac网络研究了很久始终无法打通【mark】

看到一篇文章,mark一下。 On Docker for Mac the docker0 bridge does not exist, so other answers here may not work. All outgoing traffic however, is routed through your parent host, so as long as you try to conn...

4157

svn co --depth和svn up --set-depth 只check out下一层文件 只更新指定文件 只更新下一层的用法

svn的工程可能很大 有时我们只需要部分文件即可 这里介绍几个命令 1.svn co(check out) --depth --depth=empty,files,immediates,infinity 假设某svn结构如下 svn://root/PRO/A_dir/a svn://root/PRO/B_dir/b svn://root/PRO/c_file svn co --depth=emptysvn://root/PRO 此时只会在本地check out出 PRO/的空目录。 sv.

cy413026的博客 1万+

Docker no space left on device 根因诊断与安全清理指南

Docker存储空间不足(no space left on device)是容器化运维中最高频的系统级故障,其本质源于Linux文件系统的双重资源约束:数据块(blocks)耗尽或索引节点(inodes)耗尽。前者表现为磁盘使用率100%,后者则常被忽略——如Node.js构建生成海量小文件、PHP session日志堆积等场景下,df -H显示空间充足但df -i已达100%。准确区分二者是排障前提,而docker system df -v输出中的RECLAIMABLE字段才是判断可安全释放空间的关键依据

weixin_30367169的博客 385

timing window file中的S L T指什么意思

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 778

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2923

Windows C盘爆满手把手清理攻略:不装第三方软件也能释放几十GB

磁盘空间管理是Windows系统日常维护中的基础议题,尤其当系统盘(C盘)空间不足时,不仅影响运行速度,还可能导致系统更新失败或软件无法正常安装。从根本上说,C盘空间被占用主要来自临时文件、系统更新缓存、休眠文件、虚拟内存、开发环境缓存以及虚拟磁盘镜像等可再生或可迁移的数据。通过理解这些文件的生成原理,利用系统自带的存储感知、磁盘清理工具以及少数如WizTree之类的轻量扫描程序,即可精准定位并安全删除无用数据。这一技术手段无需额外安装全家桶软件,适用于办公电脑、开发机和个人PC等各类场景。当系统盘剩余空间

weixin_30394669的博客 376

利用 SAP Joule 提升 ABAP 开发效率的前提条件与限制全解析

综上,想要在 ABAP Development Tools 中顺利使用 SAP Joule,既要准备好 BTP、IAS、ABAP 系统与 ADT 的版本与信任链,也要理解许可证、配额、语法范围等限制。只有在这些前提全部满足后,Joule 才能真正发挥生成式 AI 的价值,帮助 ABAP 开发者从繁琐模板中解放出来,把注意力投入在业务创新与 Clean Core 改造之上。未来 SAP 还将扩展中文语境、自动修复建议以及跨系统智能代理等功能,值得持续关注。

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

C盘爆满不用愁:Windows磁盘空间清理与系统优化完整指南

磁盘空间是Windows系统稳定运行的基础资源,当系统盘空间告急时,盲目使用第三方清理工具往往带来安全隐患。理解空间占用原理是有效管理磁盘的前提,Windows中的休眠文件、页面文件、更新缓存及WinSxS组件存储都可能成为容量黑洞,借助系统自带磁盘清理、存储感知及PowerShell脚本可精准定位并安全释放空间。对于开发环境与批量维护场景,命令行工具和自动化脚本能大幅提升效率,而迁移用户目录、调整默认保存位置或合理分区扩容则是长期保持可用空间的关键策略。从日常办公到开发运维,建立可持续的维护节奏,才能让C

weixin_33904756的博客 415

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

告别C盘爆满:Windows磁盘清理与预防实战指南

磁盘空间不足是Windows用户最常遇见的性能瓶颈之一。系统更新残留、浏览器缓存、休眠文件与虚拟内存等隐性占用,往往在不经意间塞满C盘。理解这些系统文件的生成原理,借助磁盘分析工具定位大文件,并通过系统自带清理功能与存储感知机制,可安全释放数十GB空间。针对开发者,Docker镜像、WSL虚拟磁盘和npm缓存等专项回收同样不可忽视。结合自动化清理脚本与持久化预防策略,可让电脑长期保持流畅。本文提供一套从诊断、清理到长期维护的完整实践指南,适用于各类Windows版本。

weixin_33947521的博客 582

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Windows原生命令深度清理C盘:不装软件释放十几GB

随着日常使用和系统更新,电脑磁盘空间不足成为常见困扰,尤其是系统盘C盘。许多用户习惯安装第三方清理软件,却常带来后台进程和弹窗广告。实际上,Windows内置的命令行工具提供了更安全、可控的解决方案。通过cleanmgr、DISM、powercfg等原生命令,可以清理临时文件、压缩WinSxS组件库、关闭休眠文件,从而有效释放磁盘空间。理解空间占用原理后,结合磁盘清理和更新缓存处理,既能快速解决C盘爆红问题,又能避免误删系统文件。本文介绍一套可复用的命令式清理实践,帮助开发者和普通用户在不安装额外软件的情况

weixin_30896511的博客 299

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WSL2虚拟磁盘只涨不跌?从ext4.vhdx原理到压缩迁移的完整清理指南

虚拟化技术为开发环境带来便利的同时,也埋下了存储管理的隐患。WSL2作为Windows上流行的Linux子系统,其底层采用动态扩展的vhdx虚拟磁盘文件,这种只增不减的机制容易导致C盘空间被无声吞噬。理解ext4.vhdx的文件结构与扩容特性,是解决存储焦虑的第一步。通过诊断磁盘占用、清理包管理器缓存、限制日志大小,配合diskpart压缩或迁移至其他分区,可有效释放被占用的存储空间。对于长期使用容器技术或频繁编译内核的开发者,合理的配置优化与安全基线同样重要。本文从技术原理到工程实践,梳理出一套适用于日常

weixin_28739079的博客 216

2026年8GB内存笔记本还值得买吗?卡顿真相与升级指南

内存容量是决定笔记本流畅度的核心硬件指标之一。操作系统、浏览器多标签页、办公软件与视频会议工具的后台驻留,都会持续消耗物理内存。当内存接近满载时,系统会启用虚拟内存将数据交换到硬盘,由此引发卡顿、掉帧甚至软件闪退。8GB内存在轻量级固定场景下仍可胜任,但面对多任务办公、代码开发、数据处理和本地AI应用则明显力不从心。判断是否需要升级,需结合使用习惯、内存是否板载以及扩展插槽情况来综合评估。若机器支持更换内存条,加装同规格产品可显著改善体验;若为板载不可扩展设计,则换机时建议直接从16GB起步。理性看待内存占

weixin_33912638的博客 345

wan2.1-vae镜像轻量化:去除冗余依赖后体积压缩40%的Docker优化实践

本文介绍了wan2.1-vae镜像通过Docker优化实现体积压缩40%的实践。该轻量化镜像可在星图GPU平台上实现自动化部署,为用户提供一个高效的AI图像生成环境,能够快速将文本描述转化为高质量图片,适用于内容创作、设计辅助等场景。

weixin_42451850的博客 302

Windows C盘空间治理方法论:开源工具精准清理与长效监控

C盘空间不足是Windows系统最常见的性能瓶颈,其本质是磁盘空间构成复杂、冗余数据隐蔽且动态增长。理解NTFS元数据、卷影副本、WSL2虚拟硬盘等底层机制,是实现精准治理的前提;借助WinDirStat、PatchCleaner、BleachBit等高星开源工具链,可分层诊断系统级冗余、应用缓存失控与虚拟化膨胀;通过PowerShell自动化脚本与WMI查询,支撑可验证、可追溯的清理决策,显著提升空间释放效率与系统稳定性。该方案适用于高校IT支持、开发者运维及普通用户日常维护场景,兼顾救急响应与长期健康管

weixin_34332905的博客 432
上一篇: Mac 外接显示器完全指南:从插上线到调好每个参数
下一篇: Mac 外接显示器,插上就用是浪费:程序员的最佳实践指南
coding4u
博客等级 码龄14年 0粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值