华为学习记录3 Mindspore的基础使用操作

常用的AI框架:

TensorFlow、pytorch、Keras、Mindspore、paddlepaddle

其中TensorFlow 0.x,1.x版本采用的是静态图,不容易debug;pytorch是动态图。

Mindspore有个mode选择,选择使用静态图还是动态图进行训练。

这里解释一下动态图和静态图的概念:

MindSpore静态图: Graph模式,可以通过set_context(mode=GRAPH_MODE),默认模式。

        在Graph模式下,Mindspore通过源码转换的方式,将python的源码转换成IR(MindIR)再在此基础上进行相关的图优化,最终再硬件设备上执行优化后的图。

        使用Graph模式时,需要使用nn.cell类并且在construcrt函数中编写执行代码,或者调用@ms_function装饰器。

        Graph模式是基于MindIR进行编译优化的。

代码实现:

import numpy as np
import mindspore.nn as nn
import mindspore.ops as ops
import mindspore as ms

ms.set_context(mode=ms.GRAPH_MODE,device_target="CPU")

class Net(nn.Cell):
    def __init__(self):
        super(Net,self).__init__()
        self.mul = ops.Mul()
    def construct(self,x,y):
        return self.mul(x,y)
    
x = ms.Tensor(np.array([1,2,3]).astype(np.float32))
y = ms.Tensor(np.array([4,5,6]).astype(np.float32))
net = Net()
print(net(x,y))

 我们加一下记录时间看看。

t1 = time.time()
ms.set_context(mode=ms.PYNATIVE_MODE,device_target="CPU") # 动态图
    
x = ms.Tensor(np.ones([1,3,3,4]))
y = ms.Tensor(np.ones([1,3,3,4]))
z = ops.add(x,y)
print(z.shape)
print(f'{time.time()-t1}s')

 

 动态图是直接计算出结果的,在底层是没有做优化的,所以效率是不如静态图的.

 

 

         

神经网络中的运算大部分是矩阵运算,还有一些其他运算, 所以会将不同的算子进行切分,将内存消耗大的切分到CPU,内存消耗小的密集型算子切分到硬件加速子图,框架协同不同子图进行网络训练,使得处于不同硬件且无依赖关系的子图能够并行进行执行的过程.

Mindspore中的开发组件:

        1.推理部署流程

在线推理和离线推理.

Serving:

使用方式:gRPC接口\RESTful接口\Servable

可视化: 

 

MindSpore Reinforcement: 开源的强化学习框架,支持使用强化学习算法对agent 进行分布式训练.

MindSpore Federated:联邦学习是一种加密的分布式机器学习技术,它可以支持机器学习的各参与方在不直接共享本地数据的前提下,共建AI模型.支持千万级五张太终端设备的商用化部署.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
今年的华为开发者大会 HDC 2020 上,除了**昇腾、鲲鹏等自研芯片硬件平台**之外,最令人期待的就是**深度学习框架 MindSpore 的开源**了。今天上午,华为 MindSpore **首席科学家陈雷**在活动中宣布这款产品正式开源,我们终于可以在开放平台上一睹它的真面目。 本文是根据机器之心报道的MindSpore 的开源介绍而整理的.md笔记 作为一款支持**端、边、云独立/协同的统一训练和推理框架,华为希望通过这款完整的软件堆栈,实现**一次性算子开发、一致的开发和调试体验**,以此帮助开发者实现**一次开发,应用在所有设备上平滑迁移**的能力。 三大创新能力:新编程范式,执行模式和协作方式 由**自动微分、自动并行、数据处理**等功能构成 开发算法即代码、运行高效、部署态灵活**的**特点**, 三层核心:从下往上分别是**后端运行时、计算图引擎及前端表示层**。 最大特点:采用了业界最新的 **Source-to-Source 自动微分**,它能**利用编译器及编程语言的底层技术**,进一步**优化以支持更好的微分表达**。主流深度学习框架中主要有**三种自动微分技术,才用的不是静态计算图、动态计算图,而是基于**源码**转换:该技术源以**函数式编程框架**为基础,以**即时编译(JIT)**的方式**在<u>中间表达</u>(编译过程中程序的表达形式)上做自动微分变换**,支持**<u>复杂控制流场景、高阶函数和闭包</u>**。 MindSpore 主要概念就是张量、算子、单元和模型 其代码有两个比较突出的亮点:计算图的调整,动态图与静态图可以一行代码切换;自动并行特性,我们写的串行代码,只需要多加一行就能完成自动并行。
华为SAN存储系统是一种网络存储设备,它具备自己的操作系统。华为SAN存储使用的是自主开发的存储操作系统,提供了丰富的存储管理功能和性能优化策略。 首先,华为SAN存储系统的操作系统支持多种存储协议,如FC、iSCSI和Fibre Channel over Ethernet(FCoE),可以满足不同的存储需求。操作系统能够有效地管理存储资源,包括存储池的创建、配额管理和容量的管理等。此外,它还提供了快照、克隆和镜像等数据保护功能,确保数据的可靠性和可恢复性。 其次,华为SAN存储系统的操作系统支持在线迁移和灾备功能。通过在线迁移功能,可以将存储卷无缝迁移到其他存储设备上,实现存储的灵活性和可扩展性。操作系统还支持镜像和异地备份功能,确保数据的安全性和可用性。 此外,华为SAN存储系统的操作系统还提供了智能化的存储管理功能。它能够根据实际的业务需求,优化存储资源的分配和调度,提供高性能、低延迟的存储服务。操作系统还支持存储QoS(Quality of Service)功能,通过对存储流量进行调度和控制,保证重要数据和应用的优先级。 总结来说,华为SAN存储系统使用操作系统是自带的,它具备丰富的存储管理功能、数据保护功能和智能化的存储管理能力,能够满足企业对存储的高性能、高可靠性和灵活性的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值