摘要:
OneFlow 并行特色 在 Consistent 与 Mirrored 视角中,已经知道 OneFlow 提供了 mirrored 与 consistent 两种看待分布式系统的视角,并且提前知道了 OneFlow 的 consistent 视角颇具特色。 因为在 consistent_view 阅读全文
摘要:
Consistent 与 Mirrored 视角 在进行分布式训练时,OneFlow 框架提供了两种角度看待数据与模型的关系,被称作 consistent 视角与 mirrored 视角。 本文将介绍: 数据并行与模型并行的区别及适用场景 在分布式任务中采用 mirrored 视角及其特点 在分布式 阅读全文
摘要:
作业函数的定义与调用 在 OneFlow 中,将训练、预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源。 在 OneFlow 中,被 @oneflow.global_function 装饰器所修饰的 python 函数 阅读全文
摘要:
OneFlow 概念清单 本文将对 OneFlow 中涉及到的,常用的一些概念/名词做一个概括性的解释。主要内容针对算法工程师和框架开发者分为以下两部分: 算法开发 框架开发 在算法开发部分,将解释深度学习算法开发过程中常用的一些概念和名词,而在框架开发部分,则侧重于介绍 OneFlow 框架内部设 阅读全文
摘要:
分布式训练 深度学习中,越来越多的场景需要分布式训练。由于分布式系统面临单机单卡所没有的分布式任务调度、复杂的资源并行等问题,因此,通常情况下,分布式训练对用户有一定的技术门槛。 在 OneFlow 中,通过顶层设计与工程创新,做到了 分布式最易用,用户不需要特别改动网络结构和业务逻辑代码,就可以方 阅读全文
摘要:
模型的加载与保存 对于模型的加载与保存,常用的场景有: 将已经训练一段时间的模型保存,方便下次继续训练 将训练好的模型保存,方便后续直接部署使用 严格来说,尚未训练好的模型的保存,称为 checkpoint 或者 snapshot 。与保存已训练好的模型(model saving) ,在概念上,略有 阅读全文
摘要:
获取作业函数的结果 本文主要介绍如何在 OneFlow 中获取作业函数的返回结果,主要包括: 如何同步方式获取作业函数的结果 如何异步方式获取作业函数的结果 在 OneFlow 中,被 @flow.global_function 装饰器修饰的函数定义称为作业函数,作业函数可以用于训练或预测。通过指定 阅读全文
摘要:
配置优化算法和超参 当搭建好神经网络模型后,需要经过训练才能用来做预测。而训练的过程就是网络模型中的参数被优化的过程,通常采用反向传播算法和指定的 Optimizer 更新参数,本文重点介绍在 OneFlow 中如何设置 Optimizer 和 超参(Hyperparameters) 。 文章主要内 阅读全文
摘要:
使用OneFlow搭建神经网络 在 识别 MNIST 手写体数字 的例子中,通过 flow.layers 和 flow.nn 中提供的接口搭建了一个简单的 LeNet 网络。下面,将通过LeNet来介绍 Onflow 中网络搭建的核心元素—算子(op)和层(layer)。 LeNet 是一个主要由卷 阅读全文
摘要:
数据输入 深度学习是一种数据驱动的技术,为了兼顾易用性与效率, OneFlow 提供了两种“喂”数据给神经网络的方法: 一种方法,可以直接将 NumPy ndarray 对象作为参数传递给作业函数。也就是说 OneFlow 能够直接使用 NumPy 数据作为输入。 另外一种方法是使用 OneFlow 阅读全文