自用华为ICT云赛道AI第三章知识点-人工智能框架

99 阅读4分钟

AI开发框架

  • 深度学习框架的出现降低了入门的门槛。我们不需要从复杂的神经网络和反向传播算法开始编代码,可以依据需要,使用已有的模型配置参数,而模型的参数自动训练得到。我们也可以在已有模型的基础上增加自定义网络层,或者是在顶端选择自己需要的分类器和优化算法。

image.png

  • 一个深度学习框架可以理解为一套积木。积木中的每个组件就是一个模型或者算法。这就可以避免重复造轮子,我们可以使用积木中的组件去组装符合要求的积木模型。

  • 当下市场环境

  • 当下同类型框架:

    • 国外:TensorFlow-Google;pytorch-Meta;MXNet-Amazon...
    • 国内:paddle-百度;MindSpore-华为……
  • 当前主流计算平台:

    • GPU
    • CPU
    • NPU

PyTorch

  • PyTorch是由Meta发布的机器学习计算框架。它的前身是Torch。Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor)操作库,其特点是特别灵活,但因其采用了小众的编程语言是Lua,所以流行度不高,于是就有了基于Python的PyTorch。
  • PyTorch是一个针对深度学习,并且使用GPU和CPU来优化的 tensor library。是当前的主流深度学习框架之一。Twitter、GMU和Salesforce等机构都采用了PyTorch。

PyTorch特点

  • Python优先:PyTorch不是简单地在C++框架上绑定Python。PyTorch从细粒度上直接支持Python的访问。你可以像使用Numpy或者Scipy那样轻松地使用PyTorcho
  • 动态神经网络:TensorFlow1.X运行必须提前建好静态计算图,然后通过feed和run重复执行建好的图。但是PyTorch却不需要这么麻烦,PyTorch的程序可以在执行时动态构建/调整计算图。
  • 易于Debug:PyTorch在运行时可以生成动态图,开发者可以在调试器中停掉解释器并查看某个节点的输出。
  • PyTorch提供了支持 CPU和GPU的Tensor,可以极大地加速计算;

TensorFlow

  • TensorFlow是一个端到端开源机器学习平台,由Google团队设计,目前主要版本为TensorFlow2.X。
  • TensorFlow的迭代版本共有0.1,1.0,和2.0三个版本,当前主要使用版本为TensorFlow2.X。
  • TensorFlow2.x包括了TensorFlow核心库,JavaScript, Lite, Extended等。构成了TensorFlow的一个完整的生态系统。
  • Alpha Go Zero基于TensorFlow实现。
  • TensorFlow.js:是一个用于在JavaScript中开发和训l练ML模型,并在浏览器或Node.js上部署的库。
  • TensorFlowLite:是一个用于设备推理的开源深度学习框架。它可以满足在移动和物联网设备上部署机器学习模型。
  • TensorFlowExtended(TFX):是用于部署生产ML管道的端到端平台,当训练好的模型准备从研究转移到生产时,使用TFX创建和管理生产管道。

TensorFlow2.x vs TensorFlow 1.x

  • TensorFlow V1.0 的弊端:
    • TensorFlow1.0里在创建了Tensor之后,不能直接返回结果。而是需要创建session会话机制,包含graph的概念在里面,而且需要session.run才能运行。这种风格更像是一种硬件编程语言VHDL。
    • TensorFlow1.o调试困难,API混乱,入门困难。入了门使用起来依I旧困难,导致很多研究人员转向了PyTorch。
  • TensorFlow 2 特点:
    • Teras高级接口:
      • 最大的特性(Easy to use):取消了graph 和session为默认机制。
      • 主要改进点:
      • TensorFlow2的核心功能是动态图机制Eagerexecution。它允许用户像正常程序一样去编写、调试模型,使TensorFlow更易于学习和应用;
      • 支持更多平台、更多语言,通过标准化API的交换格式和提供准线改善这些组件之间的兼容性;
      • 删除已弃用的API并减少重复的API数,避免给用户造成混淆;
      • tf.contrib退出历史舞台。其中有维护价值的模块会被移动到别的地方,剩余的都将被删除。

MindSpore

  • MindSpore作为新一代深度学习框架,是源于全产业的最佳实践,最佳匹配昇腾处理器算力,支持终端、边缘、云全场景灵活部署,开创全新的AI编程范式,降低AI开发门槛。
    • MindSpore旨在实现易开发、高效执行、全场景覆盖三大目标。
    • MindSpore可以支持数据并行、模型并行和混合并行训练,具有很强的灵活性。
    • MindSpore有“自动并行”能力,它通过在庞大的策略空间中进行高效搜索来找到一种快速的并行策略。