昇思25天学习打卡营第1天|快速入门

昇思25天学习打卡营第1天|快速入门

目录

昇思25天学习打卡营第1天|快速入门实操教程

一、MindSpore内容简介

主要特点:

MindSpore的组成部分:

二、入门实操步骤

1. 安装必要的依赖包

2. 下载并处理数据集

3. 构建网络模型

4. 训练模型

5. 测试模型性能

6. 进行多轮训练

7. 示例输出

总结

 博主v:XiaoMing_Java

博主v:XiaoMing_Java


一、MindSpore内容简介

本文主要是借助昇思大模型平台的Jupyter云上开发学习昇思MindSpore入门知识

昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。

设计目标是使得深度学习的开发变得更加简单高效,并提供统一的部署方案。它能够支持多种运行环境,包括云端、边缘和终端设备。

主要特点:

  1. 易开发:MindSpore 提供了友好的API接口,使得开发者可以快速上手,同时调试过程也变得更加直观。
  2. 高效执行:框架在计算效率、数据预处理和分布式训练方面进行了优化,可以充分利用硬件资源。
  3. 全场景支持:无论是在云端还是边缘设备,甚至是小型IoT设备,MindSpore都能提供良好的支持。

MindSpore的组成部分:

  • ModelZoo(模型库):提供丰富的深度学习算法模型,开发者也可以贡献自己的模型。
  • MindSpore Extend(扩展库):支持领域扩展,如图神经网络(GNN)、深度概率编程等。
  • MindSpore Science(科学计算):专为科学计算设计,包含领先的数据集和高精度模型。
  • MindExpression(全场景统一API):支持Python前端表达与编程接口,简化开发流程。
  • MindSpore Data(数据处理层):提供高效的数据处理和常用数据集加载功能。
  • MindCompiler(AI编译器):优化计算图,支持各种硬件加速。
  • MindRT(运行时系统):实现高效的运行时支持,适用于不同场景。
  • MindSpore Insight(可视化调试工具):提供可视化训练监控和调优能力。
  • MindSpore Armour(安全增强库):针对企业级应用提供安全与隐私保护功能。

二、入门实操步骤

接下来,我们将通过MindSpore的API来快速构建和训练一个简单的深度学习模型。

1. 安装必要的依赖包

首先,在进行任何开发之前,您需要确保已经安装了MindSpore及其相关依赖。可以使用以下命令进行安装:

pip install mindspore

然后我们导入所需的库:

import mindspore
from mindspore import nn
from mindspore.dataset import vision, transforms
from mindspore.dataset import MnistDataset

2. 下载并处理数据集

在我们的示例中,我们将使用MNIST数据集,这是一个经典的手写数字识别数据集。下面是下载该数据集的代码:

# 导入下载工具
from download import download# 定义数据集的URL
url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/MNIST_Data.zip"
# 下载数据集并解压
path = download(url, "./", kind="zip", replace=True)

3. 构建网络模型

接下来,我们定义一个简单的神经网络模型,该模型由多个全连接层和ReLU激活函数组成:

# 定义模型结构
class Network(nn.Cell):def __init__(self):super().__init__()self.flatten = nn.Flatten()  # 扁平化层self.dense_relu_sequential = nn.SequentialCell(nn.Dense(28*28, 512),  # 输入层到隐藏层nn.ReLU(),              # 激活函数nn.Dense(512, 512),     # 隐藏层到隐藏层nn.ReLU(),nn.Dense(512, 10)       # 隐藏层到输出层)def construct(self, x):x = self.flatten(x)          # 扁平化输入数据logits = self.dense_relu_sequential(x)  # 前向传播return logitsmodel = Network()
print(model)  # 打印模型结构

 

4. 训练模型

接下来,我们需要定义损失函数和优化器,然后编写训练步骤:

# 实例化损失函数和优化器
loss_fn = nn.CrossEntropyLoss()  # 使用交叉熵损失
optimizer = nn.SGD(model.trainable_params(), learning_rate=1e-2)  # Stochastic Gradient Descent# 定义前向传播函数
def forward_fn(data, label):logits = model(data)  # 模型预测loss = loss_fn(logits, label)  # 计算损失return loss, logits# 获取梯度函数
grad_fn = mindspore.value_and_grad(forward_fn, None, optimizer.parameters, has_aux=True)# 定义单步训练函数
def train_step(data, label):(loss, _), grads = grad_fn(data, label)  # 计算损失和梯度optimizer(grads)  # 更新参数return lossdef train(model, dataset):size = dataset.get_dataset_size()  # 数据集大小model.set_train()  # 设置模型为训练模式for batch, (data, label) in enumerate(dataset.create_tuple_iterator()):loss = train_step(data, label)  # 单步训练if batch % 100 == 0:loss, current = loss.asnumpy(), batch  # 转换为numpy格式print(f"loss: {loss:>7f}  [{current:>3d}/{size:>3d}]")

5. 测试模型性能

编写测试函数以评估模型在测试集上的表现:

def test(model, dataset, loss_fn):num_batches = dataset.get_dataset_size()  # 测试集大小model.set_train(False)  # 设置模型为评估模式total, test_loss, correct = 0, 0, 0for data, label in dataset.create_tuple_iterator():pred = model(data)  # 模型预测total += len(data)  # 累计样本数test_loss += loss_fn(pred, label).asnumpy()  # 计算总损失correct += (pred.argmax(1) == label).asnumpy().sum()  # 计算正确预测数test_loss /= num_batches  # 平均损失correct /= total  # 正确率print(f"Test: \n Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f} \n")

6. 进行多轮训练

训练过程需要多次迭代数据集,一次完整的迭代称为一轮(epoch)。可以使用如下代码进行训练和测试:

epochs = 3  # 设置训练轮数
for t in range(epochs):print(f"Epoch {t+1}\n-------------------------------")train(model, train_dataset)  # 训练test(model, test_dataset, loss_fn)  # 测试结果
print("Done!")

 

7. 示例输出

在每一轮训练后,您将会看到如下输出:

 

总结

通过上述步骤,我们成功地使用MindSpore构建并训练了一个简单的深度学习模型,并验证了模型的性能。这一过程展示了MindSpore的易用性和强大功能,非常适合新手入门学习。

在实际操作中,您可以根据需要调整模型的结构、超参数以及数据集,以探索更多深度学习技术的可能性。希望本教程对您有所帮助!

 博主v:XiaoMing_Java

博主v:XiaoMing_Java

 📫作者简介:嗨,大家好,我是 小 明(小明java问道之路),互联网大厂后端研发专家,2022博客之星TOP3 / 博客专家 / CSDN后端内容合伙人、InfoQ(极客时间)签约作者、阿里云签约博主、全网5万粉丝博主。


🍅 文末获取联系 🍅  👇🏻 精彩专栏推荐订阅收藏 👇🏻

专栏系列(点击解锁)

学习路线(点击解锁)

知识定位

🔥Redis从入门到精通与实战🔥

Redis从入门到精通与实战

围绕原理源码讲解Redis面试知识点与实战

🔥MySQL从入门到精通🔥

MySQL从入门到精通

全面讲解MySQL知识与企业级MySQL实战

🔥计算机底层原理🔥

深入理解计算机系统CSAPP

以深入理解计算机系统为基石,构件计算机体系和计算机思维

Linux内核源码解析

围绕Linux内核讲解计算机底层原理与并发

🔥数据结构与企业题库精讲🔥

数据结构与企业题库精讲

结合工作经验深入浅出,适合各层次,笔试面试算法题精讲

🔥互联网架构分析与实战🔥

企业系统架构分析实践与落地

行业最前沿视角,专注于技术架构升级路线、架构实践

互联网企业防资损实践

互联网金融公司的防资损方法论、代码与实践

🔥Java全栈白宝书🔥

精通Java8与函数式编程

本专栏以实战为基础,逐步深入Java8以及未来的编程模式

深入理解JVM

详细介绍内存区域、字节码、方法底层,类加载和GC等知识

深入理解高并发编程

深入Liunx内核、汇编、C++全方位理解并发编程

Spring源码分析

Spring核心七IOC/AOP等源码分析

MyBatis源码分析

MyBatis核心源码分析

Java核心技术

只讲Java核心技术

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Python TensorFlow】入门到精通

TensorFlow 是一个开源的机器学习框架,由 Google 开发,广泛应用于机器学习和深度学习领域。本篇将详细介绍 TensorFlow 的基础知识,并通过一系列示例来帮助读者从入门到精通 TensorFlow 的使用。 1. TensorFlow 简介 1.1 什么是 TensorFlow…

Python 学习完基础语法知识后,如何进一步提高?

入门Python后,就可以拿些小案例练手了,这时候千万不要傻乎乎地成天啃语法书。 编程是一门实践的手艺,讲究孰能生巧。不管是去手撸算法、或者照葫芦画瓢写几个小游戏都可以让你的Python突飞猛进。 之前看github比较多,推荐给大家…

Java:数据结构-再谈String类

字符串常量池 首先我们来思考这段代码,为什么运行结果一个是true,一个是false呢? public class Test {public static void main(String[] args) {String s1"123";String s2"123";String s3new String("555")…

书生第四期实训营基础岛——L1G2000 玩转书生「多模态对话」与「AI搜索」产品

基础任务 MindSearch使用示例 书生浦语使用示例 书生万象使用示例 进阶任务 问题:目前生成式AI在学术和工业界有什么最新进展? 回答截图: 知乎回答链接:目前生成式AI在学术和工业界有什么最新进展?

ReactPress:重塑内容管理的未来

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,欢迎一起共建,感谢Star。 ReactPress:重塑内容管理的未来 在当今信息爆炸的时代,一个高效、易用的内容管理系统&#xff0…

短视频矩阵系统源码/抖去推源头技术4年开发

#短视频矩阵系统# #短视频矩阵系统源码# #短视频矩阵系统源码开发# #短视频矩阵系统源头技术开发# 抖音短视频矩阵系统集成开发是指利用抖音平台的开放接口和API,构建一个系统,该系统能够管理多个抖音矩阵账号,实现内容的统一发布、账号管理、…

CJ/T188-2004 报文举例

CJ/T188-2004 报文举例 # 读水表地址 # 请求报文: FE FE FE FE 68 AA AA AA AA AA AA AA AA 03 03 81 0A 00 49 16FE FE FE FE :前导字符 FE68 :起始字符AA :仪表类型AA AA AA AA AA AA AA :仪表地址(当…

JavaEE进阶---第一个SprintBoot项目创建过程我的感受

文章目录 1.我的创建感受2.环境配置说明2.1xml文件国内源2.2配置流程 3.创建项目4.项目创建说明5.第一个程序--helloworld 1.我的创建感受 今天是学习这个spring boot项目创建的一天,这个确实过程坎坷,于是我自己决定弄一个这个IDEA的 专业版本&#xf…

7.1、实验一:RIPv1配置

一、源文件 7.1、实验一:RIPv1配置: https://url02.ctfile.com/d/61945102-63657205-d343fe?p2707 (访问密码: 2707) 二、实验目的 学会配置RIPv1路由 查看和调试RIPv1路由协议相关信息 三、实验要求 1.拓扑图 2. 四、开始实验 1.配置ip 配置R1 配置R2 配置…

【ARM Linux 系统稳定性分析入门及渐进 1.3 -- Crash工具编译过程】

文章目录 Build Procedure安装二进制 RPM从源代码重建构建过程从 tar 映像构建ARM 平台 Crash 工具安装从源 RPM 构建Build Procedure 从 RHEL3 版本开始,如果在系统安装时选择了开发工具包集(Development Tools),crash 工具会自动安装。然而,对于其他内核版本,或者如果…

【2023工业图像异常检测文献】GRAD: 基于异常生成和重权密集对比模式的异常检测方法

Generating and Reweighting Dense Contrastive Patterns for Unsupervised Anomaly Detection 1、Background 图像异常检测在各个领域扮演着至关重要的角色,包括工业产品缺陷检测、医学图像病变检测、使用X光图像的安全检查以及视频监控。 然而,由于无…

计算机毕业设计Hadoop+Spark大模型微博情感分析 微博舆情分析 微博爬虫 微博可视化 微博大数据分析 微博大数据 大数据毕业设计 Hive数据仓库

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

原型设计软件Axure RP 11 现已发布,更快、更实用的原型设计丨附下载

Axure RP是一套专门为网站或应用程序所设计的快速原型设计工具, 可以让应用网站策划人员或网站功能界面设计师更加快速方便的建立Web AP和Website的线框图、流程图、原型和规格。Axure RP 11(下载试用) 现已发布,更快、更实用的原…

数据结构-IndexTree结构解析(一)

1.IndexTree IndexTree解决的问题是什么呢?可以从求前缀和入手这个问题。 1.1前缀和数组 简单封装一个前缀和数组: package com.xinghai.arr;import java.util.Arrays;/*** 前缀和数组*/ public class PrefixSumArr {// 存储前缀和数据private int[] p…

外汇EA如何进行历史数据回测?

很多人在下载EA后,直接将其投入实盘交易,而忽略了EA策略的优缺点以及其历史表现。尽管外汇平台提供的历史数据可能不完全准确,但为了确保资金安全和了解EA的真实效果,强烈建议在实盘交易前,先进行充分的历史回测。通过…

聚观早报 | 一加Ace5配置细节曝光;OpenAI重启机器人团队

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 11月7日消息 一加Ace5配置细节曝光 OpenAI重启机器人团队 红魔10 Pro首发搭载悟空屏 华为MatePad 11.5正式发布 …

天融信运维审计系统 download 任意文件读取漏洞复现

0x01 产品描述: 天融信运维审计系统(TopSAG)是基于自主知识产权的NGTOS安全操作系统平台和多年网络安全防护经验积累研发而成,以4A管理理念为基础、安全代理为核心,提供事前预防、事中监控、事后审计的全方位运维安全解…

centos7安装java

1、首先从官网下载linux的java安装包 2、解压 tar -zxvf jdk-8u231-linux-x64.tar.gz3、修改配置文件 vim /etc/profile添加环境变量 保存后退出 4、刷新配置文件 source /etc/profile

变压吸附制氧设备的型号解析

变压吸附制氧设备(PSA制氧设备)是一种能够在常温常压条件下,利用PSA专用分子筛选择性吸附空气中的氮气、二氧化碳和水等杂质,从而取得纯度较高的氧气(一般为93%2)的设备。关于变压吸附制氧设备的型号,由于市场上存在众多品牌和制造商&#xf…

创新材料科技:铜冷却壁助力高炉节能降耗

高炉用铜冷却壁是高炉内部的一种构件,通常用于高炉的炉身部分。它的主要功能是在高炉冶炼过程中冷却炉壁,以防止炉壁过热。铜冷却壁通常由铜制成,因为铜具有良好的导热性和耐腐蚀性,能够有效地将热量从高炉内部传导到外部&#xf…