# CMU 10-414/714: Deep Learning Systems

## 课程简介

- 所属大学：CMU
- 先修要求：系统入门(eg.15-213)、深度学习入门、基本的数学知识
- 编程语言：Python, C++
- 课程难度：🌟🌟🌟
- 预计学时：100小时

<!-- 用一两段话介绍这门课程，内容包括但不限于：
    （1）课程覆盖的知识点范围
    （2）与同类课程相比它的优势与特点
    （3）学习这门课程的体验与感受
    （4）自学这门课的注意点（踩过的坑、难度预警等等）
    （5）... ...
-->
深度学习的快速发展和广泛使用很大程度上得益于一系列简单好用且强大的编程框架，例如 Pytorch 和 Tensorflow 等等。但大多数从业者只是这些框架的“调包侠”，对于这些框架内部的细节实现却了解甚少。如果你希望从事深度学习底层框架的开发，或者只是像我一样好奇这些框架的内部实现，那么这门课将会是一个很好的起点。

课程的内容大纲覆盖了深度学习系统“全栈”的知识体系。从现代深度学习系统框架的顶层设计，到自微分算法的原理和实现，再到底层硬件加速和实际生产部署。为了更好地掌握理论知识，学生将会在5个课程作业中从头开始设计和实现一个完整的深度学习库 Needle，使其能对计算图进行自动微分，能在 GPU 上实现硬件加速，并且支持各类损失函数、数据加载器和优化器。在此基础上，学生将实现几类常见的神经网络，包括 CNN，RNN，LSTM，Transformer 等等。

即使你是深度学习领域的小白也不必过于担心，课程将会循序渐进地从简单分类问题和反向传播优化讲起，一些相对复杂的神经网络都会有配套的 jupyter notebook 详细地描述实现细节。如果你有一定的相关基础知识，那么在学习完自微分部分的内容之后便可以直接上手课程作业，难度虽然不大但相信一定会给你带来新的理解。

这门课两位授课教师 [Zico Kolter](https://zicokolter.com/) 和 [Tianqi Chen](https://tqchen.com/) 将所有课程内容都发布了对应的开源版本，但在线评测账号和课程论坛的注册时间已经结束，只剩下框架代码里的本地测试供大家调试代码。或许可以期待明年秋季学期的课程还会发布相应的在线版本供大家学习。

## 课程资源

- 课程网站：<https://dlsyscourse.org>
- 课程视频：<https://www.youtube.com/watch?v=qbJqOFMyIwg>
- 课程作业：<https://dlsyscourse.org/assignments/>

## 资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CMU10-714 - GitHub](https://github.com/PKUFlyingPig/CMU10-714) 中。
