建造者模式详解及其在自动驾驶场景的应用举例(以C++代码实现)
模式定义
建造者模式(Builder Pattern)是一种创建型设计模式,用于分步构造复杂对象。该模式将对象构建过程与其表示分离,支持通过相同构建过程生成不同表现形式,特别适合需要灵活配置的自动驾驶车辆系统搭建场景。
自动驾驶应用场景
典型的建造者模式应用场景包括:
- 车辆配置管理:灵活组合传感器套件、计算单元和算法参数
- 场景配置生成:构建不同测试场景(城市道路/高速公路/极端天气)
- 系统参数包:创建包含多个子系统配置的参数集合
本文以自动驾驶车辆配置管理为例进行实现。
C++代码实现(含详细注释)
#include <iostream>
#include <memory>
#include <vector>
#include <unordered_map>// ---------------------------- 产品类 ----------------------------
class VehicleConfig {
public:// 配置参数类型using ParameterMap = std::unordered_map<std::string, float>;void addSensor(const std::string& sensor) {sensors_.push_back(sensor);}void setComputeUnit(const std::string& unit) {compute_unit_ = unit;}void setAlgorithmParam(const std::string& key, float value) {algorithm_params_[key] = value;}void display() const {std::cout << "\n=== 车辆配置详情 ===" << std::endl;std::cout << "传感器系统:" << std::endl;for (const auto& sensor : sensors_) {std::cout << " - " << sensor << std::endl;}std::cout << "\n计算单元:" << compute_unit_ << std::endl;std::cout << "\n算法参数:" << std::endl;for (const auto& [k, v] : algorithm_params_) {std::cout << " " << k << " = " << v << std::endl;}}private:std::vector<std::string> sensors_; // 传感器列表std::string compute_unit_; // 计算单元型号ParameterMap algorithm_params_; // 算法参数集合
};// ---------------------------- 抽象建造者 ----------------------------
class ConfigBuilder {
public:virtual ~ConfigBuilder() = default;virtual void reset() = 0;virtual void buildSensors() = 0;virtual void buildComputeUnit() = 0;virtual void buildAlgorithmParams() = 0;std::unique_ptr<VehicleConfig> getResult() {return std::move(config_);}protected:std::unique_ptr<VehicleConfig> config_; // 产品对象
};// ---------------------------- 具体建造者 ----------------------------
// 豪华型配置建造者
class LuxuryBuilder : public ConfigBuilder {
public:void reset() override {config_ = std::make_unique<VehicleConfig>();}void buildSensors() override {config_->addSensor("128线激光雷达");config_->addSensor("800万像素双目相机");config_->addSensor("4D毫米波雷达");config_->addSensor("超声波雷达阵列(12个)");}void buildComputeUnit() override {config_->setComputeUnit("NVIDIA Orin X 2×");}void buildAlgorithmParams() override {config_->setAlgorithmParam("感知频率", 30.0f);config_->setAlgorithmParam("定位精度", 0.01f);config_->setAlgorithmParam("最大预测距离", 150.0f);}
};// 经济型配置建造者
class EconomyBuilder : public ConfigBuilder {
public:void reset() override {config_ = std::make_unique<VehicleConfig>();}void buildSensors() override {config_->addSensor("64线激光雷达");config_->addSensor("200万像素单目相机");config_->addSensor("常规毫米波雷达");config_->addSensor("超声波雷达(8个)");}void buildComputeUnit() override {config_->setComputeUnit("华为MDC 610");}void buildAlgorithmParams() override {config_->setAlgorithmParam("感知频率", 15.0f);config_->setAlgorithmParam("定位精度", 0.1f);config_->setAlgorithmParam("最大预测距离", 100.0f);}
};// ---------------------------- 指导者类 ----------------------------
class ConfigDirector {
public:void setBuilder(ConfigBuilder* builder) {builder_ = builder;}void constructStandardConfig() {builder_->reset();builder_->buildSensors();builder_->buildComputeUnit();builder_->buildAlgorithmParams();}void constructCustomConfig(bool high_end_sensor) {builder_->reset();if(high_end_sensor) {builder_->buildSensors();} else {// 自定义传感器配置...}builder_->buildComputeUnit();builder_->buildAlgorithmParams();}private:ConfigBuilder* builder_ = nullptr;
};// ---------------------------- 客户端使用 ----------------------------
int main() {ConfigDirector director;// 构建豪华型配置LuxuryBuilder luxury_builder;director.setBuilder(&luxury_builder);director.constructStandardConfig();auto luxury_config = luxury_builder.getResult();luxury_config->display();// 构建经济型配置EconomyBuilder economy_builder;director.setBuilder(&economy_builder);director.constructStandardConfig();auto economy_config = economy_builder.getResult();economy_config->display();// 构建自定义配置director.setBuilder(&luxury_builder);director.constructCustomConfig(true);auto custom_config = luxury_builder.getResult();custom_config->display();return 0;
}
代码解析
1. 产品类设计
class VehicleConfig { /*...*/ };
- 配置存储:使用容器存储传感器列表和算法参数
- 显示方法:提供配置可视化接口
2. 建造者体系
class ConfigBuilder { /*...*/ }; // 抽象接口
class LuxuryBuilder : public ConfigBuilder { /*...*/ }; // 具体实现
- 分步构建:明确划分传感器、计算单元、算法参数配置步骤
- 灵活扩展:新增配置类型只需添加新建造者
3. 指导者类
class ConfigDirector { /*...*/ };
- 构建流程控制:封装标准配置流程
- 支持自定义:提供特殊配置流程接口
运行结果
=== 车辆配置详情 ===
传感器系统:- 128线激光雷达- 800万像素双目相机- 4D毫米波雷达- 超声波雷达阵列(12个)计算单元:NVIDIA Orin X 2×算法参数:感知频率 = 30定位精度 = 0.01最大预测距离 = 150=== 车辆配置详情 ===
传感器系统:- 64线激光雷达- 200万像素单目相机- 常规毫米波雷达- 超声波雷达(8个)计算单元:华为MDC 610算法参数:感知频率 = 15定位精度 = 0.1最大预测距离 = 100=== 车辆配置详情 ===
...(自定义配置输出)
模式优势分析
在自动驾驶中的价值
-
配置灵活性
- 支持快速切换不同配置方案(豪华型/经济型/测试型)
- 允许部分配置覆盖(如仅升级传感器套件)
-
构建过程可控
- 确保必要配置项完整(如必须包含定位传感器)
- 支持配置参数校验
-
代码可维护性
- 隔离复杂配置逻辑与业务代码
- 新增配置类型不影响现有系统
扩展改进建议
1. 配置校验机制
void validateConfig() {if (sensors_.empty()) {throw std::runtime_error("必须配置至少一个传感器");}// 其他校验规则...
}
2. 配置持久化
void saveToFile(const std::string& path) {// 将配置保存为JSON/YAML文件
}
3. 动态配置加载
class DynamicBuilder : public ConfigBuilder {void buildSensors() override {// 从配置文件加载传感器配置}
};
建造者模式总结
核心价值:
- 分步构建复杂配置对象
- 隔离构建过程与最终表示
- 支持多种配置变体生成
适用场景:
- 自动驾驶车辆多版本配置管理
- 测试场景参数组合生成
- 动态系统参数包构建
本实现展示了建造者模式在自动驾驶配置管理中的典型应用,通过将复杂配置对象的构建过程模块化,为创建灵活可扩展的自动驾驶系统提供了可靠的架构支持。该模式是构建复杂参数化系统的关键设计手段,特别适合需要支持多配置方案的自动驾驶开发场景。
相关文章:
建造者模式详解及其在自动驾驶场景的应用举例(以C++代码实现)
模式定义 建造者模式(Builder Pattern)是一种创建型设计模式,用于分步构造复杂对象。该模式将对象构建过程与其表示分离,支持通过相同构建过程生成不同表现形式,特别适合需要灵活配置的自动驾驶车辆系统搭建场景。 自…...
2025年数字媒体设计与文化交流国际会议 (DMACE 2025)
2025 International Conference on Digital Media Art and Cultural Exchange 【一】、大会信息 会议简称:DMACE 2025 大会地点:中国烟台 收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等 【二】会议…...
【MCP Node.js SDK 全栈进阶指南】利用TypeScript-SDK打造高效MCP应用
前言 在MCP(模型上下文协议)的世界中,SDK(软件开发工具包)是开发者构建应用的重要工具。作为MCP生态中最活跃的SDK之一,TypeScript-SDK提供了简洁而强大的接口,帮助开发者快速构建高效的MCP应用。本文将带你深入了解MCP的TypeScript-SDK,掌握其核心概念和使用方法,让…...
LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
Kotlin 支持 | LangChain4j Kotlin 是一种面向 JVM(及其他平台)的静态类型语言,能够实现简洁优雅的代码,并与 Java 库无缝互操作。 LangChain4j 利用 Kotlin 扩展和类型安全构建器来增强 Java API,为其增添特定于 Ko…...
搜索引擎的高级语法
文章目录 精确搜索:双引号站内搜索:site通配符搜索:*减号缩小范围:-文档搜索:filetypeURL搜索: inurl标题搜索:intitle正文搜索:intext参考链接 精确搜索:双引号 “ ” …...
探秘 SenseGlove Nova 2力反馈手套,解锁 VR 键盘交互新方式
在虚拟现实(VR)技术不断发展的现今,键盘交互体验的优化成为众多科研人员关注的重点。今天,让我们一同走进 Heilbronn 大学与 SenseGlove 的合作项目,探寻 SenseGlove Nova 2 力反馈手套为 VR 环境中的键盘交互带来的新…...
品牌如何通过朝日新闻出海日本?——某企业日本媒体发稿实战
文 | 言同数字亚太传播实验室 一、日本市场的隐形门槛:中国品牌的三大痛点 案例背景: 某中国灵芝保健品企业(代号"ForestLife"),产品虽获中国/欧盟有机认证,但在日本市场面临: 认知…...
安全文件共享实际上是什么样的呢?
通过即时通讯应用共享敏感信息的安全漏洞由来已久,且令人担忧。很少有事件像最近曝光的美国高级政客通过热门即时通讯应用 Signal 泄露军事攻击计划那样引起公众关注。 此类备受瞩目的漏洞凸显了全球各组织迫切需要重新评估其安全交换机密数据的方法。对于许多机密…...
深入探索Spark-Streaming:从基础到核心编程
在大数据实时处理领域,Spark-Streaming凭借其强大功能脱颖而出。它是Spark生态系统中处理流式数据的利器,支持Kafka、Flume等多种数据输入源,能利用Spark的map、reduce等原语处理数据,处理结果可存储于HDFS、数据库等。 Spark-Str…...
深度学习3.6 softmax回归的从零开始实现
本章节引入3.5的数据集 import torch from IPython import display from d2l import torch as d2lbatch_size 256 #迭代器批量 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size)3.6.1 初始化模型参数 num_inputs 784 # 权重矩阵长度 num_outputs 10 # 类别…...
使用Spark-TTS-0.5B模型,文本合成语音
文章目录 背景模型介绍拉取开源代码conda下载与使用项目环境配置修改部分代码文件进阶玩法小结背景 ~~~~ 由于本博主遇到了需要文本转语音的相关需求,经过多方面的调研和研究,市面上的实现这个需求的方法有很多,可以直接通过调取api的方式实现,文本转语音。也可以…...
08前端项目----升序/降序
升序/降序 vue实现升序/降序服务器处理 vue实现升序/降序 用vue实现升序/降序,以及css绘制三角形 <div class"sui-navbar"><div class"navbar-inner filter"><ul class"sui-nav"><li class"active"&g…...
Dataway在Spring Boot中的引入以及使用教程
Dataway是Hasor生态中的接口配置工具,能帮助开发者快速配置数据接口。它支持DataQL和SQL两种语言模式,可将SQL转换为DataQL执行,简化数据查询与交互,无需编写大量代码。接口配置完成后,可进行自测、冒烟测试࿰…...
百度搜索 API 相比于爬虫的效率提升、价格及如何注册使用
使用百度搜索 API 进行数据查询,相比于爬虫(selenium)速度提升的幅度取决于几个因素: 1. 摆脱页面渲染(Selenium) Selenium 通过控制浏览器来模拟用户行为,加载网页并渲染页面。每次请求都需要…...
Docker 中运行 JAR 文件
文章目录 步骤 1:准备文件结构步骤 2:编写 Dockerfile步骤 3:构建 Docker 镜像步骤 4:运行容器常见问题解决Q1:容器启动后立即退出Q2:时区不一致Q3:依赖外部服务(如MySQL)…...
MacOS 10.15上能跑大语言模型吗?
MacOS 10.15上能跑大语言模型吗? 下载安装Ollama运行大语言模型引申出的问题 MacOS 10.15.7(发布于2020年9月)作为已经发布了将近5年的系统版本能够运行当今流行的大语言模型吗?这篇文章简要介绍了在MacOS 10.15上通过Ollama运行d…...
分布式之易混淆概念
昨天写UE写的破防了,忘了写文章,今天补一下分布式的一些概念。😚 在软件架构领域,微服务、领域驱动设计(DDD)和分布式系统是三个高频且容易被混淆的概念。许多开发者误以为它们是“同一件事的不同说法”&a…...
DeepSeek开源引爆AI Agent革命:应用生态迎来“安卓时刻”
开源低成本:AI应用开发进入“全民时代” 2025年初,中国AI领域迎来里程碑事件——DeepSeek开源模型的横空出世,迅速在全球开发者社区掀起热潮。其R1和V3模型以超低API成本(仅为GPT-4o的2%-10%)和本地化部署能力&#x…...
Anaconda 与 Miniconda 的差异详解
Anaconda 与 Miniconda 的差异详解 Anaconda 和 Miniconda 都是 Python 数据科学领域常用的发行版管理工具,它们都基于 conda 包管理系统,但在设计定位和功能组成上有显著区别。 核心差异对比 特性AnacondaMiniconda安装包大小较大 (3GB)较小 (100MB左…...
STM32 中断系统深度剖析
在嵌入式系统开发领域,STM32 系列微控制器凭借其强大的性能和丰富的资源被广泛应用。中断系统作为 STM32 的关键特性之一,能够极大地提升系统的实时响应能力和多任务处理效率。本文将基于 STM32F4 系列芯片,深入剖析中断与外设中断的原理、配…...
List findIntersection getUnion
List findIntersection & getUnion 求两个列表的交集和并集 package zwf;import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List;/*** 列表工具类* * author ZengWenFeng* date 2025.04.22* mobile 13805029595* email 117791303qq.com*/ p…...
【微服务】SpringBoot制作Docker镜像接入SkyWalking详解
目录 一、前言 二、SkyWalking介绍 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整体架构 2.4 SkyWalking主要工作流程 三、前置准备 3.1 搭建SkyWalking服务 3.1.1 下载安装包 3.1.2 上传服务器目录 2.1.3 数据库持久化配置说明 3.1.4 启动skywalk…...
豪越科技消防公车管理系统:智能化保障应急救援效率
近期消防车辆管理暴露出的问题,凸显了传统管理模式的不足。在应急救援任务日益繁重的背景下,消防部门对公车管理提出了更高要求。豪越科技针对消防行业特殊需求,研发了专业的消防公车管理系统,通过"线上提交申请-线上审批-线…...
vscode本地docker gdb调试python
背景 最近在部署测试一个工程,不想配环境,拉官方镜像下来跑的,不幸地是,程序运行有点问题。想要debug一下,又不想在终端gdb,想要在vscode中点点点,所以有了下面的一顿配置。 vscode python常用…...
Electron使用WebAssembly实现CRC-32 原理校验
Electron使用WebAssembly实现CRC-32 原理校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-32 原理格式校验的方式。 CRC-32 原理校验函数WebAssembly源文件 C语言实现C…...
Java求职面试:从Spring Boot到微服务的全面考核
面试场景: 在某互联网大厂的面试室内,面试官严肃地坐在桌子后面,面前是几本厚厚的技术书籍。而我们的主人公,搞笑的水货程序员赵大宝,则带着他标志性的微笑走进了房间。 第一轮提问: 面试官:…...
Electron主进程渲染进程间通信的方式
在 Electron 中,主进程和渲染进程之间的通信主要通过 IPC(进程间通信)机制实现。以下是几种常见的通信方式: 1. 渲染进程向主进程发送消息(单向) 渲染进程可以通过 ipcRenderer.send 向主进程发送消息&am…...
Spring Boot 主模块 spring-boot 核心技术解析:从启动类到内嵌容器的无缝支持
在现代企业级应用的开发中,构建高效、简洁的应用框架是至关重要的。Spring Boot 作为 Spring 生态系统的重要一员,凭借其“约定优于配置”的理念,极大简化了传统 Spring 应用的开发过程。通过内嵌的容器支持、自动配置功能以及灵活的外部化配…...
盈达科技GEO解决方案:破解AI时代品牌增长困局
盈达科技GEO解决方案:破解AI时代品牌增长困局 ——全域优化策略助力企业抢占生成式AI流量高地 一、客户痛点:AI重构规则下的三大生存危机 1. 信任危机:AI放大负面杀伤力 财务隐患:上市公司因财报误读导致股价波动 产品质量&…...
安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景
随着科技的不断进步,增强现实(AR)技术逐渐在多个领域展现出其独特的优势,尤其是在安保和安防方面。AR眼镜凭借其先进的功能,在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…...
蓝牙 6.0 发布,解锁无线科技新可能
在5G和Wi-Fi 7高速发展的时代,蓝牙技术始终以独特优势深度融入日常生活。从无线耳机到智能家居,它凭借低功耗、高兼容的特性,悄然连接各类智能设备,打造无缝的数字生活体验。无论是聆听音乐、智能门禁还是健康监测,蓝牙…...
redis数据类型-地理空间GEO
redis数据类型-地理空间GEO 文档 redis单机安装redis常用的五种数据类型redis数据类型-位图bitmapredis数据类型-基数统计HyperLogLog 说明 官网操作命令指南页面:https://redis.io/docs/latest/commands/?nameget&groupstring 地理空间:GEO …...
2023蓝帽杯初赛内存取证-5
直接查找关键词”xlsx“,但是使用filescna失败了,换成mftparser倒是成功: vol.py -f memdump.mem --profile Win7SP1x64 filescan | grep -E "xlsx" vol.py -f memdump.mem --profile Win7SP1x64 mftparser | grep -E "xlsx&…...
安宝特方案 | 医疗AR眼镜,重新定义远程会诊体验
【AR眼镜:重新定义远程会诊体验】 在快速发展的医疗领域,安宝特医疗AR眼镜以其尖端技术和创新功能,引领远程会诊的未来,致力于为为医生和患者带来更高效、精准和无缝的医疗体验。 探索安宝特医疗AR眼镜如何在医疗行业中引领新风潮…...
RT-Thread学习笔记(三)
RT-Thread学习笔记 时钟管理时钟节拍获取系统节拍定时器系统定时器初始化定时器工作机制动态创建定时器静态创建定时器定时器控制高精度延时函数 时钟管理 操作系统需要通过时间来规范其任务 时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间…...
【HTTPS协议原理】数据加密、如何防止中间人攻击、证书和签名、HTTPS完整工作流程
⭐️个人主页:小羊 ⭐️所属专栏:Linux网络 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 数据加密常见的加密方式数据摘要方案一:仅使用对称加密方案二:仅使用非对称加密方案三:双…...
Springboot 集成 RBAC 模型实战指南
RBAC 模型核心原理 详情可参考之前的笔记:https://blog.csdn.net/qq_35201802/article/details/146036789?spm1011.2415.3001.5331 RBAC 定义与优势 RBAC(Role-Based Access Control,基于角色的访问控制)** 是一种通过角色关联…...
C++继承(最详细)
目录 1.继承的概念以及定义 1.1 继承的概念 1.2 继承的定义 编辑 2.继承中的作用域 3.基类和派生类间的转换 4.派生类的默认成员函数 5.实现不被继承的类 6.継承与友元 编辑 7.继承与静态成员 8.多继承及其菱形继承问题 8.2 虚继承 8.3 来看一个小题 9.继承…...
【使用Plink检测ROH问题查找】为什么检测ROH参数不一样,FROH近交系数结果差异很大?
为什么检测ROH参数不一样,结果差异很大? 结果 基于ROH检测的结果与参数设置密切相关。参数的改变(对应近交系数改变)可能会对结果产生很大影响。 原因 ROH分析缺乏共识标准,这种缺乏共识将导致结果偏倚,…...
mybatis mapper.xml中使用枚举
重点:application.propertis配置类 #TypeEnumHandler 这个类的包名,不是全路径 mybatis.type-handlers-packagecom.fan.test.handler两个枚举类: public enum StatusEnum {DELETED(0),ACTIVE(1);private final int code;StatusEnum(int cod…...
探索科技的边界:代理IP与汽车产业链的创新之旅
目录 一、代理IP:汽车产业的"数字放大镜" 二、创新应用场景:从实验室到量产线 三、技术挑战与进化方向 四、未来图景:车联网时代的"数字血管" 结语:重构产业认知的"数字齿轮" 在数字化浪潮席卷…...
单个或批量实现-提取PDF文档中的合同号和姓名并按“合同号_姓名”格式重命名文件。
第一、单个PDF文件命名格式: 提取PDF文档中的合同号和姓名并按“合同号_姓名”格式重命名文件 import pdfplumber import re import osdef extract_contract_info(pdf_path):with pdfplumber.open(pdf_path) as pdf:for page in pdf.pages:text page.extract_tex…...
虚拟机的网络配置
第一章 配置网络(注意NAT类型) 1. 在VMware中配置 虚拟网络编译器 1) 点击编辑 就会出现 虚拟网络编译器 并点击(要再虚拟机关机的情况下进行) 2)点击右下角的 更改设置 再点击 VMnet 红色框里192.168.x…...
JAVA设计模式——(二)组合模式
JAVA设计模式——(二)组合模式 原理解释实现定义规范接口定义主干定义分支定义叶子测试代码 优势 原理 组合模式用于描述对象在“整体-部分”中的关系,用户对单个对象和组合对象的使用具有一致性。 组合模式中由于单个对象和组合对象的使用…...
【数据结构和算法】5. 堆栈和队列
本文根据 数据结构和算法入门 视频记录 文章目录 1. 堆栈(Stack)1.1 概念1.2 数组栈实现1.3 链式栈实现 2. 队列(Queue)2.1 概念2.2 数组队列实现2.3 链式队列实现 在这一章我们来了解两个很特殊的数据结构:堆栈 (Stac…...
万字长文 | Apache SeaTunnel 分离集群模式部署 K8s 集群实践
文章作者:雷宝鑫 整理排版:白鲸开源 曾辉 Apache SeaTunnel官网链接: https://seatunnel.apache.org/ Apache SeaTunnel(以下简称SeaTunnel)是一款新一代高性能、分布式的数据集成同步工具,正受到业界广泛关注和应用。SeaTunnel支…...
逻辑回归:使用 S 型函数进行概率预测
逻辑回归:使用 S 型函数进行概率预测 摘要 本文章深入探讨了逻辑回归模型如何利用 S 型函数将线性回归的输出转换为概率值。文章详细阐述了 S 型函数的数学原理、在逻辑回归中的应用以及其在机器学习中的重要性。通过具体示例和练习,帮助读者理解如何使…...
马浩棋:产通链CT-Chain 破局不动产 RWA,引领数智金融新变革
全球不动产 RWA 数智金融高峰论坛上马浩棋先生致辞 在全球不动产 RWA 数智金融高峰论坛暨产通链 CT-Chain 上链首发会的现场,犀牛世纪集团(香港)有限公司董事会主席马浩棋成为众人瞩目的焦点。此次盛会汇聚了全球金融、区块链及不动产领域的…...
iscsi服务端安装及配置
1. 安装targetcli软件包 yum install -y targetcli 2. 启动target服务 systemctl start target systemctl enable target 3. 配置防火墙 firewall-cmd --add-port"3260/tcp" 3. 准备一个物理分区(或者逻辑分区)…...
常见的神经网络权重文件格式及其详细说明
常见的神经网络权重文件格式及其详细说明的表格: 扩展名所属框架/工具如何生成表示内容使用方法注意事项.pt, .pthPyTorchtorch.save(model.state_dict(), "model.pt")PyTorch模型的状态字典(权重和参数)或整个模型加载方式&#…...