昇思25天学习打卡营第2天|数据集Dataset

学习目标:熟练掌握mindspore.dataset

mindspore.dataset中有常用的视觉、文本、音频开源数据集供下载,点赞、关注+收藏哦

  • 了解mindspore.dataset
  • mindspore.dataset应用实践
  • 拓展自定义数据集

昇思平台学习时间记录:
在这里插入图片描述


一、关于mindspore.dataset

mindspore.dataset模块提供了加载和处理各种通用数据集的API,如MNIST、CIFAR-10、CIFAR-100、VOC、COCO、ImageNet、CelebA、CLUE等, 也支持加载业界标准格式的数据集,包括MindRecord、TFRecord、Manifest等。此外,用户还可以使用此模块定义和加载自己的数据集。
在这里插入图片描述

1.1 常用数据集下载资源地址

开源数据集地址url如下
1.加载MNIST:url= "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/MNIST_Data.zip"
2.加载CIFAR-10:"url=https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz"
2.加载CIFAR-100:"url=https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets cifar-100-python.tar.gz"
3.加载ImageNet:url= https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/vit_imagenet_dataset.zip
4.加载狗与牛角包分类数据集DogCroissants:url=https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/beginner/DogCroissants.zip
5. 数据集coco2017 url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/ssd_datasets.zip"

1.2 数据集地址程序下载方式

方式一:from download import download
安装依赖库download
pip install download

方式二:from mindvision.dataset import DownLoad
安装依赖库:mindvision
pip install mindvision

示例如下:

# Begin to show your code!
from download import download
from mindvision.dataset import DownLoaddef downloadData1(url="https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/beginner/DogCroissants.zip"):dataset_url = urlpath = download(dataset_url, "./datasets", kind="zip", replace=True)  # 当前文件夹下保存DogCroissants数据集def downloadData2(url):dataset_url = urlpath = "./"dl = DownLoad()# 下载并解压数据集dl.download_and_extract_archive(dataset_url, path)if __name__ == "__main__":url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/" \"notebook/datasets/MNIST_Data.zip"downloadData1()  # 方式一,下载DogCroissantsdownloadData2(url)  # 方式二,下载MNIST

运行结果:成功下载数据集
在这里插入图片描述
方式三:from mindvision.dataset import Mnist
在这里插入图片描述
使用方法:

from mindvision.dataset import Mnistdownload_train = Mnist(path="./mnist", split="train", batch_size=32, shuffle=True, resize=32, download=True)
download_eval = Mnist(path="./mnist", split="test", batch_size=32, resize=32, download=True)dataset_train = download_train.run()
dataset_eval = download_eval.run()

1.3 常用数据集生成Mindspore格式数据集生成器接口

(1) 常用开源视觉数据集-数据集接口

	mindspore.dataset.Caltech101Datasetmindspore.dataset.Caltech256Datasetmindspore.dataset.CelebADatasetmindspore.dataset.Cifar10Datasetmindspore.dataset.Cifar100Datasetmindspore.dataset.CityscapesDatasetmindspore.dataset.CocoDatasetmindspore.dataset.DIV2KDatasetmindspore.dataset.EMnistDatasetmindspore.dataset.FakeImageDatasetmindspore.dataset.FashionMnistDatasetmindspore.dataset.FlickrDatasetmindspore.dataset.Flowers102Datasetmindspore.dataset.Food101Datasetmindspore.dataset.ImageFolderDatasetmindspore.dataset.KITTIDatasetmindspore.dataset.KMnistDatasetmindspore.dataset.LFWDatasetmindspore.dataset.LSUNDatasetmindspore.dataset.ManifestDatasetmindspore.dataset.MnistDatasetmindspore.dataset.OmniglotDatasetmindspore.dataset.PhotoTourDatasetmindspore.dataset.Places365Datasetmindspore.dataset.QMnistDatasetmindspore.dataset.RenderedSST2Datasetmindspore.dataset.SBDatasetmindspore.dataset.SBUDatasetmindspore.dataset.SemeionDatasetmindspore.dataset.STL10Datasetmindspore.dataset.SUN397Datasetmindspore.dataset.SVHNDatasetmindspore.dataset.USPSDatasetmindspore.dataset.VOCDatasetmindspore.dataset.WIDERFaceDataset

(2)标准格式数据集接口

mindspore.dataset.ImageFolderDataset
mindspore.dataset.CSVDataset
mindspore.dataset.MindDataset
mindspore.dataset.OBSMindDataset
mindspore.dataset.TFRecordDataset

(3)自定义数据集接口

mindspore.dataset.GeneratorDataset
mindspore.dataset.NumpySlicesDataset
mindspore.dataset.PaddedDataset
mindspore.dataset.RandomDataset

1.4 开源数据实践实例

利用下载的数据集,数据集标准格式

import mindspore.dataset as ds
import mindspore.dataset.vision as visiondef create_dataset(path="./datasets", batch_size=10, train=True, image_size=224):dataset = ds.ImageFolderDataset(path, num_parallel_workers=8, class_indexing={"croissants": 0, "dog": 1})# 图像增强操作mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]std = [0.229 * 255, 0.224 * 255, 0.225 * 255]if train:trans = [vision.RandomCropDecodeResize(image_size, scale=(0.08, 1.0), ratio=(0.75, 1.333)),vision.RandomHorizontalFlip(prob=0.5),#vision.Normalize(mean=mean, std=std),#vision.HWC2CHW()]else:trans = [vision.Decode(),vision.Resize(256),vision.CenterCrop(image_size),vision.Normalize(mean=mean, std=std),vision.HWC2CHW()]dataset = dataset.map(operations=trans, input_columns="image", num_parallel_workers=8)# 设置batch_size的大小,若最后一次抓取的样本数小于batch_size,则丢弃dataset = dataset.batch(batch_size, drop_remainder=True)return datasetif __name__ == "__main__":# 加载训练数据集train_path = "./datasets/DogCroissants/train"dataset_train = create_dataset(train_path, train=True)print(len(dataset_train))# 加载验证数据集val_path = "./datasets/DogCroissants/val"dataset_val = create_dataset(val_path, train=False)print(len(dataset_val))

执行结果:成功加载数据集
在这里插入图片描述

1.5 数据集图像可视化

定义可视化函数import matplotlib.pyplot as plt

import matplotlib.pyplot as plt
def visualize(dataset):figure = plt.figure(figsize=(4, 4))cols, rows = 3, 3plt.subplots_adjust(wspace=0.5, hspace=0.5)for idx, (image, label) in enumerate(dataset.create_tuple_iterator()):figure.add_subplot(rows, cols, idx + 1)# plt.title(int(label))plt.axis("off")plt.imshow(image[0].asnumpy().squeeze().squeeze())  # 默认彩色,设置灰色cmap="gray"if idx == cols * rows - 1:breakplt.show()
if __name__ == "__main__":# 加载训练数据集train_path = "./datasets/DogCroissants/train"dataset_train = create_dataset(train_path, train=True)print(len(dataset_train))visualize(dataset_train)

运行结果:(成功)
在这里插入图片描述


自定义数据集

import time
import numpy as np
from mindspore.dataset import MnistDataset, GeneratorDataset, transforms, vision, text# Random-accessible object as input source
class RandomAccessDataset:def __init__(self):self._data = np.ones((5, 2))self._label = np.zeros((5, 1))def __getitem__(self, index):return self._data[index], self._label[index]def __len__(self):return len(self._data)loader = RandomAccessDataset()
dataset = GeneratorDataset(source=loader, column_names=["data", "label"])
for data in dataset:print(data)

运行结果:成功
在这里插入图片描述

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

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

相关文章

在HBuilder X中ElementUI框架的搭建

前言 本文将详解基于Vue-cli脚手架搭建的项目如何使用ElementUI ?所以在学习本篇文章内容之前建议先学习vue-cli脚手架项目的搭建和学习 使用HbuilderX快速搭建vue-cil项目https://mp.csdn.net/mp_blog/creation/editor/140043776 ElementUI框架: Element&#xff…

【Java】解决Java报错:UnsupportedOperationException in Collections

文章目录 引言一、UnsupportedOperationException的定义与概述1. 什么是UnsupportedOperationException?2. UnsupportedOperationException的常见触发场景3. 示例代码 二、解决方案1. 使用适当的集合类型2. 创建可变副本3. 使用合适的集合工厂方法4. 使用不可变集合…

帮助某企业分析人才流失问题(附方案)

网游公司如何留住人才?某大型网游公司在如何留住人才方面存在一些问题,人才流失严重,人才流失也给企业带来了不小的打击,对该网游公司的发展造成了严重影响,在日益激励的人才争夺战中,如何保留优秀人才一直…

GPT-4o技术粗粗粗解

GPT-4o是一个非常优秀的多模态大模型。它的输入是语音、文字、图像/视频。输出自然有语音、文字、图像。如果说它像一个人的能力,那还真的差不多了。可能离AGI就不远了吧!在现有的AI能力路上,SamAltman那句逆言的忠耳一定要听:不要…

ElementUI搭建使用过程

1.ElementUI概述 Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,相当于是css的框架 2.安装ElementUI 第一步:创建一个vue-cil项目 !!!(上篇文章已详细讲述搭建过…

游戏AI的创造思路-技术基础-深度学习(7)TF

重头戏TF,汽车人,变形~~~~ 现在广泛应用的GPT中,数据处理的关键点就是Transformer算法,多次多层的映射“变形”造就了其对自然语言处理能力的提升,但本篇介绍的内容中,Transformer算法是用来构建游戏AI的“…

昇思25天学习打卡营第5天 | 神经网络构建

1. 神经网络构建 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。一个神经网络模型表示为一个Cell,它由不同…

Quantlab5.0:一切围绕可实盘策略驱动开发

原创文章第573篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 2024年上半年即将结束,开始准备星球下半年的工作。 目前设想的——Quantlab5.0,之所以升级一个大版本,与4.x有很大不同。 5.0专注策略开发&…

Python28-2 机器学习算法之SVM(支持向量机)

SVM(支持向量机) 支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的监督学习模型,在机器学习领域中被广泛应用。SVM的目标是找到一个最佳的分割超平面,将不同类别的数据分开&…

【Vue】Vue.js中常见的几种语法

在 Vue.js 中,主要的语法可以分为以下几种: 插值语法 (Interpolation) 使用双大括号 {{ }} 进行文本插值。 示例: {{ message }} 指令语法 (Directives) 指令是特殊的标记,用于告诉Vue框架如何操作DOM。Vue提供了多种内置指…

【最新鸿蒙应用开发】——鸿蒙国际化

1. 国际化 鸿蒙应用开发的国际化主要是指让应用支持多种语言和适应不同地区的用户习惯。这包括对不同语言环境的支持,如文本和布局的本地化设置。要实现国际化,开发者需要准备应用程序支持的每种语言环境的一些资源,比如翻译后的文本、特定区…

理解论文笔记:基于贝叶斯网络和最大期望算法的可维护性研究

看了与上一篇研究方向一致的文章,上一篇19年的,这一篇22年的更新。若有侵权,请联系删除。 I. INTRODUCTION 介绍 主要介绍了使用贝叶斯网络和历史数据对无线传感器网络可维护性研究的重要性和必要性,并对下面的各章进行了…

【高性能服务器】单进程服务器

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 单进程服务器 …

认识100种电路之稳压电路

在电子电路中,稳压电路扮演着至关重要的角色。那么,为什么电路需要稳压?稳压的原理又是什么?以及稳压需要用到哪些元器件,数量又有多少呢?今天,就让我们一同揭开稳压电路的神秘面纱。 【电路为什…

Apple Final Cut Pro 10.8 - 专业后期制作 (视频编辑)

Apple Final Cut Pro 10.8 - 专业后期制作 (视频编辑) Final Cut Pro 10.8 Compressor 4.8 Motion 5.8 (Universal) 请访问原文链接:https://sysin.org/blog/apple-final-cut-pro/,查看最新版。原创作品,转载请保留出处。 作者主页&…

供应商关系管理(SRM)中的供应商绩效评估

供应商绩效评估是供应商关系管理(SRM)的核心组成部分,它涉及到对供应商在合作过程中的表现进行全面的分析和评价。一个有效的供应商绩效评估系统不仅可以帮助企业识别和解决供应链中的潜在问题,还可以促进供应商的持续改进和优化&…

Java学习 - Redis缓存问题与优化

缓存收益与成本 收益 加速读写降低后端、持久层的负载和压力 成本 可能导致数据不一致代码运维成本redis节点运维成本 缓存更新策略 策略一致性维护成本介绍LRU/LIRS算法剔除最差底剔除最近最少使用的数据超时剔除较差底定时删除、惰性删除主动更新最好高持久层更新&#x…

监控 Promethus的监控告警Alertmanager、Grafana

Promethus的监控告警Alertmanager Alertmanager 介绍 Prometheus的一个组件,用于定义和发送告警通知,内置多种第三方告警通知方式,同时还提供了对Webhook通知的支持基于警报规则对规则产生的警报进行分组、抑制和路由,并把告警发…

vue如何引入图标

方法1&#xff1a;iconify/vue pnpm add iconify/vue -D 网址&#xff1a;https://icon-sets.iconify.design/ 使用哪个需要安装 如下截图,安装指令&#xff1a; > npm install iconify/icons-gg在使用的页面引入 import { Icon } from “iconify/vue”; <template>…

Mysql存储过程用法:使用存储过程编程,来判断数据库中数据表中的字段是否重复,避免重复插入记录

目录 一、mysql的存储过程介绍 二、. 创建存储过程 1、准备 2、创建插入记录的存储过程 三. 调用存储过程 四. 删除存储过程 五. 修改存储过程&#xff0c;避免数据表的姓名出现重复 1、修改存储过程的方式 2、重新创建存储过程 六. 验证新的存储过程 1、插入新的记…