深度学习研讨班Class1
内容回顾
第一次研讨班,我们记录了同学们提出的几个比较重要的问题。
本次的问答都是关于作业代码的。
我们认为目前做深度学习相关工作代码细节很重要,常常会有人因为细节出错而浪费了大量的开发时间。
内容集合:
复习课件BY 主讲人
coding assignment重点 BY 助教
网盘链接:
https://pan.baidu.com/s/15D9OX-9B7WgxQg7WbQc5ig
密码:q4gk
如果感谢并认可本次四位主导人的工作
可在文末打赏~
课件预览
主讲人:
兰焜耀,工试大一
主讲人:
刘成志,控制工程研三
代码Q&A
解答助教:
张迪(环境学院研一)
黄漪斐(机动学院大三)
1
想把图片的绿色通道放在第一个部分(以GRB顺序保存),该怎么操作?
Answer:
在MATLAB中可以直接用索引来访问矩阵中的元素,numpy中其实也有类似的功能,比如A[:, :, 1]就可以访问图片A的G通道,分别访问三个通道然后再用np.concatenate连接在一起即可。numpy的array也是支持多次下标访问的,比如A[:, :, [1, 0, 2]]就可以将A的前两个通道交换。附numpy的文档页面:https://docs.scipy.org/doc/numpy/,其中的General Index和Search Page可以很方便查找到相关函数。当然其实最常用的方法是直接Baidu/Google:numpy.xxx。
2
详细讲一下矩阵的除法,x / x_norm,x是2*3,x_norm是2*1,这时应该如何除?
Answer:
通过python的广播机制。被除的矩阵,行向或列向起码有一个方向维度相同,且另一个维度为1,此时该数组会在维度为1的方向上进行广播broadcast之后再参与运算(也可以理解为复制,虽然出于效率的考虑并不会真的发生复制)。
3
cost已经是标量了,那么squeeze用的意义是什么?
Answer:
根据我们现场的实验,squeeze确实可以去掉,矩阵sum之后就是个标量了。squeeze原本的作用是将所有长度为1的维度都去掉,在这里并无必要。
4
reshape(b*c*d, a)与reshape(a, -1).T有什么不同?
Answer:
可以认为通过reshape生成的新数组和原始数组其实是同一段内存,无论目标是什么shape,其实都可以看作先将原数组reshape成(number of elements, 1)的一个向量,然后再按照目标shape的方式进行切割。reshape(b*c*d, a)每隔a个元素进行一次切割, reshape(a, -1)每隔b*c*d个元素进行一次切割,前者会将一个数据样本的元素拦腰截断。因此就算reshape(b*c*d, a)与reshape(a, -1).T的形状相同,其矩阵内容也是不同的。但是注意,这两者的第一个元素显然都是相同的,这可能对同学们核对expected output产生了误导。举一个具体的例子来说明:
虽然两者都是2*4的矩阵,但是其内容完全不同。
测试题订正
主讲助教:
黄漪斐(机动学院大三)
张迪(环境学院研一)
http://blog.csdn.net/justry24/article/details/77915062?locationNum=1&fps=1
参考:
两位主讲人的大部分图示来自:
https://www.coursera.org/learn/neural-networks-deep-learning
https://www.slideshare.net/TessFerrandez/notes-from-coursera-deep-learning-courses-by-andrew-ng
如果感谢或认可本期主讲团队的工作
请为作者打赏
您的肯定是对主讲团队的莫大鼓励
主讲人
兰焜耀,工科平台大一
主讲人
刘成志,控制工程研三
助教
张迪,环境学院研一
助教
黄漪斐,机动学院大三
我都想打赏,班长帮我平分一下:
第一次研讨班试运营结束后,
按月缴纳9.9元/月的运营费用
所有收入都将全数用于研讨班。除了场地费用之外,剩余收入都将作为助教和顾问的奖励,以激励和感谢他们的尽职工作。
咨询问题&加入我们
请加入试运行班群了解详情
现在需要付费加群啦,当然如果进群了解后决定不参加,我们将返还费用。
研讨班地点:
上海交大闵行校区工训中心B楼
领取专属 10元无门槛券
私享最新 技术干货