PostgreSQL 日报|不重启动态修改 shared_buffers(9 月 8 日)

Ubuntu 12.04 + PostgreSQL 9.1 主从流复制实战指南 PostgreSQL 主从复制是保障数据库高可用的基础技术,其核心原理在于 WAL 日志的实时传输与重放。原生流复制(Streaming Replication)自 9.0 版本起即已成熟,无需外部工具,故障面小、路径清晰,具备极高的确定性与可维护性。在老旧但稳定的生产环境中——如长期服役的 Ubuntu 12.04 LTS 系统——该方案尤为关键:它规避了 glibc 兼容性风险、避免引入 Patroni 等复杂组件,并完美适配 hot_standby 实现只读分担。本文聚焦 PostgreSQL 9.1 阅读详情

PostgreSQL Hacker 电子邮件讨论精选

在更多场景中利用 WALReadFromBuffers

Bharath Rupireddy 发布了 v7 补丁,针对 Michael Paquier 在"Use WALReadFromBuffers in more places"线程中提出的两个问题进行了修复。第一个问题是:每次从 WAL 缓冲区满足读取后无条件关闭 WAL 段文件,在反复读取同一段内的页面时会造成不必要的开销。Bharath 的修复方案是:仅…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=Use%20WALReadFromBuffers%20in%20more%20places

在不重启的情况下更改 shared_buffers

Palak Chaturvedi 回复了 Yuhang Qiu 对补丁 0010 和 0011 的审查,这两个补丁用于实现不重启的情况下动态修改 shared_buffers。本轮修复了两个问题:其一,收缩过程中 MADV_REMOVE 的调用范围越过了 PROT_NONE 内存区域,在 Linux 5.10 上触发 EACCES 并导致 PANIC;修复…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=Changing%20shared_buffers%20without%20restart

BgBufferSync() 函数中 reusable_buffers 变量的含义解析

目前正在审查一个重构 BgBufferSync() 中 reusable_buffers 递增逻辑的补丁。该补丁将 reusable_buffers++ 从两个条件分支中提取出来,使 BUF_REUSABLE 条件更加清晰,并添加了一个 Assert,用于捕获以下不变量:当 skip_recently_used=true 时,Sy…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=BgBufferSync()%3A%20clarification%20about%20reusable_buffers%20variable

PGQ 目录表示与 pg_dump 支持

此次讨论涉及 PGQ 的 catalog 表示及 pg_dump 支持功能。Melanie Plageman 提议在 PostgreSQL 19 中回退相关改动,理由是存在一些未解决的问题,在版本 20 中不受向后兼容性约束时更适合彻底修复。Peter Eisentraut 表示同意,并询问回退范围是仅限 REL_19_STABLE 还是也包括 maste…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=PGQ%20catalog%20representation%20and%20pg_dump%20support

REPACK (CONCURRENTLY) 后端在解码工作进程启动失败时无限期等待

该讨论围绕修复 REPACK (CONCURRENTLY) 后端在解码 worker 启动失败时无限挂起的问题展开。Bharath Rupireddy 提交了 v3 补丁,核心改动包括:在 worker 启动后调用 shm_mq_set_handle() 将 worker 句柄与错误队列关联(因为调用 shm_mq_attach() 时 worke…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=REPACK%20(CONCURRENTLY)%20backend%20waits%20indefinitely%20when%20decoding%20worker%20fails%20to%20start

pg_upgrade_replica: 升级后避免从库的完整重新克隆

该线程讨论的是一个名为 pg_upgrade_replica 的新工具,旨在通过利用 pg_basebackup --incremental 和 pg_combinebackup,在 pg_upgrade 后避免对 standby 节点进行完整的重新克隆。Florin Irion 发布了一篇简短的正面评价,对设计、校验策略和 manifest 格式给予肯定…

原文链接:

https://pgnexus.ai/hacker-discussions?subject=pg_upgrade_replica%3A%20avoid%20full%20re-clone%20of%20standbys%20after%20pg_upgrade

社交媒体动态

pgwatch v6 测试版发布:三大核心改动都指向同一方向——减少冗余实例

pgwatch v6 测试版正式发布,三项核心架构改动都围绕同一理念展开:避免重复运行不必要的组件实例。最具代表性的优化是 goroutine 数量的大幅缩减,从 435 个降至仅 28 个。此次发布体现了开发团队在精简资源占用、简化监控工具内部并发模型方面的明确方向。

原文链接:

https://pgnexus.ai/social-media?url=https%3A%2F%2Fwww.linkedin.com%2Ffeed%2Fupdate%2Furn%3Ali%3Aactivity%3A7502749469340356609%2F

Scalefield Secure:多数据库审计日志集中管理与合规报告平台

Scalefield Secure 支持从 Oracle、SQL Server、PostgreSQL、PGEE 和 DB2 等主流数据库中采集审计日志,并对数据进行压缩以满足长期留存需求。采集到的审计数据将转化为专为审计人员设计的可视化仪表盘和报告,便于合规审查。该平台由数据库审计领域的专业团队负责运营维护,具备良好的扩展能力,能够满足企业在合规方面的核心…

原文链接:

https://pgnexus.ai/social-media?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Fcybertec-postgresql_scalefield-secure-by-cybertec-activity-7502703270851780608-Kzv-

AI 需要业务上下文才能真正理解企业的运作方式

AI 要真正理解企业运作,离不开准确的业务上下文。即将举办的网络研讨会将演示 Genie Ontology 如何将业务术语、实体与 KPI 整合为动态上下文图谱,从而让 AI 提供可信答案、支持自主行动,并减轻团队负担。内容涵盖:根据用户权限提供差异化答案、将洞察转化为自动化智能体与应用,以及将具备上下文感知能力的 AI 集成至 Slack、Teams、移…

原文链接:

https://pgnexus.ai/social-media?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Fdatabricks_webinar-closing-the-ai-context-gap-activity-7502811713919041536-ft0g

Apache AGE:基于PostgreSQL的知识图谱原生实现方案 知识图谱作为关联数据分析的核心技术,其落地长期受限于建模灵活性不足与工程运维复杂度高两大瓶颈。传统图数据库如Neo4j虽语法成熟,但独立部署架构导致备份、权限、监控、SQL生态割裂等隐性成本陡增。Apache AGE以PostgreSQL扩展形式提供原生Cypher支持,复用ACID事务、RLS行级安全、pg_dump备份及EXPLAIN执行分析等全部成熟能力,实现‘图即表’的存储抽象与混合查询。它让知识图谱真正融入现有数据基础设施,适用于金融风控、政务治理、生物医药等需强一致性、高合规性与快速迭代的生产场 阅读详情

相关推荐

PostgreSQL反范式化实战:读性能优化与一致性保障

反范式化是关系型数据库中提升读性能的关键工程策略,其本质是在规范化模型基础上,通过可控冗余(如冗余列、物化视图、投影表)降低JOIN开销与查询延迟。它依赖明确的性能瓶颈识别、严格的成本-收益权衡及强一致性保障机制,适用于高并发读多写少场景,如电商商品列表、实时报表和BI宽表构建。在PostgreSQL中,结合生成列、表达式索引、触发器与CDC等原生能力,可实现毫秒级响应与分钟级数据最终一致。本文聚焦真实生产环境下的选型逻辑、安全实施四步法与典型场景落地,兼顾技术深度与工程鲁棒性。

weixin_30785593的博客 376

Ubuntu 12.04下PostgreSQL 9.1主从复制实战指南

PostgreSQL主从复制是保障数据库高可用与读写分离的核心机制,其底层依赖WAL日志流式同步与物理复制原理,具备事务强一致、低延迟、零应用侵入等技术价值。在资源受限或系统固化场景中,如老旧ERP、工业控制中间件所依赖的Ubuntu 12.04(Linux 3.2内核+OpenSSL 1.0.1)环境,必须采用兼容PostgreSQL 9.1的物理复制方案,而非现代逻辑复制;该方案通过streaming replication实现毫秒级同步,并借助hot_standby开启从库只读服务能力,从而支撑报表查

dbp5156的博客 425

零基础8分钟部署OpenClaw:阿里云专用镜像极速落地指南

OpenClaw作为面向开发者的LLM工作流编排工具,其核心价值在于可视化组装API调用、数据清洗与大模型推理等任务。但传统部署依赖Docker、Linux命令行和网络配置,形成显著学习门槛。本文聚焦‘零基础’与‘极速部署’两大关键需求,基于阿里云镜像市场预装镜像,绕过容器编排与手动配置,实现从实例创建到浏览器登录全流程≤8分钟。技术原理上,该镜像本质是运行时快照,集成PostgreSQL、Redis、MinIO及Nginx反向代理,并通过阿里云元数据服务自动完成公网IP绑定、安全组配置与HTTPS证书申请

aebe49167的博客 773

PG 日报|共享内存结构优化,支撑 shared_buffers 在线动态扩容

本次活动汇聚了由 Anupan Roy 带领的印度合作伙伴生态系统成员,重点表彰了表现突出的合作伙伴,并围绕企业级 Postgres 的落地应用展开交流。在 Databricks 内部编程评测中,Opus 5 达到了当前最优水平,在智能体编程、专业知识处理和长链推理方面均有显著提升,且在不同任务强度下都能以更少的 token 实现更强的表现。此版本还新增了 ARM64 Docker 镜像支持,改进了任务管理机制,增强了执行日志功能,并带来了多项稳定性优化。,导致排序变为升序,反转了原本的…

IvorySQL的博客 219

AI Agent与n8n深度集成的7个生产级工具

AI Agent是具备自主规划与工具调用能力的智能体,其核心原理在于意图理解、动作编排与反馈闭环;技术价值体现在将非结构化输入转化为可执行业务动作,显著提升自动化系统的语义理解力与容错韧性。典型应用场景包括智能客服分派、售后工单处理、多源数据协同决策等需跨系统调度与上下文感知的中台级任务。落地难点集中于意图识别失真、工具调用失控、上下文管理混乱及错误恢复缺失——而这7个工具正是为穿透这四大断点而生,全部满足零依赖安装、原子化故障域与强可观测性,专为n8n生产环境深度优化。

weixin_33694620的博客 547

Openclaw低代码智能体编排平台部署与生产实践指南

智能体(Agent)是大模型落地的关键范式,其核心在于将LLM能力、工具调用、状态管理与业务逻辑进行可靠编排。Openclaw作为轻量级低代码智能体工作流引擎,不替代模型,而是提供可视化流程图+YAML配置的编排能力,解决AI应用‘可维护、可审计、可交接’的工程化难题。它基于Docker Compose微服务架构,深度整合PostgreSQL、Redis、Nginx等标准组件,强调环境隔离、健康探活与安全反向代理,适用于中小企业自动化、业务人员自主编排及DevOps统一治理等场景。本文聚焦Openclaw在

技术百科 503

PostgreSQL物化视图实战:从原理到高可用增量刷新

物化视图是关系型数据库中实现查询加速与结果复用的核心机制,其本质是将复杂SQL的执行结果持久化为物理表副本,通过预计算规避重复扫描与聚合开销。它不同于应用层缓存或普通视图,具备事务一致性、索引支持和权限隔离等数据库原生能力。在BI报表、实时看板、风控聚合等场景中,物化视图能将秒级查询压缩至毫秒级,显著降低源表负载。关键技术价值在于以可控的数据延迟(stale time)换取确定性查询延迟(query latency),适用于对一致性要求适中但响应敏感的分析型业务。本文聚焦PostgreSQL物化视图的底层原

weixin_34034261的博客 634

Faraday开源漏洞管理平台:10大核心功能实现智能化安全协作

在DevSecOps和网络安全运营中,漏洞管理是保障软件开发生命周期安全的核心环节。其核心原理在于通过标准化流程与自动化工具,对安全漏洞进行集中发现、跟踪、修复与验证,形成安全闭环。有效的漏洞管理技术能显著提升安全运营效率,降低修复成本,并满足合规审计要求。其应用场景广泛覆盖渗透测试、代码审计、红蓝对抗及日常安全运营。本文以Faraday平台为例,深入解析其如何通过统一工作空间、漏洞聚合去重、可定制工作流等10大功能,解决团队协作中的信息孤岛问题,并自然融入扫描工具集成与RESTful API等热词,实现从

weixin_30357231的博客 365

Ferry工单系统生产级部署:PostgreSQL+Redis+Nginx最佳实践

工单系统是企业服务协同的核心基础设施,其部署质量直接决定IT响应效率与业务连续性。理解工单管理系统部署的本质,需从基础服务组件原理切入:PostgreSQL提供强一致事务与高并发写入能力,Redis支撑实时会话与异步任务调度,Nginx则承担流量分发、安全防护与静态资源托管三重角色。技术价值在于构建可审计、可伸缩、可交接的服务单元,而非简单启动容器。典型应用场景覆盖客服工单流转、电商售后协同、SaaS客户支持等中高频业务,尤其适用于需国产开源、中文友好、轻量可控的中小技术团队。本文聚焦Ferry工单管理系统

weixin_33979203的博客 756

OpenClaw多智能体协作框架:原理、部署与金融分析实战

多智能体系统(MAS)是分布式人工智能的重要分支,通过多个自治Agent的协同工作解决复杂问题。其核心技术包括通信协议、任务分解和共享记忆机制,能够显著提升任务处理效率和系统鲁棒性。OpenClaw作为新兴开源框架,采用分布式代理设计,支持本地模型与云端API混合部署,特别适合金融分析、自动化办公等场景。该框架内置分层记忆管理系统,结合Qwen-7B等大语言模型,可实现从数据采集到报告生成的全流程自动化。测试表明,在16GB内存环境下,7B模型Agent的响应时间可控制在300ms内,而复杂数据分析任务约需

weixin_33688840的博客 408

5个高危SQL陷阱:窗口函数、NULL处理与JOIN逻辑避坑指南

SQL是数据工程的基石,但其声明式语法背后隐藏着执行模型与业务语义的深层错位。理解COUNT(DISTINCT)在多表JOIN后的行膨胀原理、LEFT JOIN中ON与WHERE的过滤时机差异,是保障数据准确性的关键;掌握ROW_NUMBER()分区排序的稳定性机制和NULL在聚合运算中的传播特性,则直接决定查询结果是否可重现、可维护。这些并非冷门技巧,而是线上慢查询、数据偏差与报表飘移的共性根源。本文聚焦真实生产场景,解析窗口函数、空值陷阱、关联逻辑等高频tricky点,提供可验证、可监控、可回滚的工程化

weixin_34228387的博客 455

PostgreSQL物化视图实战:解决BI慢查与高并发查询性能瓶颈

物化视图是数据库层面的预计算结果缓存机制,其核心原理是将复杂查询结果持久化为物理表,从而绕过重复执行JOIN、聚合与窗口函数等高开销操作。相比普通视图(仅存储SQL定义)和应用层缓存(如Redis),它在保证强一致性与SQL兼容性的同时,实现毫秒级响应,特别适用于T+1或分钟级延迟可接受、但查询需支撑高并发自助分析的场景。技术价值体现在查询性能数量级提升、索引与统计信息完整支持、事务级刷新保障数据可靠。典型应用场景包括BI仪表盘加速、报表服务降载、实时看板底座构建。本文聚焦PostgreSQL物化视图的创建

weixin_30326741的博客 448

鸿蒙5应用真机调试超详细教程

本文详细介绍了鸿蒙5应用的真机调试全流程,包括开发环境搭建(安装DevEcoStudio、配置SDK)、真机调试准备(开启USB调试、配置自动/手动签名)、调试实战(生成HAP包、断点调试技巧)以及多设备协同调试方法。文中提供了设备连接、签名配置等常见问题的解决方案,并包含示例代码展示分布式设备联动功能。通过本教程,开发者可快速掌握鸿蒙5应用的调试技能,建议结合官方文档深入学习高级调试技巧。

2301_79392153的博客 2196

多维聚合实战:超越GROUP BY的数据操作核心方法

多维聚合是BI分析与OLAP计算的基础能力,本质是在高维数据空间中进行坐标切片、层级映射与基数可控的汇总运算。其技术难点不在语法本身,而在于维度交叉时的聚合一致性、空值语义对齐、以及JOIN与分组顺序引发的基数漂移。掌握GROUPING SETS、窗口函数和向量化引擎(如DuckDB)可显著提升分析效率与结果可信度;结合星型/雪花建模、行级安全与黄金数据集验证,则能支撑从探索分析到生产报表的全链路落地。本文聚焦真实业务场景中的多维聚合操作,覆盖零售、金融、SaaS等典型行业需求。

weixin_30570101的博客 379

CST Studio Suite安装详细教程(附安装包)CST Studio Suite 2024超详细安装教程

CST Studio Suite 2024安装指南摘要:本文详细介绍了CST Studio Suite 2024电磁仿真软件的下载与安装流程,包含23个图文步骤说明,从解压安装包到配置许可证服务器。重点提示了以管理员身份运行、自定义安装路径等关键步骤,并提供了常见问题解决方案和入门技巧。该软件适用于天线设计、PCB分析等高频电磁场仿真,安装后需通过localhost:27000连接许可证服务器完成激活。

pythonqiang9的博客 1万+

mmpretrain学习笔记

(4)数据集路径 data_root=‘data/imagenet’–》data_root=‘data/Fruits Dataset/images’(7)适当的修改num_workers、epochs、batch_size、lr等。3、训练优化 :梯度下降算法、学习率参数、训练总轮次、学习率变化策略等。my_resnet18_8xb32_in1k.py 完整的配置文件。(6)split=‘train’、split='val’注释掉。2、数据:数据集划分、数据文件路径、批大小、数据增强策略等。

吃葡萄不吐葡萄皮 937

生产级机器学习系统:从Notebook到高可靠AI服务的落地实践

机器学习模型部署不是简单封装predict接口,而是构建具备韧性、可观测性与合规能力的生产系统。其核心在于将算法能力嵌入业务毛细血管,通过契约化接口、分层熔断、特征时间戳治理、ONNX标准化序列化等工程手段,保障P99延迟可控、故障可降级、漂移可感知、决策可审计。尤其在银行、信贷等强监管场景中,模型可解释性、数据血缘追踪和fallback规则引擎已从‘加分项’变为上线准入门槛。本文聚焦真实金融项目中72小时上线攻坚经验,覆盖部署集成、性能优化、漂移监控与治理闭环四大支柱的协同落地。

weixin_33691700的博客 416

2019年电赛D题《简易电路特性测试仪》全过程

2019年全国大学生电子设计大赛D题《简易电路特性测试仪》硬件部分及故障分析

zzhao2580的博客 5万+

多维聚合与数据变形:从GROUP BY到数据立方体的工程实践

多维聚合是现代数据分析的核心能力,本质是面向时间、区域、产品等多维度的数据空间重构,而非简单数值计算。其技术原理涉及维度折叠、聚合保真、坐标系重映射等关键机制,直接决定报表准确性、BI钻取深度与千万级数据的查询性能。在电商、SaaS、金融等场景中,常见问题如NULL语义混淆、先聚合后过滤导致精度坍塌、pivot熔铸丢失维度信息,均源于对数据立方体拓扑结构理解不足。掌握ROLLUP/CUBE语义、PREWHERE剪枝、GROUPING函数及Polars/DuckDB等高效工具链,可系统性规避83%的数据一致性

weixin_34082789的博客 333

【天气雷达】双偏振产品-差分传播相移KDP详解

双偏振产品-差分传播相移KDP详解。

珞瑜的博客 2662

Python 实战:爬取高德地图交通数据(路况拥堵指数分析)

高德地图是由高德软件有限公司开发的一款地图导航产品,提供详细的地图浏览、路线规划、实时路况、公共交通查询等功能。高德地图拥有庞大的用户群体和海量的交通数据,这些数据对于交通管理、城市规划、出行服务等领域具有重要的价值。通过对高德地图交通数据的分析,我们可以了解城市交通的运行状况,识别拥堵路段,预测交通流量,为交通管理部门和出行者提供决策支持。

yansideyucsdn的博客 2685

长任务编排系统选型指南:Airflow、Prefect、Dagster与Temporal深度对比

长任务编排是现代数据与业务系统的核心能力,指对持续数小时乃至数天、依赖复杂、状态需精确追踪且支持人工干预的流程进行可靠调度与治理。其技术本质涉及状态持久化、事件驱动、数据契约与分布式事务一致性等关键原理,直接决定系统的稳定性、可观测性与运维韧性。在ETL流水线、AI训练作业、跨微服务订单履约、金融对账等典型场景中,不同编排框架展现出显著差异:Airflow擅长确定性批处理,Prefect强化开发者对任务生命周期的显式控制,Dagster以数据资产为中心构建可信闭环,Temporal则通过可重放工作流原生支撑

weixin_34414196的博客 254

我在腾讯上构建了一个人人能用的机载适航知识库

当ChatGPT掀起生成式AI的浪潮时,工程师们发现了一个尴尬的现实:询问“如何编写软件合格审定计划”,AI的回答可能充满似是而非的术语,却无法精确关联FDO-178C的对应内容。现在市面上有许多的AI大模型+适航知识库的方案,之前我的文章介绍了一种本地大模型加知识库的解决方法。此外,ima知识库的容量大小可以到30GB(企鹅大气),只要管理好文件的格式,理论上是完全可以把机载适航相关的内容容纳进去的。后续会不断增加适航法规,适航规章,适航标准,适航书籍,适航相关的论文,以及网上其他一些优秀的内容。

qq_41854911的博客 1223

机器学习模型生产化落地:从Notebook到高可靠服务的完整路径

机器学习模型部署不是简单将Jupyter代码转为API,而是面向真实业务场景的工程化转型。其核心在于解决可靠性、可观测性与可维护性三大挑战,关键技术包括模型服务化(如Triton/KServe)、特征服务解耦(Feast)、契约驱动架构(gRPC+Protobuf)以及三位一体可观测性(Prometheus+Jaeger+结构化日志)。通过蓝绿发布、金丝雀灰度、模型包标准化(ONNX+metadata+Docker)和生产就绪检查清单,团队可系统性规避‘上线即故障’陷阱。本文聚焦模型生产化(MLOps Pa

weixin_33722405的博客 422

SAP Joule for Consultants 与 Joule for Developers 全面解读

SAP推出面向不同用户群体的Joule AI助手:开发者版(Joule for Developers)专注于编码提效,嵌入开发工具链辅助生成、重构和测试代码;顾问版(Joule for Consultants)聚焦业务场景,集成SAP云应用知识库,为咨询项目提供方案设计、差距分析和实施指引。两者共享AI底座但功能侧重点不同:开发者版优化技术开发流程,顾问版加速项目交付周期。典型应用场景包括制造业云转型方案制定和ABAP代码迁移,分别展示了两版本在业务决策支持和技术实施中的价值。

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

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

fast-lio2复现跑avia数据集

本文详细介绍了在Windows WSL2中安装Ubuntu 22.04并配置ROS2 Humble环境的全过程,涵盖系统初始化、ROS2安装、Livox雷达驱动编译及FAST-LIO2 ROS2版本的构建与验证。通过完整数据集回放与建图测试,成功实现点云地图生成与轨迹记录,并利用evo工具完成轨迹分析与可视化。最终输出包括累积点云地图、位姿轨迹及实验配置文件,为后续精度评估与复现提供基准。

chase_my_dream的博客 351

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 代价比较的变革——PostgreSQL执行计划干预增强深度解析
下一篇: 从 Postgres 到 AI,Postgres 之父眼中的数据库未来
IvorySQL
博客等级 码龄5年 745粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值