背景: 设计和实现一个轻量化的深度学习库

本文旨在设计一个基于TensorFlow的轻量级深度学习库,该库将提供高层封装,允许用户快速构建深度学习模型。设计目标包括模型基类、丰富神经网络层、自定义层范例、自动输入推断、参数保存、模型结构保存以及ONNX模型的支持。这个库旨在平衡调试灵活性和运行效率,以满足不同工程需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用TensorFlow实现自己的深度学习库系列


背景


目的:设计轻量级深度学习库,使用TensorFlow作为计算引擎,对其进行高层次封装,搭建一个自己的深度学习API,方便在工程实践中快速实现深度学习模型。

Keras在2015年3月首次推出,作为一个对Theano的封装库,它为工程师和研究人员构建自己的深度学习模型提供了极大的便利。随着深度学习领域的高速发展,在2015年11月谷歌大脑团队推出了深度学习框架TensorFlow1.0,TensorFlow1.0作为深度学习框架中声明式编程的代表,其使用难度较高;计算图(Graph),张量(Tenson),上下文环境(Session),占位符(Placeholder)一个个新的概念增加了用户的上手难度,因为TensorFlow的受欢迎度很高,Keras也将TensorFlow封装进后端,并将其作为了默认后端。2019年6月TensorFlow2.0发布时,TensorFlow宣布Keras成为TensorFlow的官方高级API。

然而,像Keras这样大粒度API的高级封装,使得用户丢失了自己在调试时的细微操作,同时也带来了性能的降低。

因此我们的目的是设计一个非常轻量的深度学习库,既能保证大量的底层细节,同时也能高效运行。

设计目标


根据深度学习模型构建特征,和部署需求,制定目标如下:
1. 通过基类构建深度学习模型。
2. 提供丰富的神经网络层。
3. 提供可定制化神经网络层范例。
4. 神经网络层具备自动推断上一层输入功能。
5. 保存训练参数。
6. 开发模型构建范例。
7. 保存模型拓扑结构。

以上目标在目前深度学习框架中对应关系如下:
1. 具备PyTorch中Module类功能/MindSpore中Cell类功能。
2. 具备大量神经层例如Conv2d, MaxPool2d, Dropout, BatchNorm2d。
3. 具备读取ONNX模型和保存为ONNX模型结构

欢迎访问我的个人博客,此系列文章在博客中第一时间连载。

我的GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值