Skip to content

Implement a Deep Learning Framework DeZero from scratch

Notifications You must be signed in to change notification settings

BaolanChen/DeZero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeZero

Implement DeZero Framework from scratch

DeZero是一种极简的深度学习框架,设计细节来自于《深度学习入门2:自制框架》

项目简介

此项目中创建了一个深度学习框架——DeZero。 DeZero是《深度学习入门2:自制框架》原创的框架,它用最少的代码实现了现代深度学习框架的功能。

DeZero框架特点

1. 极简主义

DeZero是以简单易懂为第一设计原则的极简深度学习框架。 在设计方面尽量减少了外部库的使用,内部代码也压缩到了最简化

2. 纯Python

许多深度学习框架中使用多种编程语言(纯Python和C++)来实现,而DeZero只采用Python来实现。 因此只要懂Python,就可以很容易地阅读DeZero框架中地源代码。

3. 具备现代深度学习框架的功能

PyTorch和TensorFlow等现代深度学习框架有许多相同的功能, 其中一个重要的功能是Define-by-Run。Define-by-Run是在进行深度学习计算时在计算之间建立"连接"的机制。 本项目创建的DeZero框架就是一个Define-by-Run风格的框架,其中采用了许多与现代深度学习框架相同的设计。

项目文件夹内容

文件夹名 说明
dezero DeZero的源代码
examples 使用DeZero开发的示例
steps 各步骤的代码文件(step01.py ~ step60.py)
tests DeZero的单元测试

所需的外部库

使用的Python版本和外部库如下所示。

另外DeZero还提供了可在NVIDIA的GPU上运行的可选功能。此时需要安装下面的库。

运行方法

讲解的Python文件主要在steps文件夹中。 可以通过以下Python命令运行这些文件(可以在任何目录下运行Python命令)。

$ python steps/step01.py
$ python steps/step02.py

$ cd steps
$ python step31.py

About

Implement a Deep Learning Framework DeZero from scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages