《昇思25天学习打卡营第04天|数据集Dataset》

数据集

  • 环境准备
# 实验环境已经预装了mindspore==2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号
!pip uninstall mindspore -y
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14
import numpy as np
from mindspore.dataset import vision
from mindspore.dataset import MnistDataset, GeneratorDataset
import matplotlib.pyplot as plt

数据集加载

  • Mnist数据集为例
  • mindspore.dateset提供的接口仅支持解压后的数据文件,使用download库下载数据集并解压。
# 从开源库下载数据集
from download import download
url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/" \"notebook/datasets/MNIST_Data.zip"
path = download(url, "./", kind="zip", replace=True)
train_dataset = MnistDataset("MNIST_Data/train", shuffle=False)

数据集迭代

def visualize(dataset):figure = plt.figure(figsize=(4, 4)) #定义图片大小cols, rows = 3, 3 #定义迭代生成图排列顺序plt.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.asnumpy().squeeze(), cmap="gray")if idx == cols * rows - 1:breakplt.show()visualize(train_dataset)

数据集常用操作

  • shuffle
    • 消除数据排列造成的分布不均问题
    train_dataset = train_dataset.shuffle(buffer_size=64)
    
  • map
    • 针对数据集指定列添加数据变换,将数据变换应用于该列数据的每个元素,并返回包含变换后元素的新数据集
      image, label = next(train_dataset.create_tuple_iterator())
      #(28, 28, 1) UInt8
      train_dataset = train_dataset.map(vision.Rescale(1.0 / 255.0, 0), input_columns='image')
      image, label = next(train_dataset.create_tuple_iterator())
      #Output (28, 28, 1) Float32
      
  • batch - 将数据集打包成batch是在有限硬件资源下使用梯度下降进行模型优化的折中办法,可以保证梯度下降的随机性和优化计算量
    train_dataset = train_dataset.batch(batch_size=32)
    image, label = next(train_dataset.create_tuple_iterator())
    # Output (32, 28, 28, 1) Float32
    

自定义数据集

可随机访问数据集

  • 通过索引/键直接访问对应位置的数据样本
    # 可随机访问数据集
    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)
    

可迭代数据集

  • 通过迭代方式逐步获取数据样本。适用于随机访问成本不太高或者不可行的方案。
    #迭代器作为输入源
    class IterableDataset():def __init__(self, start, end):'''init the class object to hold the data'''self.start = startself.end = enddef __next__(self):'''iter one data and return'''return next(self.data)def __iter__(self):'''reset the iter'''self.data = iter(range(self.start, self.end))return self
    

生成器

  • 直接依赖Python的生成器类型generator返回数据,直至生成器抛出异常
    def my_generator(start, end):for i in range(start, end):yield i
    

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

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

相关文章

基于Tools体验NLP编程的魅力

大模型能理解自然语言,从而能解决问题,但是就像人类大脑一样,大脑只能发送指令,实际行动得靠四肢,所以LangChain4j提供的Tools机制就是大模型的四肢。 大模型的不足 大模型在解决问题时,是基于互联网上很…

Tomcat部署与优化

Tomcat部署与优化 Tomcat简述 server: 服务器,Tomcat运行的进程实例,一个Server中可以有多个service,但通常就一个 service:服务,用来组织Engine(引擎)和Connector(连接…

gdb及其使用

gdb调试一&#xff1a; 首先进入gdb&#xff0c;确定好进程&#xff0c;输入进程号 确定要调试哪个文件&#xff0c;然后输入&#xff1a;&#xff08;b为打断点&#xff09; (gdb) b serialization_protobuffer.h:write<ros::serialization::OStream>(ros::serializat…

MySQL的limit关键字和聚合函数讲解

目录 一、MySQL数据库介绍二、MySQL聚合函数三、MySQL数据排序分组四、MySQL的limit关键字 一、MySQL数据库介绍 MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后被Sun Microsystems收购&#xff0c;最终成为Oracle公司的一部…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道&#xff0c;确定一个三角形至少需要三个不共线的点&#xff0c;因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为&#xff1a; (xi-x)2(yi-y)2R2 &#xff08;1…

【Annotation】SpringBoot自定义注解

1. 自定义注释是基于SpringAOP实现的 Spring AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面编程&#xff09;是Spring框架中的一个强大功能模块&#xff0c;它实现了AOP编程模型&#xff0c;允许开发者将横切关注点&#xff08;如日志记录、事务管理、安全…

新火种AI|苹果要将苹果智能做成AI时代的APP Store?

作者&#xff1a;一号 编辑&#xff1a;美美 苹果还是想要自己做AI时代的“APP Store”。 自从去年开始落了队&#xff0c;苹果现在AI上开始高歌猛进。今年WWDC上展示的AI产品和与OpenAI的合作只是开始。有消息称&#xff0c;苹果正与Meta等AI巨头展开深入合作&#xff0c;这…

随想录 Day 74 Floyd / A*

随想录 Day 74 Floyd / A* Bellman_ford 队列优化 97. 小明逛公园 时间限制&#xff1a;1.000S 空间限制&#xff1a;256MB 题目描述 小明喜欢去公园散步&#xff0c;公园内布置了许多的景点&#xff0c;相互之间通过小路连接&#xff0c;小明希望在观看景点的同时&#xff…

小和问题和逆序对问题

小和问题和逆序对问题 小和问题&#xff0c; 在一个数组中&#xff0c;每一个数左边的数中比当前数小的数累加起来&#xff0c;叫做这个数组的小和&#xff0c;求一个数组的小和 直接遍历&#xff1a; int littleSum1(int* arr, int L, int R) {int temp 0;for (int i L; …

Spring底层原理之bean的加载方式四 @import 注解

bean的加载方式四 import 第四种bean的导入方式 是import导入的方式 在配置类上面加上注解就行 package com.bigdata1421.config;import com.bigdata1421.bean.Dog; import org.springframework.context.annotation.Import;Import(Dog.class) public class SpringConfig4 {…

CesiumJS【Basic】- #041 绘制纹理线(Entity方式)- 需要自定义着色器

文章目录 绘制纹理线(Entity方式)- 需要自定义着色器1 目标2 代码2.1 main.ts3 资源文件绘制纹理线(Entity方式)- 需要自定义着色器 1 目标 使用Entity方式绘制纹理线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer

Java并发编程:最佳实践与性能优化

Java并发编程&#xff1a;最佳实践与性能优化 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 介绍并发编程 在当今软件开发中&#xff0c;多核处理器和分布式…

K8S学习教程(一):使用PetaExpress云服务器安装Minikube 集群题

什么是Minikube Minikube是一款工具&#xff0c;主要用于在本地运行 Kubernetes 集群。Kubernetes 开源的平台&#xff0c;用于自动化容器化应用的部署、扩展和管理&#xff0c;而Minikube 使得开发人员能够在本地机器上轻松创建一个单节点的 Kubernetes 集群&#xff0c;从而…

【高级篇】第6章 Elasticsearch 高级查询与搜索优化

在Elasticsearch的深入应用之旅中,掌握高级查询技巧与优化搜索性能是提升数据处理效率的关键。本章将带你深入探索Elasticsearch的高级查询特性,揭示搜索性能优化的奥秘,以及如何利用高亮与建议API增强用户体验。 6.1 复杂查询 6.1.1 Nested查询 Nested基本概念与用法: …

IT设备监控模板:支持多种监控工具和平台的集成和整合

IT设备监控模板管理在支持多种监控工具和平台方面发挥着关键作用&#xff0c;它通过提供统一的配置和管理界面&#xff0c;使运维人员能够灵活地适应和整合不同的监控工具和平台。以下是IT设备监控模板管理如何支持多种监控工具和平台的具体方式&#xff1a; 一、抽象化和标准…

如何使用AI学习一门编程语言?

无论你是软件开发新手还是拥有几十年的丰富经验&#xff0c;总是需要学习新知识。TIOBE Index追踪50种最受欢迎的编程语言&#xff0c;许多生态系统为职业发展和横向转型提供了机会。鉴于现有技术具有的广度&#xff0c;抽空学习一项新技能并有效运用技能可能困难重重。 最近我…

ARCGIS python 裁剪栅格函数 arcpy.management.Clip

ARCGIS python 裁剪栅格函数 arcpy.management.Clip 1 功能 裁剪掉栅格数据集、镶嵌数据集或图像服务图层的一部分。 2 使用情况 基于模板范围提取部分栅格数据集&#xff0c;输出与模板范围相交的所有像素使用以 x 和 y 坐标的最小值和最大值确定的包络矩形或使用输出范围文…

MATLAB-振动问题:单自由度阻尼振动系统受迫振动

一、基本理论 二、MATLAB实现 单自由度阻尼振动系统受迫振动&#xff0c;MATLAB代码如下&#xff1a; clear; clc; close allA 1; psi 0; F0 10; D 20; Rm 0.5; M 1; omega 2; delta Rm / (2*M); omega0 sqrt(D / M); Omega sqrt(omega0^2 - delta^2); Zm Rm i *…

多线程的三种创建方式

继承Thread类的方式进行实现 public class MyThread extends Thread{ Override public void run(){//多线程具体业务逻辑} }在main方法里面创建子类对象&#xff0c;开启线程 public static void main(String[] args) {MyThread t1 new MyThread(); MyThread t2 new MyThrea…

LLM大模型工程师面试经验宝典--基础版(2024.7月最新)

1.简单介绍一下大模型【LLMs】&#xff1f; 大模型&#xff1a;一般指1亿以上参数的模型&#xff0c;但是这个标准一直在升级&#xff0c;目前万亿参数以上的模型也有了。大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是针对语言的大模型。 2.目前主…