网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案4.5.1 FashionMNIST数据集处理.docx

深度学习案例教程 教案4.5.1 FashionMNIST数据集处理.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(p1)

在本节课我们要进行实践任务1:FashionMNIST数据集处理,

FashionMNIST数据集是一个广泛使用的图像分类数据集,

用于替代经典的手写数字数据集MNIST。

它包含了60,000张用于训练的图像和10,000张用于测试的图像。

每张图像都是单通道的黑白图像,大小为28*28像素。这些图像分属于10个不同的时装类别,

包括T恤、裤子、套头衫、连衣裙、外套、凉鞋、衬衫、运动鞋、包和踝靴。

在进行实践任务之前,我们需要准备好数据集。

由于FashionMNIST数据集已经被预先划分为训练集和测试集,

我们可以直接使用这些数据。训练集包含60,000张图像,测试集包含10,000张图像。

(p2)

首先我们导入必要的包

os模块:用于访问操作系统功能的接口,可以用来读取和修改文件路径等操作。

在我们的实践任务中,可以使用os模块来管理数据集文件的路径。

numpy模块:提供了高性能的数值计算功能,用于处理数据和进行矩阵运算等操作。

在卷积神经网络中,我们通常会使用numpy数组来表示图像数据。

pandas模块:提供了数据处理和分析工具,用于读取和处理数据集等操作。

在我们的实践任务中,可以使用pandas模块来加载和预处理数据集。

torch模块:PyTorch的核心模块,提供了张量运算、自动求导等功能。

我们将使用torch模块来构建和训练卷积神经网络模型。

torch.optim模块:提供了各种优化器,用于训练神经网络模型。

我们将使用torch.optim模块来选择和配置优化器。

torch.nn模块:提供了各种神经网络层和损失函数等模块,用于构建神经网络模型。

我们将使用torch.nn模块来定义卷积神经网络的结构。

torch.utils.data模块:提供了数据加载和预处理的工具,用于构建数据集和数据加载器等操作。

我们将使用torch.utils.data模块来构建FashionMNIST数据集的加载器。

(p3)

在这次的实践任务中,我们需要配GPU

配置GPU,这里有两种方式

第一段代码使用了torch.device()函数,

它会根据当前设备是否支持CUDA来选择使用CPU还是GPU。

如果支持CUDA,则使用cuda:1设备,否则使用cpu设备。

使用.to()方法将变量移动到指定设备上,可以方便地进行GPU加速的训练和推断。

第二段代码它的作用是设置CUDA_VISIBLE_DEVICES环境变量,

指定可用的GPU设备编号为0号设备。

这样就可以在使用GPU训练时,限制只使用指定的GPU设备,而不是使用所有可用的GPU设备。

(p4)

接下来,我们需要配置一些超参数

batch_size:每次训练时选择的样本数,对于较大的数据集,可以适当增大batch_size以提高训练效率。

num_workers:数据加载器使用的进程数,对于Windows用户,应设置为0,否则会出现多线程错误。

lr:学习率,控制模型参数更新的步长,过大或过小都会影响模型的训练效果。

epochs:总的训练轮数,每个epoch表示一次完整的训练过程,包括前向传播、反向传播和参数更新等步骤。

这些超参数的选择需要根据具体的任务和数据集进行调整,可以通过多次实验来寻找最优的超参数组合。

(p5)

完成超参数设置后,我们再设置相应的数据变换

这段代码使用了PyTorch中的transforms模块,

用于对图像进行预处理和数据增强操作。

其中,Compose()函数可以将多个变换组合在一起,依次进行操作。

具体来说,这里定义了一个data_transform对象,它包括了两个变换:

ToTensor():将图像转换为张量,方便进行后续的计算和处理。

Normalize():对张量进行标准化处理,将像素值范围从[0,1]变为[-1,1],可以加速模型的收敛和提高模型的稳定性。

这些预处理操作可以有效地提高模型的训练效果和泛化能力,同时还可以避免一些常见的问题,例如梯度消失和梯度爆炸等。

(p6)

接下来,我们正式开始读取数据

这段代码使用了PyTorch中的torchvision.datasets模块和torch.utils.data.DataLoader模块,

用于创建数据集和数据加载器,方便进行批量训练和测试。

具体来说,这里使用了FashionMNIST数据集,

它包括了10个类别的衣服图片,每个类别有6000张训练图片和1000张测试图片。

通过datasets.FashionMNIST函数创建训练集和测试集,并通过transform参数指定了预处理操作。

然后,使用DataLoader函数创建训练集和测试集的数据加载器,其中包括了一些参数:

batch_size:每次训练时选择的样本数,可以与之前定义的ba

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档