BP(Back Propagation)(反向传播)算法:
隐含层的个数选择
h=sqrt(m+n)+a
h表示隐含层的节点个数,m表示输入层的节点个数,n表示输出层的节点个数,a表示1-10之间的调节常数
卷积神经网络
train是训练集,val是验证集,test是测试集。
train是网络模型在训练的时候用的,而val是网络模型在训练过程中测试用的,val是不影响训练的。在训练的时候可以得到train和val这两个数据集的误差率,利用这个误差率可以绘制出学习曲线,通过观察学习曲线,你可以发现一些网络模型的问题,然后再根据这些问题去调整网络参数。test就是网络模型训练完毕测试用的。
卷积层
卷积层中的卷积核的大小和数目是由人手动设置的,卷积核中的值是由网络训练得到的
feature map的数目是由卷积核的数目决定的,例如有54个卷积核就有54个feature maps。
图片大小:m*n,卷积核个数:h,feature map:a
单通道情况下:每个feature map=一个卷积核对图片进行卷积运算,然后加上biases,
多通道情况下(3通道):每个feature map=一个卷积核对图片每个通道分别进行卷积运算,然后对应位置相加,在加上biases
caffe
卷积运算的输出大小:
height_out=(height+2*pad-kernel_size)/stride+1
width_out=(width+2*pad-kernel_size)/stride+1
其中的pad表示外围填充数目,stride表示步长
deploy.prototxt文件
如果要把训练好的模型拿来测试新的图片,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而已。deploy文件没有第一层数据输入层,也没有最后的Accuracy层,但最后多了一个Softmax概率层。
solver.prototxt文件参数详解
http://blog.csdn.net/u010417185/article/details/52182833