当前位置: 首页 > news >正文

网站建设公司ttmwlapp推广之家

网站建设公司ttmwl,app推广之家,深圳新星公司官网,微网站开发外包内容介绍#xff1a; AI编译框架分为两种运行模式#xff0c;分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行#xff0c;但也支持手工切换为静态图模式。两种运行模式的详细介绍如下#xff1a; 动态图模式#xff1a; 动态图的特点是计算图的…内容介绍 AI编译框架分为两种运行模式分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行但也支持手工切换为静态图模式。两种运行模式的详细介绍如下 动态图模式 动态图的特点是计算图的构建和计算同时发生Define by run其符合Python的解释执行方式在计算图中定义一个Tensor时其值就已经被计算且确定因此在调试模型时较为方便能够实时得到中间结果的值但由于所有节点都需要被保存导致难以对整个计算图进行优化。 在MindSpore中动态图模式又被称为PyNative模式。由于动态图的解释执行特性在脚本开发和网络流程调试过程中推荐使用动态图模式进行调试。 具体内容 1. 导包 import numpy as np import mindspore as ms from mindspore import nn, Tensor 2. 使用set_context进行动态图模式的配置 ms.set_context(modems.PYNATIVE_MODE) 3. 模型构建 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() 4. 输入输出 input Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) output model(input) print(output) 5. 使用set_context进行运行静态图模式的配置 ms.set_context(modems.GRAPH_MODE) 6. 构建模型 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() 7. 输入输出 input Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) output model(input) print(output) 静态图模式的使用场景 MindSpore编译器重点面向Tensor数据的计算以及其微分处理。因此使用MindSpore API以及基于Tensor对象的操作更适合使用静态图编译优化。其他操作虽然可以部分入图编译但实际优化作用有限。另外静态图模式先编译后执行的模式导致其存在编译耗时。因此如果函数无需反复执行那么使用静态图加速也可能没有价值。 静态图模式开启方式 通常情况下由于动态图的灵活性我们会选择使用PyNative模式来进行自由的神经网络构建以实现模型的创新和优化。但是当需要进行性能加速时我们需要对神经网络部分或整体进行加速。MindSpore提供了两种切换为图模式的方式分别是基于装饰器的开启方式以及基于全局context的开启方式。 基于装饰器的开启方式 MindSpore提供了jit装饰器可以通过修饰Python函数或者Python类的成员函数使其被编译成计算图通过图优化等技术提高运行速度。此时我们可以简单的对想要进行性能优化的模块进行图编译加速而模型其他部分仍旧使用解释执行方式不丢失动态图的灵活性。无论全局context是设置成静态图模式还是动态图模式被jit修饰的部分始终会以静态图模式进行运行。 在需要对Tensor的某些运算进行编译加速时可以在其定义的函数上使用jit修饰器在调用该函数时该模块自动被编译为静态图。需要注意的是jit装饰器只能用来修饰函数无法对类进行修饰。jit的使用示例如下 8. 模型构建 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 logits 9. 使用修饰函数输入输出 input Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))ms.jit # 使用ms.jit装饰器使被装饰的函数以静态图模式运行 def run(x):model Network()return model(x)output run(input) print(output) 10. 通过调用jit将函数转换为以静态图方式执行 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 logitsinput Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))def run(x):model Network()return model(x)run_with_jit ms.jit(run) # 通过调用jit将函数转换为以静态图方式执行 output run(input) print(output) 11. 当我们需要对神经网络的某部分进行加速时可以直接在construct方法上使用jit修饰器在调用实例化对象时该模块自动被编译为静态图。示例如下 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))ms.jit # 使用ms.jit装饰器使被装饰的函数以静态图模式运行def construct(self, x):x self.flatten(x)logits self.dense_relu_sequential(x)return logitsinput Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) model Network() output model(input) print(output) 12. 基于context的开启方式 context模式是一种全局的设置模式。 ms.set_context(modems.GRAPH_MODE) # 使用set_context进行运行静态图模式的配置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() input Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) output model(input) print(output) 静态图加速的核心思想是将计算图的构建和实际计算分开也就是编译和运行分开。在构建阶段MindSpore会根据完整的计算流程对原始的计算图进行优化和调整编译得到更省内存和计算量更少的计算图。这种编译后图的结构不再改变的特性使得我们能够更好地利用硬件资源提升模型的执行效率。
http://www.zqtcl.cn/news/459180/

相关文章:

  • 北京建设网官方网站外贸wordpress收款插件
  • 网站关键词进前三响应式手机网站模版
  • 网站采集来源制作好网站
  • 哪个网站有工笔教程免费物流公司网站模板
  • 网站怎么做才有收录西安建设工程信息网人员查询
  • 用dedecms做的网站电子商务公司名称大全简单大气
  • 网站建设的业务员wordpress font awesome
  • 艺术公司网站定制中心怎么搜索网站搜索量
  • 陕西网站建设设计公司西部数码网站管理助手破解版
  • 网站建设框架构建正规的app网站开发
  • 离退休工作网站建设方案wordpress在线浏览pdf
  • 昆明免费网站制作wordpress自定义路由
  • html5视频网站开发江西响应式网站制作
  • 网站照片加水印家装公司十大口碑排名
  • 做网站还有用PHP网站开发如何建立vip
  • 东莞广告公司东莞网站建设辽宁城乡建设部网站
  • 公司网站开发详细流程php网站开发优点
  • 广东网站建设多少钱比较大气的网站
  • asp.net怎么做登录网站网站建设服务网络服务
  • 网站备案级别做公司网站要多少钱
  • 湛江网站seo网站定制排名
  • 为什么网站之有首页被收录企业网站发布图片文章
  • 做网站要准备内蒙做网站
  • 邯郸市搞网站服务务的吗网站建设怎么在图片上加字
  • 卡片风格网站我想做跑腿网站怎么做
  • 公司网站建设前期情况说明如何找厂家地址
  • 超值的郑州网站建设wordpress 移除 新闻
  • 长春网络营销网站徐州手机模板建站
  • 微网站开发+在线商城建设局招标网站
  • 网站开发的基本过程关岭做网站