早期高层次编程语言Lua(Torch)和Python(Theano)编写机器学习程序。提供了机器学习的模型定义和自动微分等功能,适合小型机器学习应用,无法发挥算力的最大性能。
2011年深度神经网络崛起,GPU的通用API接口(CUDA C)日趋成熟,2013年 Caffe以C和C++作为核心API的框架,但专业性要求高
2015年,TensorFlow提出前后端分离相对独立的设计,python作为前端语言,C++实现高性能后端,包括大量基于Python 的API。Python具有和C++的互操作性,兼备Python灵活性和C++的高性能。
基于开源机器学习框架为后端的高层次库Keras和TensorLayerX应运而生,提供Python API可以快速导入已有的模型。进一步屏蔽了机器学习框架的实现细节,可以运行在不同的机器学习框架上。
2020年,MindSpore和JAX出现,MindSpore继承了TensorFlow、Pytorch的Python和C/C++的混合接口基础上,进一步拓展了机器学习编程模型从而支持多种AI后端芯片(华为Asend、英伟达GPU和ARM芯片),实现了机器学习应用在海量异构设备上的快速部署。
超大型数据集和超大型深度神经网络使分布式执行成为了机器学习编程框架的核心。TensorFlow和Pytorch需要大量代码将数据集和神经网络分配到分布式节点上。MindSpore可以让单节点的MindSpore程序无缝地运行在海量节点上。