Fashion MNIST数据集介绍及基于Pytorch下载数据集

2024-02-03 09:04

本文主要是介绍Fashion MNIST数据集介绍及基于Pytorch下载数据集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Fashion MNIST数据集介绍及基于Pytorch下载数据集


🌵文章目录🌵

  • 🌳引言🌳
  • 🌳Fashion MNIST数据集简介🌳
    • Fashion MNIST数据集的类别说明
    • Fashion MNIST数据集图片示例
  • 🌳基于PyTorch下载Fashion MNIST数据集🌳
  • 🌳使用Fashion MNIST数据集进行图像分类任务🌳
  • 🌳小结🌳
  • 🌳结尾🌳


🌳引言🌳

Fashion MNIST是深度学习和机器学习领域中一个非常流行且实用的数据集。它为初学者和研究者提供了一个挑战性的任务,以磨练他们的图像分类技能。本文将深入探讨Fashion MNIST数据集的背景、目的、使用方法和示例代码,帮助您更好地了解如何利用这个数据集进行图像分类任务。


🌳Fashion MNIST数据集简介🌳

Fashion MNIST是一个包含10个类别的服饰分类数据集,每个类别有7000个28x28像素的灰度图像。与MNIST数据集相比,Fashion MNIST在图像质量和多样性方面具有更高的挑战性,因为它包含了更多的背景和不同的视角。

Fashion MNIST数据集的类别说明


标签说明
0T恤(T-shirt)
1裤子(Trouser)
2套头衫(Pullover)
3连衣裙(Dress)
4外套(Coat)
5凉鞋(Sandal)
6衬衫(Shirt)
7运动鞋(Sneaker)
8包(Bag)
9靴子(Ankle boot)

Fashion MNIST数据集图片示例


在这里插入图片描述

图1 数据集示例


🌳基于PyTorch下载Fashion MNIST数据集🌳

在开始使用Fashion MNIST数据集之前,您需要先将其下载到本地计算机上。以下是使用Python和Pytorch库下载数据集的步骤:

  1. 确保已经安装了Python和Pytorch。您可以从Pytorch官网下载并安装最新版本的Pytorch。
  2. 导入所需的库:
import torch
from torchvision import datasets, transforms
  1. 下载训练数据集:
train_data = torchvision.datasets.FashionMNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True)

这将在当前目录下创建一个名为“data”的文件夹,并将训练数据集下载到其中。如果您已经拥有数据集,并且想要跳过下载过程,请将download参数设置为False

  1. 下载测试数据集:
test_data = torchvision.datasets.FashionMNIST(root='./data', train=False, transform=transforms.ToTensor(), download=True)

同样,这将在“data”文件夹中提供测试数据集。

  1. 现在您已经成功下载了Fashion MNIST数据集,您可以使用Pytorch的数据加载器(DataLoader)来轻松加载数据。例如,以下代码将创建一个训练数据加载器:
from torch.utils.data import DataLoadertrain_loader = DataLoader(train_data, batch_size=32, shuffle=True)

这里,我们将批量大小设置为32,并启用了随机打乱功能。您可以根据需要调整这些参数。类似地,您可以为测试数据集创建一个加载器:

test_loader = DataLoader(test_data, batch_size=32, shuffle=False)

🌳使用Fashion MNIST数据集进行图像分类任务🌳

一旦您下载并准备好了数据集,就可以开始构建和训练图像分类模型了。以下是一个使用PyTorch构建简单卷积神经网络(CNN)进行图像分类的示例代码:

  1. 导入所需的库和模块:
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
from sklearn.model_selection import train_test_split
  1. 划分训练和测试数据集:

首先,我们需要将Fashion MNIST数据集划分为训练集和测试集。以下是一个简单的示例代码,用于将数据分为训练集和测试集:

# 将数据转换为Tensor格式并进行归一化处理(将像素值缩放到0-1之间)
transform = transforms.ToTensor()
train_data = TensorDataset(torch.tensor(train_data.data), train_data.targets) # targets表示图像对应的类别标签(0-9)
test_data = TensorDataset(torch.tensor(test_data.data), test_data.targets) # targets表示图像对应的类别标签(0-9)
train_loader = DataLoader(train_data, batch_size=32, shuffle=True) # 创建训练数据加载器,设置批量大小为32并【启用】随机打乱功能
test_loader = DataLoader(test_data, batch_size=32, shuffle=False) # 创建测试数据加载器,设置批量大小为32并【禁用】随机打乱功能3. 定义模型结构:
现在,我们可以定义一个简单的卷积神经网络(CNN)模型,用于图像分类任务。以下是一个示例代码,展示了如何使用PyTorch构建一个包含两个卷积层、一个全连接层的CNN模型:```python
class SimpleCNN(nn.Module):def __init__(self):super(SimpleCNN, self).__init__()self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)self.fc1 = nn.Linear(64 * 7 * 7, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = F.relu(self.conv1(x))x = F.relu(self.conv2(x))x = x.view(-1, 64 * 7 * 7) # 将卷积后的特征图展平,以便输入全连接层x = F.relu(self.fc1(x))x = self.fc2(x)return F.log_softmax(x, dim=1) # 使用log_softmax激活函数进行分类概率计算
  1. 训练模型:

接下来,我们将使用训练数据集对模型进行训练。以下是一个示例代码,展示了如何定义损失函数和优化器,以及如何训练模型:

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') # 检查是否有可用的GPU,并定义设备(CPU或GPU)
model = SimpleCNN().to(device) # 将模型移动到设备上(CPU或GPU)
criterion = nn.CrossEntropyLoss() # 定义损失函数为交叉熵损失函数
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) # 定义优化器为随机梯度下降(SGD)优化器,设置学习率为0.001,动量为0.9# 训练模型
num_epochs = 10 # 设置训练轮数为10轮
for epoch in range(num_epochs):model.train() # 设置模型为训练模式running_loss = 0.0for i, data in enumerate(train_loader): # 使用训练数据加载器逐批获取数据和标签inputs, labels = data[0].to(device), data[1].to(device) # 将数据和标签移动到设备上(CPU或GPU)optimizer.zero_grad() # 将梯度清零outputs = model(inputs) # 前向传播,获取预测输出loss = criterion(outputs, labels) # 计算损失值loss.backward() # 反向传播,计算梯度值optimizer.step() # 更新权重参数running_loss += loss.item() # 累加损失值print('Epoch %d loss: %.3f' % (epoch + 1, running_loss / len(train_loader))) # 输出当前轮次的平均损失值
  1. 测试模型:

经过训练后,我们需要使用测试数据集评估模型的性能。以下是一个示例代码,展示了如何使用测试数据加载器评估模型:

model.eval() # 设置模型为评估模式,关闭dropout和batch normalization等在训练模式下的特殊操作
correct = 0
total = 0
with torch.no_grad(): # 不需要计算梯度,以提高评估速度for data in test_loader: # 使用测试数据加载器逐批获取数据和标签images, labels = data[0].to(device), data[1].to(device) # 将数据和标签移动到设备上(CPU或GPU)outputs = model(images) # 前向传播,获取预测输出_, predicted = torch.max(outputs.data, 1) # 获取最大概率对应的类别标签作为预测结果total += labels.size(0) # 统计样本总数correct += (predicted == labels).sum().item() # 统计正确分类的样本数量print('Accuracy of the network on the test images: %d %%' % (100 * correct / total)) # 输出模型在测试数据集上的准确率

🌳小结🌳

Fashion MNIST是一个流行的机器学习数据集,主要用于服饰分类任务。它包含10个类别的7000个28x28像素的灰度图像,挑战性较高,因为涉及更多背景和视角。通过PyTorch,可以轻松下载并使用此数据集。一旦数据集准备好,可以使用CNN等模型进行图像分类。本文详细介绍了Fashion MNIST的背景、目的、使用方法和示例代码,为初学者和研究者提供了实用的指导和资源。


🌳结尾🌳

亲爱的读者,首先感谢抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见💬
俗话说,当局者迷,旁观者清。的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果博文给您带来了些许帮助,那么,希望能为我们点个免费的赞👍👍/收藏👇👇您的支持和鼓励👏👏是我们持续创作✍️✍️的动力
我们会持续努力创作✍️✍️,并不断优化博文质量👨‍💻👨‍💻,只为给带来更佳的阅读体验。
如果有任何疑问或建议,请随时在评论区留言,我们将竭诚为你解答~
愿我们共同成长🌱🌳,共享智慧的果实🍎🍏!


万分感谢🙏🙏点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~

这篇关于Fashion MNIST数据集介绍及基于Pytorch下载数据集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673638

相关文章

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问