scikit-learn 机器学习


起步

scikit-learn 是一个比较流行的开源机器学习库。它支持许多分类,回归,聚类算法,包括支持向量机,逻辑回归,朴素贝叶斯,随机森林,梯度boosting,k-means 和 DBSCAN,并且可以与 Numpy 与 SciPy 库进行交互。

本文参考: http://www.scipy-lectures.org/packages/scikit-learn/index.html http://scikit-learn.org/stable/tutorial/basic/tutorial.html

scikit-learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理,具体可以参考官方网站上的文档。


Python科学计算之Pandas


起步

Pandas 是 python 的一个数据分析包,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此 pandas 为时间序列分析提供了很好的支持。 Pandas 的名称来自于面板数据(panel data)和python数据分析 (data analysis) 。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。

在我看来,对于 Numpy 以及 MatplotlibPandas可以帮助创建一个非常牢固的用于数据挖掘与分析的基础。而Scipy当然是另一个主要的也十分出色的科学计算库。


Caffe源码解读之Net(四)


Net涉及到的源码不多,主要原因是: Net由一系列的Layer组成(无回路有向图DAG),Layer之间的连接由一个文本文件描述。模型初始化Net::Init()会产生blob和layer并调用Layer::SetUp。在此过程中Net会报告初始化进程。这里的初始化与设备无关,在初始化之后通过Caffe::set_mode()设置Caffe::mode()来选择运行平台CPU或GPU,结果是相同的。


Caffe源码解读之Layer(三)


  Layer涉及到的代码较多。   在Layer中,所有的Pooling,Convolve,apply nonlinearities等操作都在这里实现。在Layer中input data用bottom表示output data用top表示。每一层定义了三种操作setup(Layer初始化), forward(正向传导,根据input计算output), backward(反向传导计算,根据output计算input的梯度)。forward和backward有GPU和CPU两个版本的实现(.cu即GPU版本的实现)。


Caffe源码解读之Blob(二)


  阅读Caffe的源码不必全部看,这样反而达不到目的,理解关键部分即可。现在我们来看Blob结构部分,按头文件和核心文件来阅读,即 /include和 /src部分,推荐使用Atom来看。   在/include/blob.hpp中定义了了Blob的数据结构。