OneFlow 概念清单
本文将对 OneFlow 中涉及到的,常用的一些概念/名词做一个概括性的解释。主要内容针对算法工程师和框架开发者分为以下两部分:
• 算法开发
• 框架开发
在算法开发部分,将解释深度学习算法开发过程中常用的一些概念和名词,而在框架开发部分,则侧重于介绍 OneFlow 框架内部设计概念、重要数据结构。
算法开发
- Placeholder
Placeholder 即数据占位符,此概念用于描述输入/输出的数据形状,而并不是实体的数据。
例如:
import oneflow.typing as tp
def test_job(
images: tp.Numpy.Placeholder((32, 1, 28, 28), dtype=flow.float),
labels: tp.Numpy.Placeholder((32,), dtype=flow.int32),
) -> Tuple[tp.Numpy, tp.Numpy]:do something with images or labels
return (images, labels)
描述了一个测试的 job 函数中,输入的图片 shape 是(32, 1, 28, 28),数据类型是 flow.float32;输入的 labels 标签的 shape 是(32,),类型是 flow.int32。 - Tensor 和 Blob
在其它框架中常用 Tensor 这个概念,譬如 pytorch 中的 Tensor,其中包含了数据值和类型(data, dtype)、梯度 grad、存放的设备类型 device 等属性。利用 Tensor 可以用来构造和描述前