论文总字数:39545字
摘 要
近年来,随着深度学习技术不断发展、数据规模不断扩大,人们逐渐发现深度学习会遭遇到数据瓶颈问题。为突破这一瓶颈,将深度学习结合进大数据平台成为了目前的最优解。然而,深度学习模型往往基于特定的深度学习框架进行开发,不同的框架、平台所支持的模型格式各不相同。因此,从框架到平台的模型迁移往往难以实现,导致模型需要重写,成本极高。为了使用户能将深度学习模型跨框架式迁移到大数据平台,进行高效的分布式模型训练,本文提出搭建开放神经网络交换(ONNX)支持框架。
论文的主要工作包括以下几点:
1、选择英特尔公司研发的Analytics Zoo大数据分析 AI平台作为开发平台,依靠平台底层的Spark(大数据分析引擎)和BigDL(分布式深度学习库)支持深度学习网络模型进行大规模、高效、可伸缩的分布式训练。
2、构造符合Keras深度学习框架风格的应用程序接口,生成具备该框架模块(类、函数等)功能的模型定义,并使用平台对模型进行前馈/反馈运算。
3、以ONNX运算器为单元编写映射函数实现模型格式转换,使其模型能够调用平台资源进行训练。并基于PyTorch深度学习张量库的ONNX格式模型导出功能,实现平台对该库的支持。
4、对本文实现的ONNX支持框架进行功能测试,通过加载预训练神经网络模型验证框架的有效性,可行性和性能。
实验表明,本项目能够很好地实现跨平台的模型迁移,为深度学习的开发带来巨大便利。
关键词:深度学习,分布式处理,Spark,神经网络模型,ONNX,模型迁移
ABSTRACT
In recent years, with the continuous development of deep learning technology, the scale of data has been expanding and people gradually find that deep learning is encountering data bottleneck. To break through this bottleneck, the combination of deep learning and big data platform currently has become the optimal solution. However, deep learning models are often developed based on a specific deep learning framework, and the model formats supported by different frameworks and platforms vary. As a result, model migrations from the framework to a platform are often difficult to implement, resulting in model rewriting at an extremely high cost. In order to enable users to migrate deep learning models across the frameworks to the big data platform and carry out efficient distributed model training, this paper proposes to build an Open Neural Network Exchange (ONNX) Support Framework.
The main work of the thesis includes the following points:
1.Use Analytics Zoo (a unified analytics AI platform) developed by Intel Corporation as our development platform, and rely on its underlying Spark and BigDL to support the large-scale, efficient and scalable distributed training of neural network models.
2. Construct Keras Style Application Programming Interface, generate model definitions with features of Keras modules (class, function, etc.), and perform feedforward/feedback operations on it.
3. Write mapping functions in units of ONNX operator to implement model format conversion, thus allowing ONNX to utilize platform resources for model training, and achieve platform support for PyTorch based on its ONNX format model export function.
4. Perform functional tests on this ONNX support framework implemented in this paper, and verify the validity, feasibility and performance of the framework by loading the pre-training neural network model.
Experiments has shown that the project realizes cross-platform model immigration well, which brings great convenience to the development of deep learning technology.
KEY WORDS: deep learning, distributed training, Spark, neural network model, ONNX, model immigration
目 录
摘 要 I
ABSTRACT II
第一章 绪论 1
1.1 研究背景及意义 1
1.2 国内外现状及难点 2
1.2.1 深度学习与大数据集成平台 2
1.2.2 深度学习模型跨框架迁移 3
1.3 论文主要工作 4
1.4 论文组织结构 5
第二章 技术与理论综述 6
2.1 现有工作相关技术 6
2.1.1 Apache Spark 6
2.1.2 BigDL 7
2.1.3 Analytics Zoo 9
2.2 深度学习模型理论 10
2.2.1网络模型性能分析 10
2.2.2 ResNet神经网络原理 10
第三章 需求分析 14
3.1 系统整体需求 14
3.2 模块功能需求 14
3.2.1 Keras Style API功能需求 14
3.2.2 ONNX支持框架功能需求 16
3.2.3 PyTorch支持模块功能需求 20
第四章 项目方案设计与实现 21
4.1 系统设计路线 21
4.2 模块设计与实现 21
4.2.1 Keras Style API设计与实现 21
4.2.2 ONNX支持框架设计与实现 24
4.2.3 PyTorch支持模块设计与实现 27
4.2.4 预训练模型加载设计与实现 29
第五章 实验验证 31
5.1 实验条件设置 31
5.2 实验步骤与效果 31
5.2.1 测试用例 32
5.2.2 实验效果 38
第六章 结语 39
参考文献 40
致 谢 42
第一章 绪论
1.1 研究背景及意义
作为机器学习的分支,深度学习是一种以人工神经网路为架构而对数据进行表征学习的算法。近年来,深度学习技术已成为计算机学科中最热门的话题之一,它在自然语言处理、计算机视觉、语音识别等领域取得了很好的训练效果, 也进一步展现出了其对教育、医疗、工业等社会因素的重大研究意义。如何高效地选择并使用深度学习模型训练/预测数据并挖掘其背后的深层价值,是大家普遍关注的重点。而对互联网企业而言,受行业趋势影响,则是纷纷开始研发自主的深度学习技术平台,以便在竞争激烈的环境中保持技术优势。
由于互联网行业数据挖掘的规模增大,训练模型会面对海量原始数据。为了进行大规模数据训练,公司需要同时将深度学习和大数据分析集成在平台和管道。这种新兴的融合由几个重要的技术原理推动:1)数据规模推动深度学习过程;2)世界的深度学习应用程序是复杂的大数据管道,除了模型训练/推理之外,还需要大量的数据处理(例如清理,转换,扩充,特征提取等);3)大数据和数据科学界越来越多地采用深度学习。因此,对大规模并行处理计算的技术研究与性能优化是平台发展的要点。
剩余内容已隐藏,请支付后下载全文,论文总字数:39545字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;