当前位置: 首页 > news >正文

【PyTorch】(三)模型的创建、参数初始化、保存和加载

文章目录

  • 1. 模型的创建
    • 1.1. 创建方法
      • 1.1.1. 通过使用模型组件
      • 1.1.2. 通过继承nn.Module类
    • 1.2. 模型组件
      • 1.2.1. 网络层
      • 1.2.2. 函数包
      • 1.2.3. 容器
    • 1.3. 将模型转移到GPU
  • 2. 模型参数初始化
  • 3. 模型的保存与加载
    • 3.1. 只保存参数
    • 3.2. 保存模型和参数

1. 模型的创建

1.1. 创建方法

1.1.1. 通过使用模型组件

可以直接使用模型组件快速创建模型。

import torch.nn as nnmodel =	nn.Linear(10, 10),
print(model)

输出结果:

Linear(in_features=10, out_features=10, bias=True)

1.1.2. 通过继承nn.Module类

在__init__方法中使用模型组件定义模型各层。在forward方法中实现前向传播。

import torch.nn as nnclass Model(nn.Module):def __init__(self):super().__init__()self.layer1 = nn.Linear(10, 10)self.layer2 = nn.Linear(10, 10)self.layer3 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10))def forward(self, x):x = self.layer1(x)x = self.layer2(x)x = self.layer3(x)return xmodel = Model()
print(model)

输出结果:

Model((layer1): Linear(in_features=10, out_features=10, bias=True)(layer2): Linear(in_features=10, out_features=10, bias=True)(layer3): Sequential((0): Linear(in_features=10, out_features=10, bias=True)(1): ReLU()(2): Linear(in_features=10, out_features=10, bias=True))
)

1.2. 模型组件

1.2.1. 网络层

1.2.2. 函数包

1.2.3. 容器

1.3. 将模型转移到GPU

方法与将数据转移到GPU类似,都有两种方法:

  1. model.to(device)
  2. mode.cuda()
import torch
import torch.nn as nn# 创建模型实例
model = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10)
)# 将模型移动到GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
# 也可以
model = model.cuda()

2. 模型参数初始化

3. 模型的保存与加载

模型保存和加载使用的python内置的pickle模块。

3.1. 只保存参数

import torch
import torch.nn as nn# 创建模型实例
model1 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10)
)# 保存和加载参数
torch.save(model1.state_dict(), '../model/model_params.pkl')
model1.load_state_dict(torch.load('../model/model_params.pkl'))

3.2. 保存模型和参数

import torch
import torch.nn as nn# 创建模型实例
model1 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10)
)# 保存和加载模型和参数
torch.save(model1, '../model/model.pt')
model2 = torch.load('../model/model.pt')
print(model2)

相关文章:

【PyTorch】(三)模型的创建、参数初始化、保存和加载

文章目录 1. 模型的创建1.1. 创建方法1.1.1. 通过使用模型组件1.1.2. 通过继承nn.Module类 1.2. 模型组件1.2.1. 网络层1.2.2. 函数包1.2.3. 容器 1.3. 将模型转移到GPU 2. 模型参数初始化3. 模型的保存与加载3.1. 只保存参数3.2. 保存模型和参数 1. 模型的创建 1.1. 创建方法…...

高效开发之:判断复杂list中的对象属性是否包含某个值

技术使用&#xff1a;使用了Java 8引入的Stream API以及Optional类。这些特性用于简化集合的处理和减少空指针异常。 List<ResourceInfoDto> authData chatBase.getData();String baseName dto.getBaseName();Optional<ResourceInfoDto> authWithResourceCode a…...

MacOS + Android Studio 通过 USB 数据线真机调试

环境&#xff1a;Apple M1 MacOS Sonoma 14.1.1 软件&#xff1a;Android Studio Giraffe | 2022.3.1 Patch 3 设备&#xff1a;小米10 Android 13 一、创建测试项目 安卓 HelloWorld 项目: 安卓 HelloWorld 项目 二、数据线连接手机 1. 手机开启开发者模式 参考&#xff1…...

部署jekins遇到的问题

jdk问题 我用的jdk版本是21的结果版本太新了&#xff0c;启动jekins服务的时候总是报错最后在jekins的安装目录下面的jekinsErr.log查看日志发现是jdk问题最后换了一个17版本的就解决了。 unity和jekins jekins和Git源码管理 jekins和Git联动使用 我想让jekins每次打包的时…...

SQLY优化

insert优化 1.批量插入 手动事务提交 主键顺序插入&#xff0c;主键顺序插入性能高于乱序插入 2.大批量插入数据 如果一次性需要插入大批量数据&#xff0c;使用Insert语句插入性能较低&#xff0c;此时可以使用MYSQL数据库提供的load指令进行插入 主键优化 主键设计原则 …...

设计模式——行为型模式(一)

行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行…...

Rust语言入门教程(六) - 字符串类型

在Rust中&#xff0c; 字符串类型其实是一个比较复杂的话题。在Rust的标准库中&#xff0c;至少都提供了6种字符串类型&#xff0c;我们平常使用的最多的是其中的两种。这两种类型互相之间也有所关联&#xff1a; str&#xff1a; 字符串切片String 字符串 其中&#xff0c; 字…...

【MATLAB源码-第92期】基于simulink的QPSK调制解调仿真,采用相干解调对比原始信号和解调信号。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 QPSK&#xff0c;有时也称作四位元PSK、四相位PSK、4-PSK&#xff0c;在坐标图上看是圆上四个对称的点。通过四个相位&#xff0c;QPSK可以编码2位元符号。图中采用格雷码来达到最小位元错误率&#xff08;BER&#xff09; —…...

关于C语言控制浮点数输出精度问题

众所周知 C语言在控制一个浮点数输出精度的时候是在%和f之间加上一个.(想要控制的精度) 如&#xff1a;printf("%.2f", num); 问&#xff0c;试问&#xff1a;&#xff08;你就是我的御主吗&#xff1f;&#xff09;如果输出的精度是根据输入的数字变化的怎么办&am…...

【Linux 静态IP配置】

静态IP配置 1.NAT模式设置2.设置静态ip3.重启网络4.查看ip 1.NAT模式设置 首先设置虚拟机中NAT模式的选项&#xff0c;打开VMware&#xff0c;点击“编辑”下的“虚拟网络编辑器”&#xff0c;设置NAT参数 注意&#xff1a; VMware Network Adapter VMnet8保证是启用状态 …...

【Linux 操作系统配置 SFTP】

Linux 操作系统配置 SFTP sftp采用的是ssh加密隧道&#xff0c;安装性方面较ftp强&#xff0c;而且依赖的是系统自带的ssh服务&#xff0c;不像ftp还需要额外的进行安装基于 ssh 的 sftp 服务相比 ftp 有更好的安全性&#xff08;非明文帐号密码传输&#xff09;和方便的权限管…...

信贷专员简历模板

这份简历内容&#xff0c;以信贷专员招聘需求为背景&#xff0c;我们制作了1份全面、专业且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴。 信贷专员简历在线编辑下载&#xff1a;百度幻主简历 求职意向 求职类型&#xff1a;全职 意向岗位&#xff1a;信贷专员 …...

Python自动化测试面试经典题

相信大家经历过许多面试都会有这样的感受&#xff1a;好不容易通过了 2 -3轮技术面试&#xff0c;但是薪资不够理想&#xff1b;要么被面试的测试专家虐的不要不要的。但每一次的面试也能让自己认识到不足之处&#xff0c;这样才有利于后续拿到理想的offer。 牛鹭学院的学子对…...

java+springboot物流管理系统设计与实现wl-ssmj+jsp

物流管理系统的开发和综合性的物流信息网站平台的建设。研究的重点是运输管理信息系统&#xff0e;本系统是一套基于运输作业流程的管理系统&#xff0c;该系统以运输任务、货品、商务三大线索设计开发。运输任务是该管理系统的核心&#xff0c;系统通过对运输任务中的接收、调…...

概念理论类-k8s :架构篇

转载&#xff1a;新手通俗易懂 k8s &#xff1a;架构篇 Kubernetes&#xff0c;读音是[kubə’netis]&#xff0c;翻译成中文就是“库伯奈踢死”。当然了&#xff0c;也可以直接读它的简称&#xff1a;k8s。为什么把Kubernetes读作k8s&#xff0c;因为Kubernetes中间有8个字母…...

window10家庭版中文转专业版流程

1.确认当前为家庭中文版 2.用管理员权限打开cmd窗口 3.输入 dism /online /get-targeteditions &#xff0c;查询当前支持的升级的版本 4.专业版密钥&#xff1a;VK7JG-NPHTM-C97JM-9MPGT-3V66T 5.changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T...

Chrome显示分享按钮

分享按钮不见了&#xff01; Chrome://flags Chrome Refresh 2023 Disabled 左上角的标签搜索会到右上角。...

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…...

在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2

在gazebo里搭建一个livox mid360 惯导仿真平台测试 FAST-LIO2 前言立方体平台加入 livox mid360 激光雷达加入IMU模块调整底盘大小 并设计调用接口测试 Fast-Lio2 前言 livox mid360 在官网一直没有货&#xff0c;在gazebo里可以仿真该雷达形式的点云。 但是其只发布雷达的数…...

SpringMVC文件下载

<!--解决找不到“jquery-3.4.1.min.js”&#xff08;静态资源访问&#xff09;的问题 --> <mvc:default-servlet-handler/>方式1&#xff1a;如果去掉download就是查看图片 <a href"${pageContext.request.contextPath}/uploadfiles/${requestScope.filena…...

企业AI编程效率提升:2026最新权威AI编程工具必看

企业AI编程效率提升&#xff1a;2026最新权威AI编程工具必看开篇“企业研发团队效率低下&#xff0c;核心项目交付周期长&#xff0c;如何通过AI编程工具缩短开发周期、提升ROI&#xff1f;”“企业部署AI编程工具&#xff0c;如何兼顾安全合规、代码质量与开发效率&#xff0c…...

【限时公开】Anthropic内部文档评审Checklist泄露版:92%开发者忽略的8个Claude API语义一致性陷阱

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Claude API文档编写的核心原则与语义一致性定义 编写高质量的Claude API文档&#xff0c;首要任务是坚守三大核心原则&#xff1a;可预测性、可验证性与可演进性。可预测性要求所有接口行为严格遵循OpenAPI 3…...

射频集成电路中MIM电容与多晶硅电阻的建模与优化

1. MIM电容布局模型解析在射频集成电路设计中&#xff0c;金属-绝缘体-金属&#xff08;MIM&#xff09;电容因其高密度、高线性度和良好的匹配特性而成为关键被动元件。图14(a)展示了典型的MIM电容布局结构&#xff0c;采用上下金属层夹介质层的三明治结构。1.1 电容模型构成原…...

NoFences:Windows桌面整理终极指南,5分钟打造高效工作空间

NoFences&#xff1a;Windows桌面整理终极指南&#xff0c;5分钟打造高效工作空间 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否每天都要在混乱的Windows桌面上花费大…...

【AI Agent审计实战白皮书】:20年审计专家亲授7大高危场景识别法与合规落地路径

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent审计的核心范式演进 传统软件系统审计聚焦于代码合规性、日志完整性与权限边界&#xff0c;而AI Agent的自主决策、多步推理与动态工具调用能力&#xff0c;正推动审计范式从静态验证转向“意图…...

AI Agent在制造业的隐秘革命(产线故障预测Agent首次公开技术栈)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI Agent在制造业的隐秘革命&#xff08;产线故障预测Agent首次公开技术栈&#xff09; 当振动传感器每秒回传8,192点时序数据、PLC日志以毫秒级时间戳持续写入边缘缓存&#xff0c;传统阈值告警系统正悄然失…...

linux系统之进程管理详解

进程&#xff08;Process&#xff09; 是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础。 在当代面向线程设计的计算机结构中&#xff0c;进程是线程的容器。程序是指令、数据及其组织形式的描…...

如何在C加加项目中快速接入Taotoken的多模型API服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何在C项目中快速接入Taotoken的多模型API服务 对于使用C进行开发的工程师而言&#xff0c;直接调用HTTP API是集成第三方服务最灵…...

【Midscene.js 实战10】集成实战:将 Midscene.js 无缝接入现有的 Playwright / Puppeteer 项目

一、开篇:你的测试代码还扛得住吗? 2026 年 3 月的一个深夜,某跨境电商团队的测试主管在工位前对着屏幕上刺眼的红色报错叹了口气。团队维护了两年、超过 600 个用例的 Playwright 自动化回归套件,因为运营团队改了商品详情页的 DOM 结构,直接挂了 40 多个用例。更让人崩…...

为什么92%的社交App在AI Agent接入后用户停留时长暴跌?——资深架构师亲授5层调优框架

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;为什么92%的社交App在AI Agent接入后用户停留时长暴跌&#xff1f; 当AI Agent以“智能助手”“聊天搭子”“情绪陪伴者”等名义大规模嵌入社交App时&#xff0c;产品团队普遍预期用户活跃度与停留时长将显著提…...