深度学习pytorch小实验

devtools/2024/9/18 1:10:03/ 标签: pytorch

让我们开始进行一个简单的深度学习实验吧!我们将使用PyTorch来实现。在这个实验中,我们将训练一个基本的人工神经网络(Artificial Neural Network,ANN)来进行手写数字的识别。首先,我们需要导入相关的库和模块。请确保你已经安装了PyTorch和torchvision。

import torch
import torchvision
import torchvision.transforms as transforms
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

接下来,我们需要加载手写数字的数据集。PyTorch提供了许多常见的数据集,我们将使用MNIST数据集。MNIST数据集是一个包含有手写数字图像的数据集,它包含了60000个训练样本和10000个测试样本。我们可以使用torchvision中的datasetsDataLoader来加载这些数据。

transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))])trainset = torchvision.datasets.MNIST(root='./data', train=True,download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,shuffle=True, num_workers=2)testset = torchvision.datasets.MNIST(root='./data', train=False,download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,shuffle=False, num_workers=2)

然后,我们定义一个简单的神经网络模型。在这个实验中,我们将使用一个简单的两层全连接神经网络。

class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(784, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = x.view(-1, 784)x = F.relu(self.fc1(x))x = self.fc2(x)return x

然后,我们实例化这个神经网络模型,并定义一个损失函数和一个优化器。

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

接下来,我们要进行训练。我们将进行多个epoch的训练,并在每个epoch之后测试模型的性能。

for epoch in range(2):running_loss = 0.0for i, data in enumerate(trainloader, 0):inputs, labels = dataoptimizer.zero_grad()outputs = net(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()if i % 2000 == 1999:print('[%d, %5d] loss: %.3f' %(epoch + 1, i + 1, running_loss / 2000))running_loss = 0.0

在每个epoch之后,我们使用测试集来评估模型的性能。

correct = 0
total = 0
with torch.no_grad():for data in testloader:images, labels = dataoutputs = net(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print('Accuracy of the network on the 10000 test images: %d %%' % (100 * correct / total))

这是一个简单的深度学习实验,我们使用PyTorch实现了一个用于手写数字识别的神经网络模型,并在MNIST数据集上进行了训练和测试。你可以尝试不同的网络结构、超参数和优化算法来改进模型的性能。祝你好运!


http://www.ppmy.cn/devtools/14388.html

相关文章

tailwindcss在使用cdn引入静态html的时候,vscode默认不会提示问题

1.首先确保vscode下载tailwind插件:Tailwind CSS IntelliSense 2.需要在根目录文件夹创建一个tailwind.config.js文件 export default {theme: {extend: {// 可根据需要自行配置,空配置项可以正常使用},}, }3.在html文件的标签中引入配置文件&#xf…

用于割草机器人,商用服务型机器人的陀螺仪

介绍一款EPSON推出适用于割草机器人,商用服务型机器人的高精度陀螺仪模组GGPM61,具体型号为GGPM61-C01。模组GGPM61是一款基于QMEMS传感器的低成本航向角输出的传感器模组,它可以输出加速度、角速度及姿态角等信息,为控制机器人运…

骑砍2霸主MOD开发(8)-action_sets.xml骨骼动画

一.action_sets.xml 1.文件目录:Modules\Native\ModuleData\action_sets.xml 2.action_set(骨骼动画animation) action1 action2 action3 3.通过在action_set中配置skeleton,人,马匹,牛,羊等骨架 二.使用编辑器修改动作 三.骨架&骨骼&骨骼动画 1.骨架skeleton Skele…

django小技巧

1、django model中的表注释和字段注释迁移到数据库中 参考链接:https://blog.csdn.net/htsssss/article/details/131932381

百度安全多篇议题入选Blackhat Asia以硬技术发现“芯”问题

Blackhat Asia 2024于4月中旬在新加坡隆重举行。此次大会聚集了业界最杰出的信息安全专业人士和研究者,为参会人员提供了安全领域最新的研究成果和发展趋势。在本次大会上,百度安全共有三篇技术议题被大会收录,主要围绕自动驾驶控制器安全、跨…

【2024官方文档版学习笔记】React-脱围机制

系列文章 一、 React快速入门 二、React描述IU 三、React添加交互 四、React状态管理 五、React脱围机制 五、脱围机制 “脱围机制”(Fallback Mechanism)通常指的是在组件加载过程中,当遇到加载失败或者加载时间过长的情况时,能…

WebSocket封装(TypeScript、单例模式、自动重连、事件监听、Vue中使用)

export type AutoReconnectOptions boolean | {maxRetries?: numberretryInterval?: numberonMaxRetriesReached?: Function }export enum ConnectionStatus {Disconnected DISCONNECTED,Connected CONNECTED,Error ERROR }class SocketService {private static instanc…

Dockers数据卷Volume

数据卷 Docker数据卷是什么 在 Docker 中,容器的文件系统是临时的,当容器被删除时,其文件系统也会随之销毁。但有时我们希望容器内的数据能够持久化,即使容器被删除后,数据也不会丢失,这时就可以使用数据…

1 Java 泛型

概述 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数&…

【论文阅读】机器翻译新范式,《A Paradigm Shift in Machine Translation》

《A Paradigm Shift in Machine Translation: Boosting ranslation Performance of Large Language Models》,这篇文章是一个LLM微调用于机器翻译的案例,LLM经过微调后大幅提升在多语种的机器翻译性能。案例很有趣,也很有启发。 论文提出了一…

数据仓库与数据挖掘(实验一2024.4.24)

实验准备: 1.下载conda 2.配置环境C:\ProgramData\miniconda3\Scripts 3.创建文件夹panda进入虚拟环境qq 激活虚拟环境:activate qq 启动jupyter lab(python语言环境编译):jupyter lab 4.panda下载 (…

javaWeb项目-邮票鉴赏系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Java技术 Java 程…

C语言游戏实战(4):人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…

STM32 USB虚拟串口

电路原理图 usb部分 晶振部分 usb与单片机连接 配置信息 sys配置信息 rcc配置信息 usb配置信息 虚拟串口配置信息 时钟配置信息 项目配置信息 代码 包含文件 主函数代码 实验效果 修改接收波特率依然可以正常接收,也就是说单片机可以自动适应上位机的波特率设置。…

软考141-上午题-【软件工程】-杂题+小结

一、杂题 真题1: 真题2: 真题3: 真题4: 真题5: 真题6: 真题7: 真题8: 真题9: 真题10: 真题11: 真题12: 真题13: 真题14&a…

分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测

分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测 目录 分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基…

如何解决Windows本地微服务并发启动后端口占用问题

在微服务架构中,经常会遇到本地开发时多个服务需要并行运行,而断开服务后由于某些原因导致端口未正确释放,再次启动服务时发现端口被占用的问题。这会阻碍开发进度,解决这一问题非常关键。本文将详细指导你如何在Windows环境下解决…

Node.js和cnpm环境搭建

Node.js和cnpm环境搭建 一、nodejs安装 1.1 傻瓜式一直下一步即可,不需要额外进行任何配置 nodejs下载链接,提取码:5555 1.2 查看是否安装成功 cmd进入命令行界面 输入node -v 显示node版本,显示则安装成功 1.3 改变全局模块路…

【重磅开源】MapleBoot项目开发规范

基于SpringBootVue3开发的轻量级快速开发脚手架 🍁项目简介 一个通用的前、后端项目模板 一个快速开发管理系统的项目 一个可以生成SpringBootVue代码的项目 一个持续迭代的开源项目 一个程序员的心血合集 度过严寒,终有春日&#xff…

背包问题汇总

本文涉及知识点 动态规划汇总 状态机dp 01背包 有n件物品,体积分别是v[i],价值分别是w[i],有个包的容积是bv。如何选择物品使得,在总体积不超过vb的前提下,让总价值最大。 动态规划的状态表示 dp[i][j] 表示处理完…