cs231n的第二次作业(1)
2017-03-03 11:07
218 查看
一些小细节
计算前向传播scores时,X转化为(样本数,像素展开数),W转化为(像素展开数, 输出类别数量)反向传播时,最开始的dscores是由softmax损失计算出来的(所以最后一层是softmax分类?),还要注意将导数保存下来,传播回去的时候要用到。
关于ReLU的这个小技巧不错, out = x * (x >= 0)。
每次前向传播时,都是 前向传播->激活层->前向传播->激活层->前向传播->softmax层,是不是激活层可以看做一层网络。。算了,这只是强行加深网络层数。
W和b的初始化要考虑,梯度更新方法有许多,最后更新还要加正则,激活层有许多方式,数据X需要预处理(处理方法还有相当多的讲究),防过拟合还需要随机失活,数值法解析法需要验证是否一致,合理性检查调bug,臣妾表示这一节信息量好大,不能熟练使用啊,得多实践,又是个无底洞。
还有就是,ipython咋看哪些语句运行时间最长么,训练过程好慢,不知如何优化。