1. CS231n课程
CS231n是斯坦福大学李飞飞团队的一门关于卷积神经网络CNN的课程,这个课程从KNN和线性分类器讲到普通的神经网络,再将到卷积神经网络的实现,以及一些实用的技术如Dropout、Batch Normalization等,整个课程下来后会对CNN有个比较全面的了解。这个课程通俗易懂,是入门深度学习的良心课程,不仅图文结合阐述了网络正向和反向传播的过程,还会介绍一些在实用中的应用的trick如训练过程的梯度检查、如何判断学习率大小、如何判断过拟合等等,以及相应的解决方法
官方网站:http://cs231n.github.io/
知乎中文翻译:https://zhuanlan.zhihu.com/p/21930884
1.2 Assignment 2 使用
配套CS231n课程的有两次作业,作业2主要有四部分内容:全连接层的实现、Batch Normalization、Dropout和卷积层的实现,CS231n有作业的初始模板,可以在此下载,模板里已经填好了实现这些网络的部分代码,学习者只需要在特定的方法中填写自己的代码即可,例如下面全连接层的forward方法,只需理解了课程笔记后按照提示在TODO中填写代码,填写完后,模板中还提供了方法来检查你代码的正确性:运行IPython notebook,这个notebook会引导你如何填写代码并测试代码,最后会在CIFAR-10数据集上测试你的CNN的准确性。
def affine_forward(x, w, b):
"""
Computes the forward pass for an affine (fully-connected) layer.
The input x has shape (N, d_1, ..., d_k) and contains a minibatch of N
examples, where each example x[i] has shape (d_1, ..., d_k). We will
reshape each input into a vector of dimension D = d_1 * ... * d_k, and
then transform it to an output vector of dimension M.
Inputs:
- x: A numpy array containing input data, of shape (N, d_1, ..., d_k)
- w: A numpy array of weights, of shape (D, M)
- b: A numpy array of biases, of shape (M,)
Returns a tuple of:
- out: output, of shape (N, M)
- cache: (x, w, b)
"""
out = None
#############################################################################
# TODO: Implement the affine forward pass. Store the result in out. You #
# will need to reshape the input into rows. #
#############################################################################
pass
#############################################################################
# END OF YOUR CODE #
#############################################