8. Pycaffe的安装与使用

2018-06-19  本文已影响0人  闪电侠悟空

a)数据的准备与生成

├── 0
│   ├── img1.jpg
│   ├── img1.jpg
│   ├── imgx.jpg
│   └── imgN.jpg
├── 1
│   ├── img1.jpg
│   ├── img1.jpg
│   ├── imgx.jpg
│   └── imgN.jpg
/media/user/0/img1.jpg 0
/media/user/0/img2.jpg 0
/media/user/0/imgx.jpg 0
/media/user/0/imgN.jpg 0
/media/user/1/img1.jpg 1
/media/user/1/img2.jpg 1
/media/user/1/imgx.jpg 1
/media/user/1/imgN.jpg 1

这个文件当然可以自己慢慢写,最好是自己通过某种代码生成。

DATA=/home/wukong/train
~/wukong/caffe/build/tools/convert_imageset   $DATA/list.txt  $DATA/img_train_lmdb

复杂点的命令,也就是可以指定些可选的参数

#!/bin/sh
Caffe=/home/wukong/caffe 
DATA=/home/wukong/List/
rm -rf $DATA/img_train_lmdb
$Caffe/build/tools/convert_imageset --shuffle=true --resize_height=224 --resize_width=224 /  $DATA/list.txt  $DATA/img_train_lmdb

b) 网络与训练

#!/usr/bin/env sh
./home/wukong/caffe/build/tools/caffe train --solver=*.solver.prototxt

这样开展模型的训练是ok的,但是很多网络(比如ResNet,Inception)都存在这里了,我们直接迁移学习(finetune)不更好么?这样就不得不提到caffe train 的参数说明。

-solver:必选参数。一个模型的训练配置文件。
-weights:可选参数。需要一个caffemodel,不能和-snapshot同时使用

更多细节请参考caffe命令及其参数解析

c)训练网络的使用(预测)

我采用的是pycaffe的接口使用caffemodel的。主要包括调用网络(load net model)和调用数据(input data)

import caffe
import numpy  as np

# 加载模型
deploy_file = '/home/wukong/wukong_net.prototxt'
model_data = '/home/wukong/wukong_net_param.caffemodel'
net = caffe.Classifier(deploy_file,model_data)              # 方式1:加载model和network
net = caffe.Net(deploy_file, model_data, caffe.TEST)  # 方式2:加载model和network

# 加载数据
image_file = '/home/wukong/mm.jpg'
input_image = caffe.io.load_image(image_file) #caffe 接口导入图像文件
net.blobs['data'].data = input_image #类似于重修修改网络结构

# 预测运行网络
out = net.forward()
results = out['prob'] #等后续处理

事情到此,基于pycaffe的使用框架大致弄清楚了。后面需要在细节部分展开学习。

安装部分错误及解决办法

 pip install -U setuptools
上一篇 下一篇

猜你喜欢

热点阅读