导师布置的一个任务,做一个二分类,数据集自己划分训练和测试的,主要难点在于图片位深是32,是做四通道的训练网络还是转换成三通道的呢?
1.训练参数的设置
【batch大小选择】
也就是批梯度下降法。因为如果数据集足够充分,那么用一半,甚至少得多的数据训练算出来的梯度与用全部数据训练出来的梯度几乎是一样的。
在合理范围内,增大Batch_size的好处:
1.提高了内存利用率以及大矩阵乘法的并行化效率。
2.减少了跑完一次epoch(全数据集)所需要的迭代次数,加快了对于相同数据量的处理速度。
盲目增大Batch_size的坏处:
1.提高了内存利用率,但是内存容量可能不足。
2.跑完一次epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加,从而对参数的修正也就显得更加缓慢。
3.Batch_size增大到一定程度,其确定的下降方向已经基本不再变化
————————————————深度学习中学习率和batchsize对模型准确率的影响_初识-CV的博客-CSDN博客_学习率大小的影响本内容来自其他的人解析,参考链接在最后的注释。1. 前言目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下:n是批量大小(batchsize),η是学习率(learning rate)。可知道除了梯度本身,这两个因子直接决定了模型的权重更新,从优化本身来看它们是影响模型性能收敛最重要的参数。学习率直接影响模型的收敛状态,batchsize则影响模型的泛化性能,两者又是分子分母的直接关系,相互也可影响,因此这一次来详述它们对模型性能的影响。2. 学习率如何影响模型性.https://blog.csdn.net/qq_38410428/article/details/109554232
2.神经网络的选择
参考代码:
使用的是CNN网络,但是预测效果很差只有50%
3.四通道的处理
“四通道的 其实只增加通道数,并没有增加维度,实际维度还是,batchsize,h,w,c,四个维度,争对fcn的话只需要进入数据读入的那个py文件改几行源码即可。但是数据增加待四维有个问题,就是传统的vgg16的权值将不能copy,因为第一层卷积核不再是h*w*3*64,而是h*w*4*64,相对caffe而言,这对后期训练,loss的收敛都是问题,需要花功夫去调整。”
最后·我还是直接用的四通道原始图片和convert后的三通道图片都试过一遍,使用的是ResNet模型微调为二分类,可以看Pytorch官网教程,非常详细且多的源码示例,跑出来结果非常高。。