- 博客(6)
- 收藏
- 关注
原创 Caffe源码阅读(粗读)--网络训练
Caffe源码阅读(粗读)–网络初始化上一篇博文中我们简单了解了网络初始化过程,接下来我们仍将粗略理解网络训练过程。在网络初始化完成之后,生成的Solver类对象solver将会调用Solve()函数训练网络并保存训练好的网络模型。src/caffe/solver.cpp Solve()函数首先根据resume_file是否为空来判断是否需要finetuning网络模型,如果resume_file
2016-12-23 17:25:59
459
原创 Caffe源码阅读(粗读)--网络初始化
最近打算看一看caffe实现的源码,我是从caffe训练这个线索阅读代码的。caffe.bin这个是我们在训练网络时用到的可执行文件,其中main()函数首先对输入参数进行解析,这里边用到了google的工具包gflags,参数会把linux下输入的./build/tools/caffe.bin train –solver=examples/mnist/lenet_solver.prototxt -
2016-12-14 21:52:09
1264
原创 神经网络简介-加速学习
在训练神经网络过程中,网络训练速度是比较引人关注的一个问题。我们希望在训练过程中网络代价函数会快速收敛,准确率会快速提升,下面来说说一些常见的方法。1.代价函数更换1.1. quadratic-cost functionJ(w,b)=12n∑i=1n(yi−h(w,b)(xi))2+R(w)J(w,b)=\frac{1}{2n}\sum_{i=1}^{n}{\left(y_{i}-h_{(w,b)}
2016-11-11 10:39:17
472
原创 神经网络简介-防止过拟合
因为神经网络具有很多参数,而训练过程中,如果对这些参数不加以限制,它们很可能会在训练出的模型中含带有训练数据的特性。为了防止这样的情况发生,通常有以下几种方法: 1.early stop(及早停止) 在模型训练过程中,在训练数据集上,代价函数会一直降低,但是训练出来的模型在测试集上的结果是先升高,在过了一定的训练轮数后,结果会在最高值附近波动甚至减低,这是因为模型学习到了训练数据
2016-11-07 21:37:08
7986
原创 神经网络简介-多层神经网络
上一节介绍了神经元及相关内容,本节我们看一下神经网络 如上图所示,该神经网络有三层。我们标记第一层(也就是输入层)为a(1)a^{(1)},第一层与第二层连接权重为w(1)w^{(1)},然后第一层输入与第一层权重的线性和为z(1)z^{(1)},第一层神经元个数为n(1)n^{(1)},并依次标记剩余网络层。 可以看出,存在 z(l)j=∑i=1n(l)a(l)i⋅w(l)i,j=a(l)⊤
2016-11-05 16:47:01
1488
原创 神经网络简介-神经元
神经网络学习1,神经元 如上图所示为一个神经元,输入样本集合为X∈R1×dX\in R^{1\times d},共有nn个样本,这nn个样本对应的输出为yy。 上图中 z=∑i=1nwi⋅xi+bz=\sum_{i=1}^{n}w_{i}\cdot x_{i}+b 然后对于输入产生的值zz,有一个激活函数f(⋅)f(\cdot),使得a=f(z)a=f(z)。这样,输入xx通过这个神经
2016-11-03 09:55:50
559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人