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

 昇思大模型平台

昇思MindSpore介绍

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

其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以及端侧场景。

昇思MindSpore总体架构如下图所示:

 

  • ModelZoo(模型库):ModelZoo提供可用的深度学习算法网络,也欢迎更多开发者贡献新的网络(ModelZoo地址)。
  • MindSpore Extend(扩展库):昇思MindSpore的领域扩展库,支持拓展新领域场景,如GNN/深度概率编程/强化学习等,期待更多开发者来一起贡献和构建。
  • MindSpore Science(科学计算):MindScience是基于昇思MindSpore融合架构打造的科学计算行业套件,包含了业界领先的数据集、基础模型、预置高精度模型和前后处理工具,加速了科学行业应用开发。
  • MindExpression(全场景统一API):基于Python的前端表达与编程接口,支持两个融合(函数/OOP编程范式融合、AI+数值计算表达融合)以及两个统一(动静表达统一、单机分布式表达统一)。
  • 第三方前端:支持第三方多语言前端表达,未来计划陆续提供C/C++等第三方前端的对接工作,引入更多的第三方生态。
  • MindSpore Data(数据处理层):提供高效的数据处理、常用数据集加载等功能和编程接口,支持用户灵活地定义处理注册和pipeline并行优化。
  • MindCompiler(AI编译器):图层的核心编译器,主要基于端云统一的MindIR实现三大功能,包括硬件无关的优化(类型推导、自动微分、表达式化简等)、硬件相关优化(自动并行、内存优化、图算融合、流水线执行等)、部署推理相关的优化(量化、剪枝等)。
  • MindRT(全场景运行时):昇思MindSpore的运行时系统,包含云侧主机侧运行时系统、端侧以及更小IoT的轻量化运行时系统。
  • MindSpore Insight(可视化调试调优工具):昇思MindSpore的可视化调试调优工具,能够可视化地查看训练过程、优化模型性能、调试精度问题、解释推理结果(了解更多)。
  • MindSpore Armour(安全增强库):面向企业级运用时,安全与隐私保护相关增强功能,如对抗鲁棒性、模型安全测试、差分隐私训练、隐私泄露风险评估、数据漂移检测等技术(了解更多)。

AI实验室

 

快速入门实操教程

%%capture captured_output
# 实验环境已经预装了mindspore==2.3.0rc1,如需更换mindspore版本,可更改下面mindspore的版本号
!pip uninstall mindspore -y
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.3.0rc1

处理数据集

MindSpore提供基于Pipeline的数据引擎,通过数据集(Dataset)数据变换(Transforms)实现高效的数据预处理。在本教程中,我们使用Mnist数据集,自动下载完成后,使用mindspore.dataset提供的数据变换进行预处理。

网络构建

mindspore.nn类是构建所有网络的基类,也是网络的基本单元。当用户需要自定义网络时,可以继承nn.Cell类,并重写__init__方法和construct方法。__init__包含所有网络层的定义,construct中包含数据(Tensor)的变换过程。

模型训练

在模型训练中,一个完整的训练过程(step)需要实现以下三步:

  1. 正向计算:模型预测结果(logits),并与正确标签(label)求预测损失(loss)。
  2. 反向传播:利用自动微分机制,自动求模型参数(parameters)对于loss的梯度(gradients)。
  3. 参数优化:将梯度更新到参数上。

MindSpore使用函数式自动微分机制,因此针对上述步骤需要实现:

  1. 定义正向计算函数。
  2. 使用value_and_grad通过函数变换获得梯度计算函数。
  3. 定义训练函数,使用set_train设置为训练模式,执行正向计算、反向传播和参数优化。

总结:

昇思MindSpore是一个面向全场景的深度学习框架,旨在提供易开发、高效执行和全场景统一部署的解决方案。下面我会简要总结一下你提供的内容,并补充一些相关信息。
昇思MindSpore概述

1.易开发:
提供API友好、调试难度低的特性,使得开发者能够快速上手并进行深度学习模型的开发和调试。
2.高效执行:
包括计算效率、数据预处理效率和分布式训练效率。昇思MindSpore通过优化计算和数据处理流程,提高模型训练和推理的效率。
3.全场景统一部署:
支持云、边缘和端侧等多种部署场景,使得开发的模型可以无缝应用于不同的环境中。

主要组成部分

ModelZoo(模型库):提供预训练的深度学习算法网络,同时也欢迎开发者贡献新的网络模型。
MindSpore Extend(扩展库):支持领域扩展,如图神经网络(GNN)、深度概率编程和强化学习等,鼓励开发者贡献和构建新的应用场景。
MindSpore Science(科学计算):针对科学计算领域打造的套件,提供数据集、基础模型和预置高精度模型,加速科学应用的开发。
MindExpression(全场景统一API):提供Python的前端表达与编程接口,支持多种编程范式和统一的表达方式,便于开发者进行灵活的模型构建和优化。
MindCompiler(AI编译器):核心编译器,优化模型的执行效率,包括硬件无关和硬件相关的优化,支持量化、剪枝等技术。
MindRT(全场景运行时):运行时系统,支持云侧、主机侧和端侧的运行,包括轻量化的IoT运行时系统。
MindSpore Insight(可视化调试调优工具):提供可视化工具,帮助开发者进行模型的调试、性能优化和结果解释。
MindSpore Armour(安全增强库):面向企业级应用,提供安全与隐私保护相关的增强功能,如对抗鲁棒性、差分隐私训练等技术。

快速入门实操教程概述

环境设置:使用指定版本的MindSpore进行实验,确保环境的兼容性和稳定性。
数据处理:通过MindSpore的Pipeline数据引擎和数据变换(Transforms),进行高效的数据预处理,例如使用Mnist数据集作为示例。
网络构建:使用mindspore.nn类构建深度学习网络模型,继承nn.Cell类并实现init方法和construct方法,定义网络结构和数据处理过程。
模型训练:实现完整的模型训练过程,包括正向计算、反向传播和参数优化,利用MindSpore的自动微分机制简化梯度计算过程。

昇思MindSpore通过其全场景支持、高效执行和易用性等特点,为开发者提供了一个强大的深度学习框架,适用于各种应用场景和行业需求。它的模块化设计和丰富的功能使得在不同层次和复杂度的项目中都能发挥良好的效果。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的微信小程序制作学习计划打卡记录页面的代码示例,其中包含了前几学习时间: ``` <view class="container"> <view class="header"> <text>学习计划打卡记录</text> </view> <view class="content"> <view class="card"> <view class="card-header"> <text>今</text> <text>2021-07-01</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> </view> </view> <view class="card"> <view class="card-header"> <text>昨</text> <text>2021-06-30</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> <view class="card-row"> <text>已学习:</text> <text>120分钟</text> </view> </view> </view> <view class="card"> <view class="card-header"> <text>前</text> <text>2021-06-29</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> <view class="card-row"> <text>已学习:</text> <text>90分钟</text> </view> </view> </view> </view> </view> ``` 在上面的代码中,我们使用了三个 `card` 元素来展示前几打卡记录。每个 `card` 元素都包含一个 `card-header` 元素和一个 `card-body` 元素。`card-header` 元素中包含了日期信息,而 `card-body` 元素中包含了输入框和已学习时间的显示。 在实际开发中,你需要将上面的代码替换成你自己的样式和数据。同时,你还需要编写处理用户输入和计算已学习时间的逻辑代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值