1. 程式人生 > >用caffe訓練自己的資料集(三)

用caffe訓練自己的資料集(三)

本文主要參考了:https://blog.csdn.net/heimu24/article/details/53581362

                    https://blog.csdn.net/gaohuazhao/article/details/69568267

六、使用訓練好的模型

前兩篇部落格已經把模型訓練好了,本次就是使用已經訓練好的模型引數識別圖片。

首先在myfile4資料夾下新建images資料夾,把想要檢測的圖片放入資料夾中,可以用下載的淘寶圖片測試。

1、在myfile4資料夾中新建deploy.prototxt檔案,內容如下:

name: "myfile4"
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param{shape:{dim:1 dim:3 dim:32 dim:32}}
  
}

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 32
    pad:2
    kernel_size: 5
    stride: 1
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
  }
}
layer {
   name:"relu1"
   type:"ReLU"
   bottom:"pool1"
   top:"pool1"
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 32
    pad:2
    kernel_size: 5
    stride: 1
  }
}
layer {
    name:"relu2"
    type:"ReLU"
    bottom:"conv2"
    top:"conv2"
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: AVE
    kernel_size: 3
    stride: 2
  }
}
layer {
   name:"conv3"
   type:"Convolution"
   bottom:"pool2"
   top:"conv3"
   param{
     lr_mult:1
  }
   param{
     lr_mult:2
  }
  convolution_param {
     num_output:64
     pad:2
     kernel_size:5
     stride:1
  }
}
layer {
  name:"relu3"
  type:"ReLU"
  bottom:"conv3"
  top:"conv3"
}
layer {
  name:"pool3"
  type:"Pooling"
  bottom:"conv3"
  top:"pool3"
  pooling_param {
    pool:AVE
    kernel_size:3
    stride:2
  }
}
layer {
  name: "ip1"
  type: "InnerProduct"
  bottom: "pool3"
  top: "ip1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 64
  }
}

layer {
  name: "ip2"
  type: "InnerProduct"
  bottom: "ip1"
  top: "ip2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 10
  }
}

layer {
  name: "prob"
  type: "Softmax"
  bottom: "ip2"
  top: "prob"
}

2、在myfile4資料夾中新建檔案synset_work.txt,內容如下:

biao
fajia
kuzi
xiangzi
yizi
dianshi
suannai
xiangshui
hufupin
xiezi

3、在myfile4資料夾下新建demo.sh。內容如下:

./build/examples/cpp_classification/classification.bin examples/myfile4/deploy.prototxt examples/myfile4/my_iter_2000.caffemodel examples/myfile4/mean.binaryproto examples/myfile4/synset_words.txt examples/myfile4/images/222.jpg

4、在caffe目錄下執行examples/myfile4/demo.sh  

完成後就會出現識別的結果。自此便完成了自己資料集的訓練與識別。