首页 > 其他分享 >手写数字识别总结

手写数字识别总结

时间:2024-09-09 17:51:39浏览次数:4  
标签:总结 torch cuda device GPU 手写 识别 cpu 下载

项目介绍:

img

每张图片都是28*28的像素

img

1,使用全连接层
图像拆分成一维像素阵列作为输入值,输入到神经网络中。打包多个图像输入称为一个batch

img

2,输出数据需要做归一化,使数据概率在0-1之间

img

3,一个batch_size设置为15,共训练两次
通过调节a和b,使训练值与真实值的误差减小,形成一个最优解的问题

img

4,加入激活函数,使之变成非线性问题

img

本次项目激活函数使用整流函数,也称为线性整流函数(Rectified Linear Unit, ReLU)

img

使用GPU训练网络

数据会自动放在cpu中
使用GPU训练主要有三部分,网络模型、数据(输入、标注)、损失函数
必须确保这三部分在都CPU中或GPU上,否则报错

使用方式:使用if torch.cuda.is_available()判断GPU是否可用

  1. xx.cuda()放到GPU上 或者 xx.cpu()放回到cpu上
  2. device = torch.device("cpu")
    device1 = torch.device("cuda")
    xx.to(device)放回到cpu上
    xx.to(device1)放到gpu上
  3. device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

mnist数据集下载问题

如果网络可以,pytorch会自动下载mnist数据集,如果下载失败,下面介绍手动下载

手动下载mnist数据集文件,并导入pytorch的方法

  1. 下载原始文件,如下图所示

img

  1. 执行dataset.MNIST()下载失败之后会生成MNIST-raw文件夹

img
img

  1. 将第一步的文件放入raw文件夹,再次执行dataset.MNIST()即可完成,数据集导入

matplotlib.pyplot报错

使用matplotlib.pyplot遇到can‘t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory问题

解决问题:matplotlib.pyplot执行之前需要将神经网络和数据都转移到cpu中

  net = net.cpu()
  x = x.cpu()

标签:总结,torch,cuda,device,GPU,手写,识别,cpu,下载
From: https://www.cnblogs.com/Rickkie/p/18404993

相关文章

  • 2024/8/30总结
    天平题目:物理老师YJ有一个长杆天平,天平的两臂长均为15,将长杆看作x轴,则平衡点在0位置处,负数位置在左臂上,正数位置在右臂上。长杆上有n个位置有挂钩可以挂秤砣。YJ有m个秤砣,质量分别为gi,每个挂钩可以不挂也可以挂任意个秤砣。YJ想要知道,在使用所有秤砣的条件下,......
  • 近几场考试总结(8.30-9.7)
    8.30第一场,是自己唯一发挥正常的一场。第一题,在天平上挂秤砣,很简单,一个明显的背包,唯一不同的就是有可能出现背包的值可能为负数,所以我们将背包整体加一个数,平移到正数的范围。计算了可能出现的最大值,算一下内存空间是可行的,直接写就好了。第二题一看题目范围为\(10^{60}\),同时......
  • 第七周总结
    这周,我开始了对Hadoop的学习之旅。Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集,它以一种可靠、可扩展且高效的方式工作。起初,我对它的了解仅仅停留在这是一个能够处理大数据的工具上,但随着深入学习,我发现它远不止如此。周一的时候,我首先从理解Hadoop的基本概念开始,包......
  • CCF推荐B类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)
    目录前言B类会议1.SoCC2.SPAA3.PODC4.FPGA5.CGO6.DATE7.HOTCHIPS8.CLUSTER9.ICCD10.ICCAD11.ICDCS12.CODES+ISSS13.HiPEAC14.SIGMETRICS15.PACT16.ICPP17.ICS18.VEE19.IPDPS20.Performance21.HPDC22.ITC23.LISA24.MSST25......
  • 使用yolov8识别+深度相机+机械臂实现垃圾分拣机械臂(代码分享)
    文章目录垃圾分拣机械臂视频演示程序主代码完整代码链接垃圾分拣机械臂视频演示点击查看使用YoloV8做的目标检测,机械臂手眼标定使用Aruco的方式,通过深度相机获取三维坐标,与机械臂坐标系之间的转化,得到抓取的坐标深度相机是dabaipro机械臂自己打印程序主代码imp......
  • git使用的说明总结
    Git使用说明下载安装(下载地址)macOS:Git-DownloadingmacOSWindows:Git-DownloadingWindowsLinux/Unix:Git(git-scm.com)创建新仓库本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令gitinit,用以创建新的git克隆仓库执行指令用以创建一个本地......
  • 发票真伪识别接口费用-发票真伪查验接口-发票验真示例
    发票信息核验是一个重要的财务和会计过程,涉及到对发票上的信息进行验证,以确保其真实性和准确性。在数字化时代,这一过程企业通常想通过调用发票查验接口的方式实现自动化管理模式。发票查验接口费用不同的服务提供商会有不同的收费标准,例如翔云平台提供的发票验真接口可以免费测试......
  • selenium自动化检测方法总结 携带用户数据 绕过检测 无头模式 句柄切换
    1.selenium携带用户数据fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceservice=Service(executable_path='chromedriver.exe')option=webdriver.ChromeOptions()user_data_dir=r'C:\Users\12501\AppData\Local......
  • C++期末复习超详细总结知识点(期末冲刺)
    指数形式(即浮点形式)1.5、字符型常量作用:字符型变量用于显示单个字符语法:charch='a';注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号注意2:单引号内只能有一个字符,不可以是字符串C和C++中字符型变量只占用1个字节。字符常量只能包括一个字符,如......
  • 【更新日志】AI运动识别插件又双叕发布更新了,v1.5.4版已正式发布。
    Ai运动识别插件可以为您的小程序赋于原生的人体检测、运动识别、姿态识别、运动计时计数AI能力,让您的小程序轻松实现AI健身、线上运动会、学生体测等场景,并拥有大量的用户案例,针对近期开发者的反馈,我们修复了相关问题,并对部分功能进行了优化增强,发布了v1.5.4版。本次版本的详细......