昇思25天学习打卡营第1天|初识MindSpore
昇思MindSpore介绍
昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。
其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以及端侧场景。
设计理念
- 支持全场景统一部署
昇思MindSpore源于全产业的最佳实践,向数据科学家和算法工程师提供了统一的模型训练、推理和导出等接口,支持端、边、云等不同场景下的灵活部署,推动深度学习和科学计算等领域繁荣发展。
- 提供Python编程范式,简化AI编程
昇思MindSpore提供了Python编程范式,用户使用Python原生控制逻辑即可构建复杂的神经网络模型,AI编程变得简单。
- 提供动态图和静态图统一的编码方式
目前主流的深度学习框架的执行模式有两种,分别为静态图模式和动态图模式。静态图模式拥有较高的训练性能,但难以调试。动态图模式相较于静态图模式虽然易于调试,但难以高效执行。 昇思MindSpore提供了动态图和静态图统一的编码方式,大大增加了静态图和动态图的可兼容性,用户无需开发多套代码,仅变更一行代码便可切换动态图/静态图模式,用户可拥有更轻松的开发调试及性能体验。例如:
设置set_context(mode=PYNATIVE_MODE)可切换成动态图模式。
设置set_context(mode=GRAPH_MODE)可切换成静态图模式。
- 采用AI和科学计算融合编程,使用户聚焦于模型算法的数学原生表达
在友好支持AI模型训练推理编程的基础上,扩展支持灵活自动微分编程能力,支持对函数、控制流表达情况下的微分求导和各种如正向微分、高阶微分等高级微分能力的支持,用户可基于此实现科学计算常用的微分函数编程表达,从而支持AI和科学计算融合编程开发。
- 分布式训练原生
随着神经网络模型和数据集的规模不断增大,分布式并行训练成为了神经网络训练的常见做法,但分布式并行训练的策略选择和编写十分复杂,这严重制约着深度学习模型的训练效率,阻碍深度学习的发展。MindSpore统一了单机和分布式训练的编码方式,开发者无需编写复杂的分布式策略,在单机代码中添加少量代码即可实现分布式训练,提高神经网络训练效率,大大降低了AI开发门槛,使用户能够快速实现想要的模型。
例如设置set_auto_parallel_context(parallel_mode=ParallelMode.AUTO_PARALLEL)便可自动建立代价模型,为用户选择一种较优的并行模式。
入门
%%capture captured_output
# 实验环境已经预装了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 mindspore
from mindspore import nn
from mindspore.dataset import vision, transforms
from mindspore.dataset import MnistDataset
处理数据集
MindSpore提供基于Pipeline的数据引擎,通过数据集(Dataset)和数据变换(Transforms)实现高效的数据预处理。在本教程中,我们使用Mnist数据集,自动下载完成后,使用mindspore.dataset
提供的数据变换进行预处理。
本章节中的示例代码依赖
download
,可使用命令pip install download
安装。如本文档以Notebook运行时,完成安装后需要重启kernel才能执行后续代码。
# Download data from open datasets
from download import downloadurl = "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')
test_dataset = MnistDataset('MNIST_Data/test')
打印数据集中包含的数据列名,用于dataset的预处理。
MindSpore的dataset使用数据处理流水线(Data Processing Pipeline),需指定map、batch、shuffle等操作。这里我们使用map对图像数据及标签进行变换处理,然后将处理好的数据集打包为大小为64的batch。
def datapipe(dataset, batch_size):image_transforms = [vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean=(0.1307,), std=(0.3081,)),vision.HWC2CHW()]label_transform = transforms.TypeCast(mindspore.int32)dataset = dataset.map(image_transforms, 'image')dataset = dataset.map(label_transform, 'label')dataset = dataset.batch(batch_size)return dataset
# Map vision transforms and batch dataset
train_dataset = datapipe(train_dataset, 64)
test_dataset = datapipe(test_dataset, 64)
可使用create_tuple_iterator 或create_dict_iterator对数据集进行迭代访问,查看数据和标签的shape和datatype。
for image, label in test_dataset.create_tuple_iterator():
print(f"Shape of image [N, C, H, W]: {image.shape} {image.dtype}“)
print(f"Shape of label: {label.shape} {label.dtype}”)
break
Shape of image [N, C, H, W]: (64, 1, 28, 28) Float32
Shape of label: (64,) Int32
for data in test_dataset.create_dict_iterator():
print(f"Shape of image [N, C, H, W]: {data[‘image’].shape} {data[‘image’].dtype}“)
print(f"Shape of label: {data[‘label’].shape} {data[‘label’].dtype}”)
break
Shape of image [N, C, H, W]: (64, 1, 28, 28) Float32
Shape of label: (64,) Int32
更多细节详见数据集 Dataset与数据变换 Transforms。
相关文章:

昇思25天学习打卡营第1天|初识MindSpore
昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架…...
C语言字节对齐技术在嵌入式、网络与操作系统中的应用与优化
第一部分:嵌入式系统中的字节对齐 嵌入式系统通常对性能和资源有着严格的要求。在这些系统中,字节对齐的正确使用可以显著提高数据访问速度,减少内存占用,并提高系统的整体效率。 一、嵌入式系统中的字节对齐挑战 嵌入式系统中…...
如何理解李彦宏说的”不要卷模型,要卷应用
文章目录 👿AI技术的发展与转变👿不要卷模型,要卷应用👿避免“超级应用陷阱”👿大模型技术与个性化应用的关系👿结语 在2024年7月4日于上海世博中心举办的世界人工智能大会上,百度创始人、董事长…...
三、Python日志系统之监控邮件发送
import smtplib from email.mime.text import MIMEText import time import os import datetime from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler# 邮件配置 SMTP_SERVER smtp.example.com SMTP_PORT 587 SMTP_USERNAME your_…...

16张支付牌照将到期,新规落地以来,支付牌照的首次续展。
7月9日,包括瑞银信、乐刷、畅捷支付在内的16家第三方支付机构的支付牌照将到期,这些公司面临续展的重大考验。 这是《非银行支付机构监督管理条例》实施以来,支付牌照的首次续期。 其中,最受瞩目的可能是瑞银信。在范一飞落马后&a…...

VS2022 python 中文注释报错如何解决?
1. 相同的代码,在VS2022 中报错; # 初始化字典 my_dict {apple: 3, banana: 5} # 遍历字典 for index, key in enumerate(my_dict): print(f"index {index}, key {key} , value {key}") 在PyCharm Community Edition 2024.1…...

GitLab介绍,以及add an SSH key
GitLab GitLab 是一个用于仓库管理系统的开源项目,现今并在国内外大中型互联网公司广泛使用。 git,gitlab,github区别 git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面; gitlab 是一个基于git实现的在线代码仓库…...

计算机视觉——opencv快速入门(二) 图像的基本操作
前言 上一篇文章中我们介绍了如何配置opencv,而在这篇文章我们主要介绍的是如何使用opencv来是实现一些常见的图像操作。 图像的读取,显示与存储 读取图像文件 在opencv中我们利用imread函数来读取图像文件,函数语法如下: imagecv2.imre…...

ViewPager
作用 实现翻页的效果。 1、在activity_main.xml中创建ViewPager <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…...

linux watchdog 子系统
目录 一、watchdog 子系统二、关键数据结构2.1 watchdog_device2.2 watchdog_ops2.3 watchdog_info 三、重要流程3.1 watchdog 初始化3.2 watchdog 设备注册3.3 watchdog 设备文件操作函数3.4 watchdog 喂狗用户空间 watchdog(busybox)内核空间喂狗疑问 …...
论文引用h指数
文章目录 1、描述2、关键字3、思路4、notes5、复杂度6、code 1、描述 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” &…...
四、Python日志系统之日志文件的备份和删除
import os import datetime import logging from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer """实现代码中处理日志文件的备份和删除""" class UserLog:def __init__(self):self.logger logging…...
Android Camera Framework:从基础到高级
目录 基础知识1. Camera API 与 Camera2 API2. 权限 关键组件1. CameraManager2. CameraDevice3. CaptureRequest 和 CaptureSession 高级功能1. 实时滤镜2. 手动控制3. 高动态范围 (HDR) 和夜间模式 在现代移动应用开发中,相机功能已成为许多应用程序的核心组成部分…...
面向 Rust 新手的 Cargo 教程:轻松上手
面向 Rust 新手的 Cargo 教程:轻松上手 引言Cargo 简介定义与重要性与传统构建工具的对比 安装与配置 Cargo在不同操作系统上安装 Rust 和 CargoWindowsmacOSLinux 配置 Cargo 环境变量与路径第一个 Cargo 项目 主要功能概述结语 引言 在编程语言的浩瀚宇宙中&…...

MSPM0G3507——时钟配置(与32关系)
先将32端时钟配置分为1,2,3如图 1是PSC左边未经分频的时钟源(HZ) 2是经过PSC分频的时钟信号(HZ) 3是最终的输出信号(HZ) 3输出的是一个定时器周期的HZ,可以转换成时间 …...

Linux 创建新虚拟机的全过程图解
一、创建新虚拟机 1.选择自定义 2.直接下一步 3.选择稍后安装 4.设置虚拟机名和安装位置 5.配置处理器(处理器数量:4、每个处理器的内核:2) 6. 内存选择 7.网络类型 8. IO控制器类型-默认推荐 9.磁盘类型-默认推荐 10.选择虚拟磁…...

【已解决】腾讯云安装了redis,但是本地访问不到,连接不上
汇总了我踩过的所有问题。 查看配置文件redis.conf 1、把bind 127.0.0.1给注释掉(前面加个#就是)或者改成bind 0.0.0.0,因为刚下载时它是默认只让本地访问。(linux查找文档里的内容可以输入/后面加需要匹配的内容,然后…...
python批量去除图片文字水印
#!/usr/bin/env python # -*- coding:utf-8 -*- # 需要安装的库 # pip install paddlepaddle -i https://mirrors.aliyun.com/pypi/simple/ # pip install paddleocr -i https://mirrors.aliyun.com/pypi/simple/ # pip install cv2 -i https://mirrors.aliyun.com/pypi/simple…...

C++ Qt 自制开源科学计算器
C Qt 自制开源科学计算器 项目地址 软件下载地址 目录 0. 效果预览1. 数据库准备2. 按键&快捷键说明3. 颜色切换功能(初版)4. 未来开发展望5. 联系邮箱 0. 效果预览 普通计算模式效果如下: 科学计算模式效果如下: 更具体的功能演示视频见如下链接…...
相机光学(二十八)——感光度(ISO)
感光度又称为ISO,是指相机对光线的敏感程度。ISO值越大,感光度越高,拍出来的照片就会越亮,反之就会越暗。但是ISO过高会使照片噪点也随之变高。感光度,又称为ISO值,是衡量底片对于光的灵敏程度,…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...