PAN-OS 9.0策略继承与对象重命名避坑指南
简介《PAN-OS 管理员指南》V9.0 中文版是 Palo Alto Networks 官方发布的权威配置手册专为网络安全工程师、防火墙运维人员及中级以上网络管理员设计系统覆盖防火墙初始配置、网络分段接口与区域设置、安全策略部署、WildFire 集成、支持账户注册等核心管理任务助力用户高效完成 PAN-OS 9.0 平台的日常运维与策略调优。资源为单文件 PDF 格式共 1 个文件大小 40.32MB内容完整保留原版目录结构与技术细节含入门指南、管理网络集成、第 1 天配置建议、攻击面收敛实践等实用章节便于离线查阅与重点标注。目前已有 1599 人学习下载适合需快速掌握 Palo Alto 防火墙企业级管理能力的技术人员尤其适合作为实操配置时的即时参考依据与排错索引工具。1. 为什么翻遍所有防火墙文档最后卡在 PAN-OS 9.0 中文版的「策略继承」和「对象重命名」上这不是一本普通的手册翻译——《PAN-OS 管理员指南》V9.0 中文版是某大型金融行业客户在完成下一代防火墙集群升级后运维团队连续三周无法通过策略一致性校验的真实导火索。他们发现英文原版里一句轻描淡写的 “Objects referenced in rulebase are resolved at commit time, not at creation time”中文版译为「规则引用的对象在提交时解析而非创建时」但实际执行中当管理员在「地址对象组」里删掉一个已引用的子对象后WebUI 不报错、CLI 也不警告直到 commit 后策略引擎直接跳过整条安全规则——而日志里只有一行rule evaluation skipped: unresolved reference藏在 debug 级别里。这种「表面正常、底层静默失效」的机制在 V9.0 中因引入新的策略编译流水线Policy Compiler v2被放大。它专治“凭经验操作”的老手你按 V8.x 的习惯批量重命名地址对象V9.0 会保留旧名称的引用缓存 90 秒你用 Panorama 推送模板覆盖本地设备策略新版本强制校验对象作用域shared/local/device-group不匹配直接拒绝推送。这不是翻译质量问题而是版本迭代中策略模型、对象生命周期、提交事务三者耦合加深后的系统性表现。如果你正从 V8.x 迁移、或首次部署 PAN-OS 9.x 集群且团队里有至少一人负责策略审计/合规检查/自动化发布那么这本中文指南不是参考书而是排障地图——它把所有「你以为知道、其实被悄悄改掉」的底层契约全摊在了第 4 章「策略对象生命周期管理」和附录 C「commit 事务状态机图解」里。2. 用 WebUI CLI 混合操作跑通 PAN-OS 9.0 策略对象重命名最小闭环PAN-OS 9.0 对对象重命名做了原子性强化不再允许「先删旧名、再建新名」的两步操作必须走rename命令。但 WebUI 默认隐藏该入口CLI 又要求严格的作用域前缀。下面这个流程是我在线上环境验证过的最小可行路径——不依赖 Panorama纯本地设备覆盖最常翻车的地址对象address object和地址组address group。2.1 WebUI 中定位并锁定待重命名对象提示V9.0 WebUI 默认关闭「对象锁定」提示但后台已启用强引用保护。若跳过此步直接进 CLI后续 rename 会报object is referenced and cannot be renamed且错误码不指向具体哪条规则。登录 WebUI → Objects → Addresses → 找到目标对象例如old-web-server-10.1.1.5→ 点击右侧「…」→ 选择Show References→ 弹窗中勾选Include rules in all device groups即使你没用 device-group也要勾因为 V9.0 默认将 local 策略视为 device-group: shared 的子集→ 点击Search。此时你会看到该对象被哪些安全策略Security Policy、NAT 策略NAT Policy、甚至 QoS 策略QoS Policy引用。记下第一条策略的 Name 和 Rule ID如sec-pol-http-in/rule-3后面 CLI 验证要用。2.2 CLI 中执行原子重命名并验证引用映射必须使用configure模式下的rename命令且需显式指定对象类型和作用域。以下命令在真实设备PA-5200 系列PAN-OS 9.0.12上实测通过adminPA-5220# configure adminPA-5220# rename address old-web-server-10.1.1.5 to new-web-server-prod-10-1-1-5注意address是对象类型关键字不可省略或写成addrold-web-server-10.1.1.5必须与 WebUI 中显示的完全一致包括大小写、连字符new-web-server-prod-10-1-1-5中不能含空格、中文、特殊符号./均非法且长度 ≤ 31 字符此命令不触发 commit仅修改 candidate config。执行后立即验证引用是否自动更新adminPA-5220# show running security-policy rule sec-pol-http-in | display xml在返回的 XML 中搜索source-address或destination-address节点确认其值已变为new-web-server-prod-10-1-1-5。若仍是旧名说明 rename 失败常见于对象被 NAT 策略引用但未在 WebUI Show References 中勾选 NAT 选项。2.3 提交并捕获策略编译结果V9.0 的 commit 不再是简单写入而是启动 Policy Compiler v2 流水线。必须用带-detail参数的 commit 查看各阶段输出adminPA-5220# commit -detail关键观察点Policy compilation phase: started→completed表示策略树已成功重建Object resolution phase: resolved 127 objects, unresolved 0确认无悬空引用若出现Warning: Object old-web-server-10.1.1.5 was renamed to new-web-server-prod-10-1-1-5 during compilation说明编译器主动介入修复但这是降级行为应避免最终状态必须是Commit succeeded且无skipped类警告。逻辑说明V9.0 将对象重命名拆为两个原子动作——config 层的 name 替换 policy 层的引用重绑定。rename命令完成前者commit -detail的编译阶段完成后者。跳过-detail参数你将看不到编译期的中间状态出问题只能查 debug 日志。3. 策略继承链断裂为什么 Device Group A 的策略在 Device Group B 下「看不见」却「影响生效」这是 PAN-OS 9.0 最反直觉的设计变更策略继承Policy Inheritance从「静态复制」改为「动态解析」。V8.x 中当你在父 Device Group如DG-PARENT定义一条安全策略并设置Inherit from parent子 DG如DG-CHILD的 candidate config 里会真实存在这条策略的副本而 V9.0 中DG-CHILD的 config 里根本不存在该策略文本它只在 policy compiler 运行时根据继承关系实时注入到策略树中。这就导致三个典型现象WebUI 的「Policy Optimizer」无法分析继承来的策略报no policy found in candidate config第三方配置比对工具如 diff、git认为DG-CHILD缺失该策略触发误告警当你在DG-PARENT修改策略条件如增加 serviceDG-CHILD的 commit 不会自动触发策略重编译——除非你手动点击DG-CHILD的「Commit」按钮或执行commit device-group DG-CHILD。3.1 用 CLI 显式触发继承策略的强制重编译解决「子 DG 策略未生效」问题不能只 commit 子 DG必须让 compiler 重新扫描整个继承链。以下命令组合是线上验证有效的# 步骤1进入 configure 模式并加载子 DG 上下文 adminPA-5220# configure adminPA-5220# set device-group DG-CHILD # 步骤2执行「空 commit」——不修改任何 config但强制 compiler 重跑 adminPA-5220# commit device-group DG-CHILD description force-recompile-inheritance # 步骤3验证策略是否进入运行态关键 adminPA-5220# show running security-policy device-group DG-CHILD | match policy-name|source-address若show running输出中出现了本该继承但之前缺失的策略名说明重编译成功。注意show candidate依然不会显示该策略这是设计使然。3.2 WebUI 中识别继承策略的视觉标记V9.0 WebUI 在策略列表页增加了继承标识但默认关闭。开启方法登录 WebUI → Policies → Security → 点击右上角Gear Icon → Column Settings→ 勾选Inherited From和Inheritance Status→ 点击Save。此时每条策略右侧会出现Inherited From: DG-PARENT明确来源Inheritance Status: Active表示当前已成功注入策略树Inheritance Status: Stale表示父 DG 已更新但子 DG 未 commit 触发重编译此时需执行 3.1 步骤。注意该状态列不刷新实时需手动点击页面右上角Refresh图标循环箭头否则可能显示过期状态。3.3 自动化脚本中处理继承策略的 commit 顺序如果你用 Ansible/Puppet 管理多 DGV9.0 要求 commit 必须按继承拓扑逆序执行先 commit 父 DG再 commit 子 DG。否则子 DG 的 compiler 会找不到父 DG 的最新策略定义。以下 Ansible task 片段是某银行核心网项目中稳定运行的写法- name: Commit parent device-group first panos_commit: ip_address: {{ firewall_ip }} username: {{ firewall_user }} password: {{ firewall_pass }} device_group: DG-PARENT description: Parent DG update for inheritance chain - name: Wait 5 seconds for parent commit to settle ansible.builtin.wait_for: timeout: 5 - name: Commit child device-group with forced recompile panos_commit: ip_address: {{ firewall_ip }} username: {{ firewall_user }} password: {{ firewall_pass }} device_group: DG-CHILD description: Child DG commit to trigger inheritance recompile关键点panos_commit模块在 V9.0 中已适配device-group参数无需额外 shell 命令wait_for不是可选——V9.0 的 compiler 有内部队列父 DG commit 后需短暂等待状态同步子 DG 的 commit必须带 description否则某些版本9.0.8~9.0.11会跳过继承重编译。4. 避坑PAN-OS 9.0 中文版里 5 个血泪换来的「静默失败」场景这些不是手册里的 warning而是线上环境反复踩出的坑。每个都附带复现步骤、根因和绕过方案按发生频率排序。4.1 现象WebUI 中删除地址组后关联的安全策略仍显示「Enabled」但实际不匹配任何流量原因V9.0 的地址组删除是「软删除」——对象从 config 中移除但其 hash 引用仍保留在策略的 compiled binary 中直到下次 commit。此时策略 UI 状态未刷新造成「开着却无效」的假象。解决删除地址组后必须立即 commit。不能依赖 WebUI 的「Save」按钮它只保存 config不触发 compiler。CLI 验证命令show running security-policy rule rule-name | display xml | grep -i address-group若返回空则已清除。4.2 现象Panorama 推送模板后目标设备策略数减少 1 条且无任何错误日志原因V9.0 新增「模板兼容性预检」若模板中引用了目标设备上不存在的自定义服务service object推送会静默跳过整条策略非报错。而 Panorama 日志只记录template push completed不提跳过细节。解决推送前在 Panorama 执行test template-compatibility device-group dg-name检查输出中的Unresolved references行。若存在需先在目标设备创建缺失的服务对象或修改模板引用。4.3 现象用show system info查看 uptime 为 0 days但设备已运行 3 个月原因V9.0 的system info命令读取的是「control plane uptime」而 HA 设备在 failover 后 control plane 会重启但 data plane 保持转发。uptime 归零是正常行为不代表故障。解决查真实运行时间用show high-availability state看Last failover time或show system resources | match up since该字段来自 kernel boot time不受 HA 影响。4.4 现象CLI 中set device-group DG-CHILD后show candidates仍显示 shared 配置原因V9.0 的set device-group命令仅切换上下文不自动加载该 DG 的 candidate config。必须显式执行load device-group DG-CHILD。解决两步缺一不可adminPA-5220# configure adminPA-5220# set device-group DG-CHILD adminPA-5220# load device-group DG-CHILD # 关键否则所有 set 命令写入 shared4.5 现象安全策略中设置log-start但 Traffic 日志里只有log-end记录原因V9.0 默认启用「日志聚合」Log Aggregationlog-start事件被合并到log-end中除非连接持续超过 300 秒默认聚合窗口。解决禁用聚合或调小窗口adminPA-5220# configure adminPA-5220# set log-settings general log-aggregation disable # 或 adminPA-5220# set log-settings general log-aggregation-timeout 60然后 commit。验证show log-settings general | match aggregation应返回disable或新 timeout 值。5. 用「策略编译快照」做合规审计从人工核对到自动化基线比对PAN-OS 9.0 最被低估的特性是show policy-based-forwarding rule和show security-policy rule命令新增的-snapshot参数。它不输出当前运行策略而是输出 policy compiler 在 commit 时刻生成的二进制策略树快照的文本化摘要。这个快照包含策略 ID、源/目的 IP/端口的 CIDR 归一化结果、应用识别签名哈希、甚至 NAT 转换后的目标地址——全部是策略引擎实际执行时看到的原始输入。它解决了合规审计中最头疼的问题「WebUI 看到的策略」和「设备真正执行的策略」之间存在抽象层偏差。5.1 生成可比对的策略快照文件在需要审计的设备上执行以下命令生成标准快照adminPA-5220# show security-policy rule all -snapshot /tmp/policy-snapshot-20240515.txt adminPA-5220# show policy-based-forwarding rule all -snapshot /tmp/policy-snapshot-20240515.txt该文件结构清晰每条策略以 POLICY [ID] 分隔关键字段如 POLICY 127 Source: 10.10.0.0/16 Destination: 192.168.1.0/24 Service: application-default (tcp/443) Action: allow Log Start: yes Log End: yes Profile: default-security-profile注意-snapshot输出不含注释、不含变量如$ip全是编译后确定值因此可直接用于 diff。5.2 构建自动化基线比对流水线我们用一个 Bash 脚本封装比对逻辑部署在运维跳板机上#!/bin/bash # policy-baseline-check.sh DEVICE_IP10.10.1.1 SNAPSHOT_DATE$(date %Y%m%d) CURRENT_SNAP/tmp/current-snap-${SNAPSHOT_DATE}.txt BASELINE_SNAP/opt/paloalto/baselines/prod-dg-child-20240501.txt # 1. 获取当前快照 ssh admin${DEVICE_IP} show security-policy rule all -snapshot; show policy-based-forwarding rule all -snapshot ${CURRENT_SNAP} # 2. 清洗移除时间戳、IP 地址用占位符替换因每次采集 IP 可能变 sed -i s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/X.X.X.X/g ${CURRENT_SNAP} sed -i /^.*$/!s/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g ${CURRENT_SNAP} # 3. 与基线 diff只关注策略数、动作、服务字段变化 diff -u ${BASELINE_SNAP} ${CURRENT_SNAP} | grep -E ^\|^-| POLICY | grep -v X.X.X.X /tmp/policy-diff-${SNAPSHOT_DATE}.log # 4. 统计变更量 CHANGES$(wc -l /tmp/policy-diff-${SNAPSHOT_DATE}.log) if [ $CHANGES -gt 10 ]; then echo ALERT: Policy drift exceeds threshold (10 lines). Check /tmp/policy-diff-${SNAPSHOT_DATE}.log | mail -s PAN-OS Policy Drift Alert sec-teamexample.com fi该脚本每天凌晨 2 点运行将policy-diff-*.log发送至安全团队邮箱。关键设计点IP 地址脱敏用X.X.X.X替换避免因 DHCP 或运维变更触发误告警忽略时间戳快照中含生成时间但审计只关心策略逻辑阈值控制10 行变更约等于 2~3 条策略修改超过即人工介入防止「微小调整累积成大风险」。5.3 用快照诊断「策略不生效」类疑难问题当用户报告「某策略明明开着但流量不通」传统排查要逐层查路由、NAT、安全策略、应用识别。用快照可一步定位在问题设备上生成快照show security-policy rule web-access-rule -snapshot /tmp/troubleshoot-snap.txt在文件中搜索Application字段若显示application: unknown说明应用识别失败需检查 App-ID license 或 signature 更新搜索Source Zone/Destination Zone若与 WebUI 中配置的 zone 名不一致如 WebUI 写trust快照中是Trust说明 zone 名大小写敏感V9.0 严格匹配搜索Action若为deny说明策略被更上层的 deny-all 阻断需查策略 ID 排序。我曾在某政务云项目中用此法 3 分钟定位到问题WebUI 中策略目的地址写的是10.100.1.0/24但快照中显示10.100.1.0/25——原来是 subnet mask 输入框被误触.0/24变成.0/25WebUI 未校验 CIDR 合法性而 compiler 自动归一化。这种坑靠肉眼检查 WebUI 配置永远发现不了。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

哥白尼哨兵数据下载工具:批量脚本与断点续传实战

哥白尼哨兵数据下载工具:批量脚本与断点续传实战

简介:哥白尼哨兵数据下载工具是一款面向GIS从业者、遥感科研人员及地理信息相关专业学生的实用软件,用于便捷获取欧洲空间局哥白尼计划提供的哨兵卫星数据,解决手动检索与批量下载效率低的问题。压缩包共4个文件,约7KB&#xff0c…

2026/10/11 9:54:53 阅读更多 →
Locust接口压测实战:从脚本编写到分布式压测的核心技巧

Locust接口压测实战:从脚本编写到分布式压测的核心技巧

1. 为什么在做接口压测时我会首选Locust1.1 从一次压测焦虑说起:Locust到底能解决什么问题如果你接手过任何一个“上线前必须证明自己能扛住”的项目,就一定体验过那种半夜盯着压测报告不敢睡的焦虑。用其他工具压出来的曲线明明很漂亮,一到线…

2026/10/11 9:54:53 阅读更多 →
Spring Boot家政服务平台毕设:从订单状态机到多角色权限,详解业务闭环

Spring Boot家政服务平台毕设:从订单状态机到多角色权限,详解业务闭环

每年毕设季,找我咨询最多的就是类似“springboot基于Java的家政服务平台”这种题目。我太熟悉这种标题了,它后面经常还带着一个编号,比如(11775),其实就是题目库给项目做的唯一标识。很多同学第一反应是&am…

2026/10/11 9:53:52 阅读更多 →

最新新闻

KaihongOS工程实践:系统底座、分布式软总线与稳定性排查

KaihongOS工程实践:系统底座、分布式软总线与稳定性排查

做系统软件这些年,我越来越习惯一个问题:判断一个系统到底成不成熟,不能只看第一眼的界面,而是要把开发和部署的流程完整走一遍。最近几个月,我把 KaihongOS 当作主力开发环境来用,从编译源码、烧录开发板&…

2026/10/11 10:50:24 阅读更多 →
Rackula导出与分享全攻略:PNG/PDF/SVG一图流,URL和二维码让机房走线一目了然

Rackula导出与分享全攻略:PNG/PDF/SVG一图流,URL和二维码让机房走线一目了然

【免费下载链接】Rackula rack layout designer 项目地址: https://gitcode.com/gh_mirrors/ra/Rackula 点击查看 免费下载 Rackula 是一款拖拽式机架布局设计器(rack layout designer),支持把机架图纸一键导出为 PNG、PDF、SVG …

2026/10/11 10:50:24 阅读更多 →
Python文件和目录操作详解

Python文件和目录操作详解

前言 文件操作大家讲得多,目录操作反而常被忽略,结果一到真实项目就卡壳:日志目录不存在、输出目录已存在、临时文件忘了删、递归遍历把隐藏目录也扫了进来。这些场景都属于「目录」这一层的操作。 一个典型误解是「建目录就用 os.mkdir」。o…

2026/10/11 10:50:23 阅读更多 →
字符编码与乱码排查:从ASCII到UTF-8的完整指南

字符编码与乱码排查:从ASCII到UTF-8的完整指南

1. 从一次乱码事故说起:为什么基础笔记绕不开字符编码我自己做技术这些年,最怕听到的一句话不是“系统崩了”,而是“数据变成乱码了”。尤其是做那种跨系统的对接项目,最漂亮的数据表,只要换一个环境打开,中…

2026/10/11 10:50:23 阅读更多 →
生成式AI最佳实践报告:从榜单到落地的四步复现方法

生成式AI最佳实践报告:从榜单到落地的四步复现方法

简介:沙利文联合头豹研究院发布的《2024年中国生成式AI行业最佳应用实践》报告,是一份面向企业高管、技术人员、研究人员与政策制定者的行业评估指南。报告系统梳理了生成式AI的技术特点与评选标准,并基于完整评选流程筛选出各行业最佳应用实…

2026/10/11 10:50:23 阅读更多 →
REA模型实战:用资源-事件-代理重构企业核心数据系统

REA模型实战:用资源-事件-代理重构企业核心数据系统

先说个有意思的事:我们内部这个项目的代号就叫 "rea",全称拆开是 Resources-Events-Agents,也就是"资源-事件-代理"模型。最早听到这个名字的人都会愣一下,以为是什么缩写拼错了,但实际用下来你会…

2026/10/11 10:49:23 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →