diff --git a/StanfordCS144计算机网络/README.md b/StanfordCS144计算机网络/README.md new file mode 100644 index 0000000..99905a6 --- /dev/null +++ b/StanfordCS144计算机网络/README.md @@ -0,0 +1,39 @@ +课号:[Stanford CS144 Fall 2020](https://cs144.github.io/) + +教授:Keith Winstein& Nick McKeown + +评论贡献者:[Jinming Hu](https://conanhujinming.github.io/) + +- [ ] Videos:有mooc版本的,我觉得讲得不好,这里就不贴了 + +- [X] [Lab x 7](https://pdos.csail.mit.edu/6.S081/2020/labs/guidance.html) +- [X] [AutoGrader](https://pdos.csail.mit.edu/6.S081/2020/labs/guidance.html) + +- [X] [Slides & Reading](https://pdos.csail.mit.edu/6.S081/2020/schedule.html) + +## 课程信息 + +计算机网络导论。前五个lab是从零开始写一个能用的TCP,后面的lab则是实现了计算机网络其他层的内容。 + +## 适合人群 + +适合学完数据结构+操作系统的同学,适合作为第一门计算机网络的课程。 + +## 课程评价 + +我不太适应MOOC的授课视频。所以这门课的精髓在lab上,前4个lab难度不大,主要是测试不够强,很多问题到lab4的时候才会暴露出来,所以lab4和lab7会需要花比较多的时间。个人觉得是非常好的lab,对TCP和计算机网络的知识的掌握帮助很大。美中不足的是这门课开得时间不长,所以lab的文档的问题比较多,经常需要“面向测试编程”。视个人基础,大概需要100到200小时左右的学习时间。 + +## 需要注意的坑点 + +1. 有一些设计的选择细节并没有在PDF里给出,我有的时候需要去看test case才会知道Lab希望怎样去设计。不过也许这些内容在上课的时候会提到。 +2. Lab2和Lab3的test case不够多,导致错误或者是与Lab期望的设计不符的实现也能通过全部的test case。然后在Lab4里,这些问题会全部暴露出来......结果就是在做Lab4的时候完全不能信任自己在Lab2和Lab3里的相应实现,这样也大大增加了debug难度。 +3. Lab4里有两个test case即fsm_ack_rst和fsm_ack_rst_relaxed期待的行为是完全相反的。实际上在官方的FAQ页面上给出的状态机是与fsm_ack_rst期待的行为一致,但Lab4默认启用的却是fsm_ack_rst_relaxed......类似的问题挺多的,所以有些情况下不得不去读test case才知道需要实现什么样的功能。 +4. 官方提供的VirtualBox Image中的GDB是有bug的,在cmake_build_type=Debug生成的binary上不能正确地打断点。在Lab4之前我还能靠肉眼调试,但是Lab4实在是肉眼调不动了,不得不寻求解决方案。后来问了一位之前也做过这个Lab的清华大佬,他告诉我说他用的是LLDB。我就赶紧换了LLDB,这才能愉快的进行调试。 + +## 非官方资料推荐 + +- 暂无 + +## 后续课程推荐 + +- 暂无 \ No newline at end of file diff --git a/StanfordCS231N神经网络/README.md b/StanfordCS231N神经网络/README.md deleted file mode 100644 index 711735c..0000000 --- a/StanfordCS231N神经网络/README.md +++ /dev/null @@ -1,44 +0,0 @@ -课号:[Stanford CS231N](http://cs231n.stanford.edu/) - -教授:Feifei Li等 - -评论贡献者:[Zhang-Each](https://github.com/Zhang-Each) - -- [X] Videos:B站上到处都是,还有字幕 -- [X] Assignment * 3,每个Assignment工作量都比较大,可以分割成更小的 -- [X] AutoGrader:每个notebook中自带一些测试用例,足够验证代码的正确性 -- [X] Slides & Reading:见课程网站 - -## 课程信息 - -- 深度学习导论课程,非常经典的入门课,从机器学习开始一步步讲到深度学习,神经网络,从MLP逐渐扩展到CNN,RNN,LSTM,GAN,Transformer等模型,对于深度学习中的CV和NLP均有所涉猎 -- 3个assignment的工作量比较大,使用Python和Jupyter Notebook完成,**大部分内容都是基于numpy从底层开始实现**,少部分任务可以直接使用pytorch等深度学习框架,每个lab的具体内容主要有: - -| Assignment编号 | 具体内容 | -| -------------- | ------------------------------------------------------------ | -| 1 | 实现SVM和线性分类器算法,实现KNN算法,实现神经网络全连接层和激活函数层的前向传播和反向传播算法并搭建一个两层的MLP | -| 2 | 实现卷积层、池化层、标准化层和Dropout层的前向传播和反向传播,并组成一个有标准化层的MLP和一个有三层的CNN,使用pytorch或tensorflow实现一个CNN,测试的task都是图片分类 | -| 3 | 实现RNN和LSTM层的前向传播和反向传播并组成循环网络,测试在Image Caption任务中的表现,实现Transformer模型的关键组件并测试Transformer模型在Image Caption任务中的表现,实现GAN并测试其在手写数字生成任务中的表现,实现深度学习可视化相关的一些函数 | - -- 同时作业**配备了相当数量的测试点**,基本每写一个关键函数都会提供一个单元测试来判断有没有写错,一般误差在标准范围内就可以放心进行下一步了 - -## 适合人群 - -- 深度学习入门并且具有一定的数学基础和Python编程能力的人(主要是numpy等库的api需要掌握的比较熟练) - -## 课程评价 - -- 个人认为**深度学习入门神课这一称号当之无愧**,上课内容是一个方面,我认为这门课最大的价值在于它的3个assignment,做完之后不仅对课上讲到的各种概念有了更底层的理解,也非常锻炼Python编程能力,并且能帮助你掌握numpy和pytorch等库中的关键api -- 实现一系列神经网络中的经典模型是一件比较有成就感的事情,这些assignment做的过程也非常愉快 -- 同时notebook中配备的大量测试点也可以提供及时的反馈信息,我认为要完成这些作业很重要的一点就是要将slides中将的公式和实际代码相结合,并且反向传播部分的作业中需要进行大量的求梯度推导,个人认为需要一定的数学能力 - -## 非官方资料推荐 - -- 深度学习中的经典论文,详情见课程网站 -- Github上也有很多公开的课程笔记,可以选择性使用 -- 给自己的[博客](https://zhang-each.github.io/)引个流,博客中的【手写神经网络】系列的博客是我在完成assignments时的一些心得体会和公式推导,希望能够帮到您 - -## 后续课程推荐 - -- CS224N 基于深度学习的自然语言处理 -- CS224W 图机器学习(实际上是图神经网络导论) \ No newline at end of file