Pytorch全连接神经网络实现手写数字识别

news2024/11/25 3:22:47

问题

Mnist手写数字识别数据集作为一个常见数据集,包含10个类别,在此次深度学习的过程中,我们通过pytorch提供的库函数,运用全连接神经网络实现手写数字的识别

方法

设置参数

input_size = 784
hidden_size = 500
output_size = 10
num_epochs = 5
batch_size = 100
l2earning_rate = 0.001

下载mnist数据集,并将其分为训练集和测试集

定义一个带有隐藏层的全连接神经网络

class NeuralNet(nn.Module):
    def__init__(self,input_size,hidden_size,output_size):
       super(NeuralNet, self).__init__()
       self.fc1 = nn.Linear(input_size, hidden_size)
       self.relu = nn.ReLU()
       self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
    out = self.fc1(x)
    out = self.relu(out)
    out = self.fc2(out)
    return out
model=NeuralNet(input_size,hidden_size,output_size).to(device)   #类的实例化

损失函数和优化算法

训练模型

total_step = len(train_loader)  #训练数据的大小,也就是含有多少个barch
for epoch in range(num_epochs):
    for i, (images, labels) in enumerate(train_loader):  
       images = images.reshape(-1, 28*28).to(device)    
       labels = labels.to(device)
       outputs = model(images)
       loss = criterion(outputs, labels)
       optimizer.zero_grad()
       loss.backward()
       optimizer.step()
       if (i+1) % 100 == 0:
           print ('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'
                  .format(epoch+1, num_epochs, i+1, total_step, loss.item()))

测试模型

实验结果

6dd092b94e053522bab7869f1e45d561.png

结语

通过此次试验发现,在训练数据时,传入网络的是一个独立标签,即,我们希望输出的是2,但输出的不是用实数2做标签,而是用一个表示实数2的一个十维向量[0,0,1,0,0,0,0,0,0,0],对于分类问题,这种表示尤为重要。

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

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

相关文章

JavaScript对象类型之function

目录 一、Function 定义函数 调用函数 默认参数 匿名函数 箭头函数 二、函数是对象 三、函数作用域 四、闭包 五、let、var与作用域 一、Function 定义函数 function 函数名(参数) {// 函数体return 结果; } 例如: function add(a, b) {return a b; …

应届生通过Java培训班转行IT有前途吗?

借用邓小平同志曾说过的一句话:科学技术是第一生产力。IT行业作为科技行业中的一员,不管是在自身的发展,还是支持其他行业的发展中都扮演了不可或缺的角色,“互联网”是社会发展的趋势,前途是无限的。而计算机语言是目…

dolphinscheduler之hivecli 任务

hivecli 任务 Hivecli任务说明 dolphinscheduler的hivecli任务是专门执行hivesql的任务类型。其中子类型分为FROM_SCRIPT和FROM_FILE。 FROM_SCRIPT 执行的脚本可以直接在文本框中编写 执行的底层采用-e参数执行 hive -e "show databases;show tables"FROM_FILE…

建造者模式解读

目录 话题引进 传统方式解决盖房需求 传统方式的问题分析 建造者模式基本介绍 基本介绍 四个角色 原理类图 ​编辑 应用实例 改进代码 建造者模式在 JDK 的应用和源码分析 建造者模式的注意事项和细节 抽象工厂模式 VS 建造者模式 话题引进 1) 需要建房子:…

剑指 Offer (第 2 版)

(简单)剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请…

Python实现采集某二手房源数据并做数据可视化展示

目录环境介绍:模块使用:实现爬虫思路:代码环境介绍: Python 3.8Pycharm 模块使用: requests >>> pip install requests 数据请求模块 parsel >>> pip install parsel 数据解析模块 csv 内置模块 实现爬虫思路&#x…

如何搭建自己的V Rising自建服务器,以及常见的V Rising服务器问题解决方案

V rising官方服务器经常无法连接,无法和小伙伴玩耍;如何搭建自己的V rising服务器呢?还可以修改掉落倍率,加快游戏进度,搭建自己的私人服务器。 前言 最近V rising这个游戏很火呀,迫不及待地和小伙伴一起…

基于粒子群优化算法的面向综合能源园区的三方市场主体非合作交易方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【JSP学习笔记】4.JSP 隐式对象及客户端请求

前言 本章介绍JSP的隐式对象及客户端请求。 JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。 JSP所支持的九大隐式对象: 对象描述requestHttpServletRequest 接…

一文吃透Arthas常用命令!

Arthas 常用命令 简介 Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6,支持Linux/Mac/Windows。这个工具真的很好用,…

【C++】模板进阶--非类型模板参数模板特化及分离编译

文章目录一、非类型模板参数二、模板的特化1.模板特化的概念2.函数模板的特化3.类模板的特化3.1 全特化3.2 偏特化4.类模板特化应用示例三、模板的分离编译四、模板总结一、非类型模板参数 模板参数分为类型形参与非类型形参,其中,类型形参即出现在模板…

MBD-PMSM闭环控制模型(FOC算法)

目录 前面 Speed_and_Position_Estimator 获取HALL信号 HALL状态更新 计算转速 位置判断 ADC相电流/总线电流电压 获取AD值 计算实际值 低速高速切换 SlowLoopControl FastLoopControl 最后 前面 前面分析了BLDC的开环与闭环,接下来分析PMSM或者说FOC…

MySQL 异步复制、半同步复制、增强半同步复制(史上最全)

背景:来自于小伙伴问题 小伙伴的难题: mysql主从同步的时候,半同步和增强半同步是怎样的一个概念,我看网上说的有点不明不白的,也没找到合适的解释。 这里尼恩给大家做一下系统化、体系化的梳理。也一并把这个题目以…

【每天学习一点点】RocketMQ的架构、写数据、高效的数据查询索引、负载均衡

Rocket一、学习目标二、RocketMQ的架构运行图2.1、NameServer2.1.1 为什么需要NameServer2.1.1.1 不可以没有nameserver吗?2.1.2 NameServer需要单独部署吗2.1.3 Nameserver可以动态注册和注销Broker、Topic和Consume 是什么意思2.1.4 可以使用nacos的配置中心替代N…

成本与体验的“非零和博弈”

随着移动互联网和智能终端的普及,越来越多的海内外互联网企业开始发力短视频业务。在短视频用户全球化,短视频产品及内容消费井喷式增长的今天,用户开始逐渐对体验有了越来越高的要求。为了更清晰更流畅地播放,用户播放成本也随着…

TensorFlow GPU不可用,WSL2安装

这个帖子写给23年刚买电脑、系统是win11,tensorflow版本是2.10以上的兄弟们。不符合的可以去看其他答案了。 这是以我三天来的安装经历来写的,希望能给后来的兄弟们减少时间的浪费。 win11,安装的tensorflow的版本都是2.12的,但…

(二)Cmd Markdown 编辑阅读器的使用效果 | 以 Cmd Markdown 编辑阅读器为例

Cmd Markdown 编辑阅读器使用指南 (一)Cmd Markdown 编辑阅读器的使用示例 | 以 Cmd Markdown 编辑阅读器为例(二)Cmd Markdown 编辑阅读器的使用效果 | 以 Cmd Markdown 编辑阅读器为例 在 Cmd Markdown 编辑阅读器( …

C语言实现Allan方差计算

Allan方差专有概念解释 1.量化噪声 量化噪声是一切量化操作所固有的噪声,只要进行数字量化编码采样,传感器输出的理想值与量化值之间就必然会存在微小的差别,量化噪声代表了传感器检测的最小分辨率水平。 2.角度随机游走 角度随机游走是宽带角速率白噪声积分的结果,即陀螺…

金三银四,大伙冲刺,SpringCloud 的 25 个面试考点

今天给大家分享SpringCloud高频面试题。 Spring Cloud核心知识总结 下面是一张Spring Cloud核心组件关系图: 从这张图中,其实我们是可以获取很多信息的,希望大家细细品尝。 话不多说,我们直接开始 Spring Cloud 连环炮。 连环炮…

直播协议:RTSP、RTP、RTCP、RTMP、HLS

流媒体传输一般采用HTTP/TCP(RTCP)协议来传输控制信息,而用UDP(RTP)协议来传输实时媒体数据(TCP开销相对较大,所以不太适合传输实时数据)。 流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP等实时传输协议。为何要在UDP而不在T…