深入图像分类:使用美国手语数据集训练定制化神经网络

引言

在前一篇博客中,我们探讨了如何使用MNIST数据集训练一个基础的神经网络来进行手写数字识别。在本文中,我们将更进一步,使用美国手语字母表(ASL)数据集来构建一个定制化的图像分类模型。通过这个过程,你将学习到如何准备数据、构建模型、以及对模型进行训练和评估。

美国手语数据集简介

美国手语(ASL)是一种复杂的视觉语言,它包含了26个字母的手语表示。在本练习中,我们将使用一个包含这些字母图像的数据集,该数据集类似于MNIST,但对我们的模型来说更具挑战性。

数据准备

与MNIST数据集不同,ASL数据集需要我们手动加载和准备数据。我们将使用Pandas库来读取CSV格式的数据集,并使用matplotlib来可视化数据。
在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt# 读取训练和验证数据集
train_df = pd.read_csv("data/asl_data/sign_mnist_train.csv")
valid_df = pd.read_csv("data/asl_data/sign_mnist_valid.csv")# 提取标签和图像数据
y_train = train_df['label']
y_valid = valid_df['label']
x_train = train_df.drop('label', axis=1).values
x_valid = valid_df.drop('label', axis=1).values# 数据可视化
plt.figure(figsize=(10,10))
for i in range(9):plt.subplot(3, 3, i+1)image = x_train[i].reshape(28, 28)plt.title(y_train[i], fontdict={'fontsize': 20})plt.axis('off')plt.imshow(image, cmap='gray')
plt.show()

数据归一化和分类编码

在训练模型之前,我们需要对图像数据进行归一化,并将标签转换为分类编码的形式。

from tensorflow.keras.utils import to_categorical# 数据归一化
x_train = x_train / 255.0
x_valid = x_valid / 255.0# 标签分类编码
num_classes = 24
y_train = to_categorical(y_train, num_classes)
y_valid = to_categorical(y_valid, num_classes)

构建模型

我们将构建一个包含两个隐藏层的神经网络模型,使用ReLU作为激活函数,并在输出层使用softmax函数。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Densemodel = Sequential()
model.add(Dense(units=512, activation='relu', input_shape=(784,)))
model.add(Dense(units=512, activation='relu'))
model.add(Dense(units=num_classes, activation='softmax'))

在这里插入图片描述

编译和训练模型

模型编译后,我们将使用交叉熵作为损失函数,并跟踪准确率指标。

model.compile(loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
history = model.fit(x_train, y_train, epochs=20, verbose=1, validation_data=(x_valid, y_valid))

结果讨论

训练过程中,我们可能会观察到模型在训练集上的准确率较高,但在验证集上的表现不佳。这可能是过拟合的迹象,即模型对训练数据过度拟合,而未能很好地泛化到未见数据。
在这里插入图片描述

结语

通过本文,你学习了如何处理新的数据集,并构建了一个针对特定任务的神经网络模型。在接下来的教程中,我们将探索卷积神经网络,这是一种在图像分类任务中更为强大的模型。

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

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

相关文章

[嵌入式系统-53]:嵌入式系统集成开发环境大全 ( IAR Embedded Workbench(通用)、MDK(ARM)比较 )

目录 一、嵌入式系统集成开发环境分类 二、由MCU芯片厂家提供的集成开发工具 三、由嵌入式操作提供的集成开发工具 四、由第三方工具厂家提供的集成开发工具 五、开发工具的整合 5.1 Keil MDK for ARM 5.2 IAR Embedded Workbench(通用)、MDK&…

EasyRecovery2024汉化版电脑数据恢复软件下载

EasyRecovery是一款功能强大的数据恢复软件,其主要功能包括但不限于以下几点: 硬盘数据恢复:能够扫描本地计算机中的所有卷,建立丢失和被删除文件的目录树,实现硬盘格式化、重新分区、误删数据、重建RAID等硬盘数据恢…

欧拉回路(leetcode 重新安排行程)

先学习一下欧拉回路是怎么一回事。 对于图中这七个节点,从节点1出发,最终要到达节点1,并且每条路只能走一次,且每条路都得走过一次。 使用dfs,如果算法按照字典序的排列方式选择下一个节点。 第一部分:那…

解救应用启动危机:Spring Boot的FailureAnalyzer机制

目录 一、走进FailureAnalyzer 二、在Spring Boot中如何生效 三、为什么可能需要自定义FailureAnalyzer 四、实现自定义基本步骤 (一)完整步骤要求 (二)注册方式说明 通过Spring Boot的spring.factories文件(建…

ChatGPT等AI大模型输出格式错误优化分享

#ChatGPT/坑 当 ChatGPT没有按照要求的格式输出 省时间,直接上结论 切换模型也不太好使,捕获异常回调重试发送提示词也不太好使。 原因是相同的提示词会触发类似 “缓存” 的东西持续输出错误的结果,至上与上次输出的 70% 都是相同的&…

EMP.DLL是什么东西?游戏提示EMP.DLL文件缺失怎么解决

emp.dll文件是Windows操作系统中的一种动态链接库文件,它被设计为可以被多个程序共享使用的模块化文件。这种设计旨在提高系统效率,减少内存消耗,并简化软件的维护和更新。DLL文件通常包含了一系列相关的函数和变量,这些函数和变量…

基于java,SpringBoot和VUE的求职招聘简历管理系统设计

摘要 基于Java, Spring Boot和Vue的求职招聘管理系统是一个为了简化求职者与雇主间互动流程而设计的现代化在线平台。该系统后端采用Spring Boot框架,以便快速搭建具有自动配置、安全性和事务管理等特性的RESTful API服务,而前端则使用Vue.js框架构建动…

使用unreal engine5.3.2创建c++第一人称游戏

UE5系列文章目录 文章目录 UE5系列文章目录前言一、NuGet 简介二、解决方法: 前言 为了使用unreal engine5.3.2创建c第一人称游戏,今天安装了Visual Studio 2022专业版。在ue5中创建c工程,结果编译器报错: 严重性 代码 说明 项目…

UE5入门学习笔记(六)——编译低版本插件

对于有些低版本的插件,可以通过此方法自己编译到高版本而无需等待插件作者更新 使用工具:如图所示 步骤1:打开cmd,并使用cd命令切换到此目录 步骤2:输入如下指令 RunUAT.bat BuildPlugin -Plugin“路径1” -Package“…

06 - metastore服务、hive服务启动脚本以及相关使用技巧

目录 1、metastore服务 1.1、metastore运行模式 1.2、metastore部署 1.3、测试 2、编写Hive服务启动脚本 3、Hive使用技巧 3.1、Hive常用交互命令 3.2、Hive参数配置方式 3.3、Hive常见属性配置 1、metastore服务 Hive的metastore服务的作用是为Hive CLI或者Hiveserv…

MYSQL数据库专业术语及创建数据表详细讲解[详细版]{sql语句创建数据库语句及条件子句解析,编码格式解析,创建数据表解析,表定义字段解析,主键约束解析}

MYSQL数据库中的专业术语 数据库(Database):存储数据的集合,是数据的逻辑容器。 表(Table):数据库中存储数据的结构,由行(记录)和列(字段&#x…

【深度学习基础(2)】深度学习之前:机器学习简史

文章目录 一. 深度学习的起源1. 概率建模--机器学习分类器2. 早期神经网络--反向传播算法的转折3. 核方法 -- 忽略神经网络4. 决策树、随机森林和梯度提升机5. 神经网络替代svm与决策树 二. 深度学习与机器学习有何不同 可以这样说,当前工业界所使用的大部分机器学习…

云原生Kubernetes: K8S 1.29版本 部署Harbor

目录 一、实验 1.环境 2.Linux 部署docker compose 3.证书秘钥配置 4.K8S 1.29版本 部署Harbor 5.K8S 1.29版本 使用Harbor 二、问题 1.docker 登录harbor失败 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注masterK8S master节点1.2…

论文辅助笔记:TEMPO 之 dataset.py

0 导入库 import os import pandas as pd import torch from torch.utils.data import Dataset from .utils import StandardScaler, decompose from .features import time_features1 Dataset_ETT_hour 1.1 构造函数 class Dataset_ETT_hour(Dataset):def __init__(self,ro…

STM32中断系统详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 中断基本概念 2. STM32中断 3. NVIC的基本组件 3.1 NVIC的基本组件 3.2 NVIC的优先级 4. EXTI外部中断 4.1 基本概念 4.2 基本结构 5. AFIO 1. 中断基本概念 中断(Interrupt&…

专注 APT 攻击与防御—工具介绍Veil-Evasion

专注 APT 攻击与防御 - Micro8 系列教程项目地址:https://github.com/Veil-Framework/Veil-Evasion 1、Veil-Evasion Veil-Evasion 是与 Metasploit 生成相兼容的 Payload 的一款辅助框架,并可以绕过大多数的杀软。 Veil-Evasion 并没有集成在kali&am…

Java零基础入门到精通_Day 9

1.ArrayList 编程的时候如果要存储多个数据,使用长度固定的数组存储格式,不一定满足我们的需求,更适应不了变化的需求,那么,此时该如何选择呢? 集 合 集合类的特点:提供一种存储空间可变的存储模型,存储的…

微调Mistral 7B以实现命名实体识别 (NER)

文章来源:fine-tuning-mistral-7b-for-named-entity-recognition-ner 2024 年 4 月 19 日 在自然语言处理(NLP)领域,命名实体识别(NER)被认为是一项关键任务,应用范围广泛,包括信息…

WPF基础应用

WPF参考原文 MVVM介绍 1.常用布局控件 1.1 布局控件 WPF(Windows Presentation Foundation)提供了多种布局容器来帮助开发者设计用户界面,以下是一些常用的布局: Grid: Grid是最常用的布局容器之一,它允许你通过定…

ArcGIS小技巧—基于点数据的密度分析(含练习数据)

关于空间点数据的密度分析,Arcgis Map中提供了基础的点密度分析和核密度分析。核密度分析可以通过手动设置搜索半径,调整密度分布的合理性。 但有时由于实际工作的需要,我们需要对研究范围做特定划分,比如根据格网规则划分做密度…