Pytorch-07 完整训练测试过程

要在PyTorch中使用GPU进行数据集的加载、模型的训练和最后模型的测试,需要将数据集和模型都移动到GPU上,并确保在训练和测试过程中都在GPU上进行计算。以下是一个完整的示例代码,展示了如何在PyTorch中使用GPU进行端到端的训练和测试:

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset# 检查GPU是否可用
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")# 准备训练和测试数据,并将其移动到GPU
train_input = torch.randn(100, 10).to(device)
train_target = torch.randn(100, 1).to(device)
test_input = torch.randn(20, 10).to(device)
test_target = torch.randn(20, 1).to(device)# 创建数据集和数据加载器
train_dataset = TensorDataset(train_input, train_target)
train_loader = DataLoader(train_dataset, batch_size=10, shuffle=True)# 定义一个简单的神经网络模型,并将其移动到GPU
class SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.fc1 = nn.Linear(10, 5)self.relu = nn.ReLU()self.fc2 = nn.Linear(5, 1)def forward(self, x):x = self.fc1(x)x = self.relu(x)x = self.fc2(x)return xmodel = SimpleModel().to(device)# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)# 训练模型
model.train()
for epoch in range(100):for input_data, target_data in train_loader:optimizer.zero_grad()output = model(input_data)loss = criterion(output, target_data)loss.backward()optimizer.step()# 测试模型
model.eval()
with torch.no_grad():test_output = model(test_input)test_loss = criterion(test_output, test_target)print(f'Test Loss: {test_loss.item()}')

在这个示例中,我们首先检查GPU是否可用,并将训练和测试数据移动到GPU上。然后,我们创建了数据集和数据加载器,定义了神经网络模型,并将模型移动到GPU。在训练过程中,我们使用数据加载器加载数据进行训练;在测试过程中,我们使用model.eval()将模型切换为评估模式,并使用torch.no_grad()上下文管理器关闭梯度计算,以避免在测试过程中更新模型参数。最后,我们计算了模型在测试集上的损失。整个训练和测试过程都在GPU上进行,以加速计算和提高效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

六月后考研如何备考看这一篇就够了

以下是考研六月后可以参考的规划: 6 月至 8 月(强化阶段): 英语:继续背单词,开始刷历年真题中的阅读部分,仔细分析错题原因,总结解题技巧。数学:完成基础阶段的复习后&am…

接口作为返回类型与类作为返回类型一样吗?

LinkedList<Integer> q new LinkedList<>();和Queue<Integer> q new LinkedList<>();一样吗&#xff1f; 我现在想创建一个队列对象&#xff0c;正常情况下我会这样写&#xff1a;Queue<Integer> q new Queue<>(); 但是你仔细想想&am…

使用chatglm.cpp本地部署ChatGLM3-6B模型

ChatGLM3模型介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型&#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上&#xff0c;ChatGLM3-6B 引入了如下特性&#xff1a; 更强大的基础模型&#xff1a; ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base …

Yourpassword does not satisfy the current policyrequirements

mysql 新增数据库用户失败 解决方法&#xff1a; 修改校验密码策略等级 set global validate_password.policyLOW;

dataguard 备库关闭后启动流程

startup mount&#xff1b; ---开启adg alter database recover managed standby database using current logfile disconnect from session; -- alter database recover managed standby database cancel; alter database recover managed standby database disconnect…

C++课程设计实验杭州电子科技大学ACM题目(上)

题目一&#xff1a;2013.蟠桃季 题目描述 Problem Description&#xff1a;喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事&#xff0c;你们一定都觉得这猴子太闹腾了&#xff0c;其实你们是有所不知&#xff1a;悟空是在研究一个数学问题&#xff01;什么问题&#xff1f;他…

【面试】PWM(脉冲宽度调制)相关问题 ——长期更新

1、PWM调节原理 答&#xff1a;通过改变信号的高电平和低电平的持续时间比例来控制输出信号的平均功率或电压。 2、PWM占空比定义 答&#xff1a;在一个脉冲周期内&#xff0c;高电平的时间占整个周期时间的比例。 3、PWM波形的周期和调节精度由谁决定 答&#xff1a;当计数…

全同态加密生态项目盘点:FHE技术的崛起以及应用

撰文&#xff1a;Chris&#xff0c;Techub News 在当今数字化的时代&#xff0c;隐私保护已成为一个全球性的焦点话题&#xff0c;特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺&#xff0c;引发了广泛的关注和批评&#xff0c…

BUUCTF-WEB3

[极客大挑战 2019]Knife1 1.打开附件链接 一句话木马eval($_POST["Syc"]); 2.中国蚁剑 用中国蚁剑连接 在根目录下找到一个名为flag的文件 3.得到flag [极客大挑战 2019]Upload1 1.打开附件链接 是一个文件上传 2.一句话木马 经过多次尝试都被绕过&#xff0c;更…

【MySQL】数据库的开始

前言 数据库是我们学习编程中一个非常重要的内容&#xff0c;像一些什么什么管理系统&#xff0c;如果想要存储数据都是需要连接数据库的。博主之前写过一篇图书管理系统的博客&#xff0c;那时的我还没接触过数据库&#xff0c;所有的数据都是现成创建的&#xff0c;感兴趣的…

JavaScript面试 题

1.延时加载JS有哪些方式 延时加载 :async defer 例如:<script defer type"type/javascript" srcscript.js></ script> defer:等html全部解析完成,才会执行js代码,顺次执行的 async: js和html解析是同步的,不是顺次执行js脚本(谁先加载完先执行谁)2.JS数…

【C++】菱形继承、菱形虚拟继承、继承与组合

目录 01.概念 02.虚拟继承 原理 03.继承和组合 01.概念 单继承&#xff1a; 一个子类只有一个父类时&#xff0c;称这种继承关系为单继承。 多继承&#xff1a; 一个子类同时有两个及以上的父类时&#xff0c;称这种继承关系为多继承。 菱形继承&#xff1a; 菱形继承是…

一文搞懂oracle事务提交以及脏数据落盘的原则

本文基于oracle 19c 做事务提交以及oracle脏数据落盘的相关解读 第一章 相关进程及组件介绍&#xff1a; 1.LGWR&#xff1a; 重做日志条目在系统全局区域 &#xff08;SGA&#xff09; 的重做日志缓冲区中生成。LGWR 按顺序将重做日志条目写入重做日志文件。如果数据库具有…

【MySQL精通之路】MySQL的使用(3)-命令行连接

本节介绍使用命令行选项来指定如何为MySQL或mysqldump等客户端建立到MySQL服务器的连接。 有关使用类似URI的连接字符串或键值对建立连接的信息&#xff0c;对于MySQL Shell等客户端&#xff0c;请参阅“使用类似URI字符串或键值配对连接到服务器”。 有关无法连接的其他信息&a…

期望薪资26K,北京疯狂游戏golang一面

北京疯狂游戏一面 1、自我介绍 2、财务业务中&#xff0c;你做了哪些设计来保证金额数据的准确性&#xff1f;&#xff08;例如&#xff0c;业务涉及多步骤&#xff0c;某一步出了问题怎么解决&#xff09; 3、如何解决单个业务直接报错的数据准确性问题 4、分布式场景下&a…

理解Vue 3响应式系统原理

title: 理解Vue 3响应式系统原理 date: 2024/5/28 15:44:47 updated: 2024/5/28 15:44:47 categories: 前端开发 tags: Vue3.xTypeScriptSFC优化Composition-APIRef&Reactive性能提升响应式原理 第一章&#xff1a;Vue 3简介 1.1 Vue 3概述 Vue 3的诞生背景&#xff1…

怎么把电脑上的文件传到手机上?可保存文档的云笔记

在职场中&#xff0c;我们经常需要将电脑上的重要文件、资料传到手机上&#xff0c;以便随时查阅和使用。比如&#xff0c;当你在公司完成了一份关键报告&#xff0c;但即将外出与客户沟通&#xff0c;这时如果能将报告传到手机上&#xff0c;就能在移动中随时准备应对客户的咨…

uniapp Androud 离线打包升级APK,覆盖安装不更新问题

Android 打包时在assets/data/dcloud_control.xml文件中&#xff0c;如果配置debug"true" syncDebug"true"&#xff0c;则consle打印有效&#xff0c;不然没有打印数据 <hbuilder debug"true" syncDebug"true"> <apps> …

破解App渠道归因难题,Xinstall助你实现精准数据追踪!

在移动互联网时代&#xff0c;App的推广和运营面临着诸多挑战。其中&#xff0c;渠道归因问题一直困扰着众多推广者。如何准确追踪用户来源&#xff0c;分析不同渠道的推广效果&#xff0c;成为了摆在推广者面前的一大难题。然而&#xff0c;有了Xinstall的出现&#xff0c;这一…

C++网络编程——实现一个简单的echo服务器

在前面讲完了服务器从建立套接字、绑定、监听和提取&#xff0c;以及客户端的连接&#xff0c;我们已经可以动手实现一个简单的镜像服务器。 错误处理 在那之前&#xff0c;我们先封装一个错误处理函数 errif 可以定义一个uitl.cpp放里面&#xff0c;需要的地方引用即可 ut…