码迷,mamicode.com
首页 > 其他好文 > 详细

ufldl学习笔记与编程作业:Vectorization(向量化/矢量化)

时间:2014-08-05 22:35:40      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:deep learning   ufldl   matlab   octave   机器学习   

ufldl学习笔记与编程作业:Vectorization(向量化/矢量化)


ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践。

在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl。

于是最近就开始搞这个了,教程加上matlab编程,就是完美啊。

新教程的地址是:http://ufldl.stanford.edu/tutorial/


本节学习链接:http://ufldl.stanford.edu/tutorial/supervised/Vectorization/


什么是向量化?怎么样向量化?

简单来说,向量化在代码的体现就是,把一些for循环的操作,用矩阵操作的形式代替。

教程中举了一些例子,可以去看看。

比如说,线性回归,求预测值时,普通做法是一个example求一次,m个example就得循环m次。

而向量化操作,用一个矩阵相乘的方法,一次性把m个example的预测值都求出来。

个人觉得,要实现向量化编程,必须个人头脑中对模型中主要数据(矩阵)都要有清晰地印象,特别是矩阵的维度。


为什么要向量化?

1 代码简洁;2 速度快。

主要是速度快。一般你自己所写的一些循环操作是比MATLAB封装好的矩阵操作是慢很多的。因为那些MATLAB数值计算库是根据科学家的并行运算的研究写出来的。当然,你牛逼的话,或许可以写出比那些库更快的代码。


当初我就是自不量力,在cuda上写一些核函数做运算,后来结果当然是比cublas慢很多。

因此,想写一个比caffe快的cnn框架,就得高一段落了。


这节的编程作业是对线性回归和逻辑回归进行向量化编程。

由于我之前已经是向量化编程了,所以这里就不列代码了。



本文作者:linger

本文链接:http://blog.csdn.net/lingerlanlan/article/details/38390429





ufldl学习笔记与编程作业:Vectorization(向量化/矢量化),布布扣,bubuko.com

ufldl学习笔记与编程作业:Vectorization(向量化/矢量化)

标签:deep learning   ufldl   matlab   octave   机器学习   

原文地址:http://blog.csdn.net/lingerlanlan/article/details/38390429

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!