Windows下使用caffe进行VGG人脸识别深度神经网络模型的微调训练.docx_第1页
Windows下使用caffe进行VGG人脸识别深度神经网络模型的微调训练.docx_第2页
Windows下使用caffe进行VGG人脸识别深度神经网络模型的微调训练.docx_第3页
Windows下使用caffe进行VGG人脸识别深度神经网络模型的微调训练.docx_第4页
Windows下使用caffe进行VGG人脸识别深度神经网络模型的微调训练.docx_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows下采用caffe进行VGG人脸识别深度神经网络模型的微调训练2016-8-29 本文介绍在Windows环境下,采用采用caffe进行VGG人脸识别深度神经网络模型的fine-tune(微调训练)。运行环境为:windows7+vs2013+matlab2015a+caffe(微软版)。1. 代码和文件准备代码caffe:/BVLC/caffe/tree/windows,这个只要采用VS2013编译好就可以用了,配置编译按照网页上的说明进行即可完成。vgg-face模型:http:/www.robots.ox.ac.uk/vgg/software/vgg_face/。该网页包括caffe,matconvnet,torch三个版本,下载caffe版本即可。2. 数据准备收集人脸图像数据及对应的标签数据,vgg处理的图片的尺寸是224*224,因此不符合尺寸要求的要对尺寸进行修正。然后采用caffe中的convert_imageset工具将人脸图像及对应的标签转换为leveldb格式的库文件。并采用caffe中的compute_image_mean工具计算leveldb库文件中所包含人脸的均值文件face_mean.binaryproto。将训练数据和评估数据的库文件分别放置在下述位置:J:/caffe-windows/vggface_mycmd/vggface_train_leveldbJ:/caffe-windows/vggface_mycmd/vggface_val_leveldb3. 训练网络第三部分就开始训练网络了,首先需要到vggface的官网上下载vggface的caffe模型(官网还包括matconvnet模型,试过finetuning太慢了,torch没有试过),下载好了,就会有两个文件,一个是VGG_FACE_totxt,一个是VGG_FACE.caffemodel(深度网络的模型文件)。先建立一个.prototxt文件,命名为vggface_train_totx (深度网络的模型框架定义文件)即可,把之前VGG_FACE_totxt的所有的复制过来,然后加入数据层。VGG_FACE.caffemodel(深度网络的模型文件)与vggface_train_totx (深度网络的模型框架定义文件)要相配套。(1). vggface_train_totxtname: VGG_ILSVRC_16_layers layers name: data type: DATA include phase: TRAIN transform_param crop_size: 224 mean_value: 104 mean_value: 117 mean_value: 123 mirror: true data_param source: J:/caffe-windows/vggface_mycmd/vggface_train_leveldb batch_size: 3 backend: LEVELDB top: data top: labellayers name: data type: DATA include phase: TEST transform_param crop_size: 224 mean_value: 104 mean_value: 117 mean_value: 123 mirror: false data_param source: vggface_mycmd/vggface_val_leveldb batch_size: 3 backend: LEVELDB top: data top: labellayers bottom: data top: conv1_1 name: conv1_1 type: CONVOLUTION convolution_param num_output: 64 pad: 1 kernel_size: 3 layers bottom: conv1_1 top: conv1_1 name: relu1_1 type: RELUlayers bottom: conv1_1 top: conv1_2 name: conv1_2 type: CONVOLUTION convolution_param num_output: 64 pad: 1 kernel_size: 3 layers bottom: conv1_2 top: conv1_2 name: relu1_2 type: RELUlayers bottom: conv1_2 top: pool1 name: pool1 type: POOLING pooling_param pool: MAX kernel_size: 2 stride: 2 layers bottom: pool1 top: conv2_1 name: conv2_1 type: CONVOLUTION convolution_param num_output: 128 pad: 1 kernel_size: 3 layers bottom: conv2_1 top: conv2_1 name: relu2_1 type: RELUlayers bottom: conv2_1 top: conv2_2 name: conv2_2 type: CONVOLUTION convolution_param num_output: 128 pad: 1 kernel_size: 3 layers bottom: conv2_2 top: conv2_2 name: relu2_2 type: RELUlayers bottom: conv2_2 top: pool2 name: pool2 type: POOLING pooling_param pool: MAX kernel_size: 2 stride: 2 layers bottom: pool2 top: conv3_1 name: conv3_1 type: CONVOLUTION convolution_param num_output: 256 pad: 1 kernel_size: 3 layers bottom: conv3_1 top: conv3_1 name: relu3_1 type: RELUlayers bottom: conv3_1 top: conv3_2 name: conv3_2 type: CONVOLUTION convolution_param num_output: 256 pad: 1 kernel_size: 3 layers bottom: conv3_2 top: conv3_2 name: relu3_2 type: RELUlayers bottom: conv3_2 top: conv3_3 name: conv3_3 type: CONVOLUTION convolution_param num_output: 256 pad: 1 kernel_size: 3 layers bottom: conv3_3 top: conv3_3 name: relu3_3 type: RELUlayers bottom: conv3_3 top: pool3 name: pool3 type: POOLING pooling_param pool: MAX kernel_size: 2 stride: 2 layers bottom: pool3 top: conv4_1 name: conv4_1 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv4_1 top: conv4_1 name: relu4_1 type: RELUlayers bottom: conv4_1 top: conv4_2 name: conv4_2 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv4_2 top: conv4_2 name: relu4_2 type: RELUlayers bottom: conv4_2 top: conv4_3 name: conv4_3 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv4_3 top: conv4_3 name: relu4_3 type: RELUlayers bottom: conv4_3 top: pool4 name: pool4 type: POOLING pooling_param pool: MAX kernel_size: 2 stride: 2 layers bottom: pool4 top: conv5_1 name: conv5_1 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv5_1 top: conv5_1 name: relu5_1 type: RELUlayers bottom: conv5_1 top: conv5_2 name: conv5_2 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv5_2 top: conv5_2 name: relu5_2 type: RELUlayers bottom: conv5_2 top: conv5_3 name: conv5_3 type: CONVOLUTION convolution_param num_output: 512 pad: 1 kernel_size: 3 layers bottom: conv5_3 top: conv5_3 name: relu5_3 type: RELUlayers bottom: conv5_3 top: pool5 name: pool5 type: POOLING pooling_param pool: MAX kernel_size: 2 stride: 2 layers bottom: pool5 top: fc6 name: fc6 type: INNER_PRODUCT inner_product_param num_output: 4096 layers bottom: fc6 top: fc6 name: relu6 type: RELUlayers bottom: fc6 top: fc6 name: drop6 type: DROPOUT dropout_param dropout_ratio: 0.5 layers bottom: fc6 top: fc7 name: fc7 type: INNER_PRODUCT inner_product_param num_output: 4096 layers bottom: fc7 top: fc7 name: relu7 type: RELUlayers bottom: fc7 top: fc7 name: drop7 type: DROPOUT dropout_param dropout_ratio: 0.5 layers bottom: fc7 top: fnc8 name: fnc8 type: INNER_PRODUCT inner_product_param num_output: 6 layers bottom: fnc8 top: prob name: prob type: SOFTMAX所做的修改主要为在原文件的第一个layer之前添加数据层。拉到文件的最底部,有个num_output: 2622的那一层,这一层主要是概率输出层,就是softmax分类器层。因为vgg训练这个网络,用了2622个人,所以就是2622,现在可以根据自己的人的个数来设置,我用了6个人,把num_output: 2622改为了num_output: 6,并且把name:所有的fc8改为了fnc8,即对fc8改名,否则会报错。好了,现在网络搭建好。另外,还需修改以下内容:(2). vgg_totxt完成vggface_train_totxt模型框架定义文件后,还需要编制一个对神经网络进行微调训练的参数文件VGG_totxt。VGG_totxt代码如下:net: vggface_mycmd/vggface_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论