机器学习框架的目标
-
神经网路编程
神经网络需要一个共同的系统进行开发、训练和部署。
-
自动微分
训练神经网络的过程本质上是模型参数的迭代,这些参数需要持续计算梯度(Gradients)迭代改经。梯度的计算往往需要结合训练数据、数据标注和损失函数(Loss Function)。手工计算梯度很麻烦,机器学习框架需要根据用户给的框架全自动计算梯度。
-
数据处理
神经网络训练、测试、验证都需要数据,机器学习框架应该支持数据的读取、存储、和预处理(比如数据增强和数据清洗)。
-
模型训练和部署
训练好后的模型需要部署到推理设备才能使用。
-
硬件加速
机器学习框架需要高效利用多种硬件加速器。比如 cuda。
-
分布式训练
随着模型规模的增大,单机器训练神经网络效率太低,机器学习框架应该支持分布式训练。
参考