使用Caffe平台工具训练CNN的过程分为6个步骤:
①数据准备。整理图像样本数据并将其存储为Caffe可以使用的格式。将训练数据分为两组:一组用于训练,一般为所有图像样本的5/6;另一组用于验证,一般为所有图像样本的1/6。训练集用于训练模型,而验证集用于计算模型的准确性。
可以编写一个Python脚本create_lmdb.py来处理图像预处理和存储。运行该脚本执行以下操作:
在所有训练图像上运行直方图均衡化,用于调整图像的对比度。将所有训练图像调整为227×227格式,将训练和验证存储在2个LMDB数据库中。
处理完毕后,train_lmdb用于训练模型,validation_lmbd用于模型评估。
②生成训练数据的平均图像。执行以下命令以生成训练数据的均值图像。将从每个输入图像中减去均值图像,以确保每个特征像素均值为零。这是有监督的机器学习中的常见预处理步骤。
/home/ubuntu/caffe/build/tools/compute_image_mean-backend=lmdb/home/ubuntu/deeplearning-cats-dogs-tutorial/input/train_lmdb/home/ubuntu/deeplearning-cats-dogs-tutorial/input/mean.binaryproto
③模型定义。在此步骤中,要选择CNN架构。Caffe附带有一些流行的CNN模型,例如Alexnet和GoogleNet等。决定CNN架构后,需要在prototxttrain_val文件中定义模型结构及其参数。
④求解器定义。求解器负责模型优化。在.prototxt文件中定义求解器的参数。可以在deeplearning-cats-dogs-tutorial/caffe_models/caffe_model_1/名称下找到求解器solver_1.prototxt。
该求解器每隔1 000次迭代使用验证集计算模型的准确性。优化过程最多将运行40 000次迭代,并且每5 000次迭代将对训练后的模型进行快照。(www.xing528.com)
base_lr,lr_policy,gamma,momentum和weight_decay等参数需要调整,以获得模型很好的收敛超参数。
⑤模型训练。定义模型和求解器后,可以通过执行以下命令开始训练模型:
/home/ubuntu/caffe/build/tools/caffe train--solver/home/ubuntu/deeplearning-cats-dogs-tutorial/caffe_models/caffe_model_1/solver_1.prototxt 2>&1|发球台/home/ubuntu/deeplearning-cats-dogs-tutorial/caffe_models/caffe_model_1/model_1_train.log
训练日志将存储在下deeplearning-cats-dogs-tutorial/caffe_models/caffe_model_1/model_1_train.log。
在训练过程中,需要监控损失和模型准确性。Caffe每隔5 000次迭代都会对经过训练的模型进行快照,并将其存储在caffe_model_1文件夹中。
通过从终端执行一个Caffe命令来训练模型。训练模型后,可以在扩展名为.caffemodel的文件中获得训练后的模型。
⑥绘制学习曲线。在训练阶段之后,可以使用.caffemodel训练后的模型对新的数据进行预测。
学习曲线是训练和测试损失与迭代次数的函数图。这些图对于可视化训练/验证损失和验证准确性非常有用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。