







所属成套资源:人教版(2024)初中信息技术 (人工智能专册)全一册课件
- 第25课 与机器下井字棋 课件课件0 次下载
- 第26课 推荐出行方式 课件课件0 次下载
- 第27课 智能环境播报助手 课件课件0 次下载
- 第28课 人脸识别 课件课件0 次下载
- 第30课 训练模型玩游戏 课件课件0 次下载
初中信息技术第六单元 AI项目工坊第29课 手写数字识别背景图ppt课件
展开 这是一份初中信息技术第六单元 AI项目工坊第29课 手写数字识别背景图ppt课件,共7页。PPT课件主要包含了问题情境,一准备数据,三训练模型,学习内容,准备数据,x28,x28784,搭建人工神经网络,图像文件,卷积神经网络等内容,欢迎下载使用。
我们之前已经学习过如何识别标准的LED数字。然而,在现实生活中,人们手写的数字形状多样、笔画粗细不一,远比标准的LED数字复杂得多。如果继续使用之前的方法进行识别,效果往往无法满足实际需求。
我们需要根据手写数字的特点 ,重新训练一个专门用于识别手写数字的模型。
二 搭建人工神经网络
四 调用模型识别手写数字
要训练这样的模型,需要大量的手写数字图像数据。为此,科研人员收集并整理了一些数据集,如MNIST手写数字数据集。该数据集包含大量真实手写数字的图像,并被划分为两部分。
一、训练数据,用于训练模型,帮助模型学习如何从图像中提取特征并识别出对应的数字。二、测试数据,用于验证模型的识别效果。
你知道数据集里的图像内容和图像特征吗?运行配套资源中的《数据集查看器》软件,选择data文件夹,查看里面的训练数据和测试数据,并回答后面的问题。
1. 可以发现,这个数据集有_______条数据用于训练,有______条数据用于测试,图像的分辨率是_______。2. 由此可以推测,神经网络的输入层可能需要_____________个输入节点,输出层可能需要_____个输出节点。
搭建神经网络,就是根据任务要求确定网络层数、层类型及参数的过程。同时还需要设计各层之间的连接方式,使人工神经网络能够有效提取数据特征并完成推理。思考以下两个问题:· 手写数字存储在什么类型的媒体中?· 根据之前所学,要提取此类媒体的特征,可以使用什么技术?
该人工神经网络由三层组成:一个卷积层cnv,两个全连接层fc1和fc2。其中,卷积层负责从图像中提取特征;全连接层负责整合提取到的特征,并最终将它们映射为0到9这十个数字类别的概率。
class SimpleCnvNet(nn.Mdule): def __init__(self): super(SimpleCnvNet, self).__init__() # 卷积层,提取特征 # 输入是1个通道(黑白图);输出是8个通道,类似于用8种方式寻找特征 self.cnv = nn.Cnv2d(1, 8, kernel_size=3, padding=1) # 输入为8×28×28大小的特征,输出为128个通道的特征 self.fc1 = nn.Linear(8 * 28 * 28, 128) # 用于分类 # 输入为128个通道的特征;输出为10个数字类别的概率 self.fc2 = nn.Linear(128, 10) # 负责根据输入数据,输出结果 def frward(self, x): x = F.relu(self.cnv(x)) x = x.view(-1, 8 * 28 * 28) x = F.relu(self.fc1(x)) x = self.fc2(x) return F.lg_sftmax(x, dim=1)
28x28像素输入图像(1个通道)
8个28x28特征图(8个通道)
x=F.relu(self.cnv(x))
x = x.view(-1, 8 * 28 *a 28)
x = F.relu(self.fc1(x))
x = self.fc2(x)return F.lg_sftmax(x, dim=1)
训练过程可看作人工神经网络的“学习”过程:通过大量已知类别的图像,不断调整参数,使网络逐步提升对手写数字的识别能力。注意,训练模型通常比使用模型要耗费更多的算力,因此最好在高性能计算机系统中训练模型。
选择合适的方式,利用数据训练模型1. 参照以下方法,获得用于训练的软件或程序。方法一:利用人工智能模型生成训练代码。方法二:参考配套资源中的 train.py 程序。方法三:运行配套资源中的《神经网络训练器》软件。
训练程序通常包含两个核心函数:train和 evaluate ,它们分别用于模型的训练阶段和验证阶段。其中,train函数负责控制人工神经网络基于训练数据进行学习,即通过前向传播计算预测结果,并利用损失函数衡量预测与真实标签之间的误差,再通过反向传播自动调整网络参数;而evaluate函数则是在每轮训练后,使用一组独立的验证数据评估当前模型的性能,以判断其泛化能力。
以《神经网络训练器》软件为例。2. 参照界面提示,选择人工神经网络和数据集后单击“开始训练”按钮,观察训练过程中损失和准确率等指标的变化。3. 单击“保存模型”按钮,将训练后的模型保存起来。
训练指标中的损失反映了模型预测结果与真实标签之间的差距,数值越低(最低为 0)表示模型越准确;准确率则表示模型在测试数据中正确识别的比例。
四、调用模型识别手写数字
训练结束后,可编程调用训练得到的模型,对手写数字进行识别。
配套资源提供了《手写数字识别》软件,运行后在右侧画板输入数字,程序就可以将相应的数字识别出来。大家可以先用这个软件体验一下。
每次都能识别对吗?更换不同的模型,识别效果有什么不同?
# 引入编程库imprt simprt cv2imprt trchfrm mdel imprt SimpleCnvNet , CmplexNet , TinyNet# 自动选择可用的计算设备device = trch.device("cuda" if () else "cpu")# 选择神经网络的类型mdel = SimpleCnvNet()# 加载训练好的模型,注意修改模型的路径mdel.lad_state_dict(trch.lad('mdels/digit_mdel.pth’))# 把模型加载到运算设备中mdel.t(device)
# test 文件夹中放着很多手写数字图像fr rt, dirs, files in s.walk('test’): fr file in files: img_path = (rt, file) try: # 图像转换成灰度图 ,像素值范围0到255 img = cv2.cvtClr(cv2.imread(img_path), cv2.COLOR_BGR2GRAY) # 确保图像为黑白图 img = cv2.threshld(img, 127, 255, cv2.THRESH_BINARY_INV)[1] # 分辨率调整到28x28,与训练数据保持一致 img = cv2.resize(img, (28, 28)) # 根据图像进行识别 predicted, cnfidence = mdel.predict(img) print(f'{file} --- {predicted}’) except Exceptin as e: print(f'{file} --- 预测失败,错误: {e}')
也可以参照配套资源中的程序,采用编程方式调用模型,进行手写数字的识别。
经过充分训练的模型,通常可以较好地识别图像中的手写数字。不过总有一些数字无法被模型正确识别出来,这与用于训练模型的数据集、模型自身的结构、训练过程等都有关系。
1. MNIST数据集里有训练数据和测试数据。训练数据用于“教”模型识别数字,测试数据则用于“测”模型的学习成果。2. 通过准备数据、搭建神经网络、训练模型、调用模型这几个步骤能够实现手写数字的识别。3. 训练中的准确率和损失是两个重要的训练指标,共同用于评估模型的学习效果。
相关课件
这是一份初中信息技术第六单元 AI项目工坊第29课 手写数字识别背景图ppt课件,共7页。PPT课件主要包含了问题情境,一准备数据,三训练模型,学习内容,准备数据,x28,x28784,搭建人工神经网络,图像文件,卷积神经网络等内容,欢迎下载使用。
这是一份初中信息技术电子工业社版(2022)第六册2.2 手写数字识别说课ppt课件,共14页。PPT课件主要包含了教学目标,新知导入,新知讲解,课堂练习,习题2如下,课堂总结,作业布置等内容,欢迎下载使用。
这是一份初中信息技术人教版(2024)人工智能专册第29课 手写数字识别教学课件ppt,共32页。PPT课件主要包含了手写数字识别无处不在,师生互动回顾,本节课·核心探究,核心定义,技术范畴,通俗理解,回顾人类的学习过程,类比机器学习的逻辑,什么是“监督学习”,学习逻辑等内容,欢迎下载使用。
相关课件 更多
- 1.电子资料成功下载后不支持退换,如发现资料有内容错误问题请联系客服,如若属实,我们会补偿您的损失
- 2.压缩包下载后请先用软件解压,再使用对应软件打开;软件版本较低时请及时更新
- 3.资料下载成功后可在60天以内免费重复下载
免费领取教师福利 






.png)




