在自己的数据集上微调Light CNN

遇到的坑

light cnn 加载的是灰度图,所以在 data 层要添加参数:

is_color:false
示例如下:

layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  image_data_param{
      source: "/home/code/caffe-master/lightCNNFace/val.txt"
      batch_size: 20
      is_color:false
    }
  transform_param {
    scale: 0.00390625
    crop_size: 128
    mirror: false
  }
  include: { phase: TEST }
}
1.编写微调的网络结构lightcnn_train_test.prototxt
2.准备训练图像数据,分成训练集和验证集合
注意 要将图像灰度化
3.运行训练脚本文件
code/caffe-master/build/tools/caffe train \
    --solver=code/caffe-master/lightCNNFace/LCNN_solver.prototxt \
    --weights=code/caffe-master/lightCNNFace/LightenedCNN_B.caffemodel -gpu=0
4.微调时报错
  Cannot copy param 0 weights from layer 'conv1'; shape mismatch.  Source param shape is 96 1 5 5 (2400); target param shape is 96 3 5 5 (7200). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer
5.附 lightcnn_train_test.prototxt
有过微调light cnn的网友吗?求解决方案,另外 如何进一步减小模型大小?
name: "DeepFace_set003_net"

layer {
  name: "data"
  type:"ImageData"
  top: "data"
  top: "label"
  image_data_param{
      source: "/home/himon/code/caffe-master/lightCNNFace/train.txt"
      batch_size: 20
      shuffle: true
    }
  transform_param {
    scale: 0.00390625
    crop_size: 128
    mirror: true

  }
  include: { phase: TRAIN }
}

layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  image_data_param{
      source: "/home/himon/code/caffe-master/lightCNNFace/val.txt"
      batch_size: 20
    }
  transform_param {
    scale: 0.00390625
    crop_size: 128
    mirror: false
  }
  include: { phase: TEST }
}

layer{
  name: "conv1"
  type: "Convolution"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 2
    decay_mult: 0
  }
  convolution_param {
    num_output: 96
    kernel_size: 5
    stride: 1
    pad: 2
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
      value: 0.1
    }
  }
  bottom: "data"
  top: "conv1"
}

layer{
  name: "slice1"
  type:"Slice"
  slice_param {
    slice_dim: 1
  }
  bottom: &#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Faster R-CNN是一种常用的目标检测算法,它结合了区域提取网络(Region Proposal Network,RPN)和分类网络来实现物体检测。在使用Faster R-CNN进行目标检测时,通常需要将模型的源码进行微调,以适应自己的数据集。 在PyTorch中,微调Faster R-CNN的源码需要以下几个步骤: 1. 数据集准备:首先需要准备自己的目标检测数据集。该数据集需要包含图片和对应的标签信息,标签信息通常包括物体的类别和边界框坐标。可以使用标注工具如LabelImg等进行标注,并将标注结果保存为一种格式,如VOC格式。 2. 获取源码:从PyTorch官方的GitHub仓库中获取Faster R-CNN源码。可以使用git命令行或者直接在浏览器上下载源码的压缩包。 3. 修改数据集加载:在源码中找到数据集加载部分的代码。可以通过修改已有的数据集类或者新建一个数据集类来加载自己的数据集。在数据集类中,需要定义数据集的路径、读取图片和标签的方法等。 4. 修改训练设置:在源码中找到训练设置部分的代码。根据自己的需求修改训练的batch size、学习率、训练轮数等参数。可以根据实际情况调整这些参数,以获得更好的训练效果。 5. 开始微调:在终端中切换到源码所在的目录,并执行训练指令,如"python train.py"。这将开始使用自己的数据集对Faster R-CNN进行微调。在微调过程中,可以观察训练日志和损失曲线,以评估训练的效果。 6. 模型保存:微调完成后,可以将训练得到的模型保存下来,以便后续的测试和推理使用。可以将模型保存为一个.pth文件,以便后续加载和使用。 通过以上步骤,我们可以使用PyTorch实现对Faster R-CNN的源码进行微调,以适应自己的目标检测数据集。微调后的模型可以用于检测目标物体,并根据实际需要进行后续处理和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值