Caffe接口

Caffe深度学习框架支持多种编程接口,包括命令行、Python和Matlab。

1、Caffe Python接口

1.1、接口功能

Caffe提供Python接口,即Pycafffe,具体实现在caffe/python文件夹内。在Python代码中import caffe,可以load models(导入模型)、forward and backward(前向、反向迭代)、handle IO (数据输入输出)、visualize networks(绘制net)和instrument model solving(自定义优化方法)。所有的模型数据、计算参数都是暴露在外、可供读写的。

(1)caffe.Net是主要接口,负责导入数据、校验数据、计算模型。

(2)caffe.Classifier用于图像分类。

(3)caffe.Detector用于图像检测。

(4)caffe.SGDSolver是露在外的solver的接口。

(5)caffe.io处理输入输出,数据预处理。

(6)caffe.draw可视化net的结构。

(7)Caffe.blobs以numpy ndarrays的形式表示,方便而且高效。

1.2、Pycaffe使用示例

以下是一个使用Caffe Python接口的识别LeNet手写数组的示例:

import os
import sys
import numpy as np
import matplotlib.pyplot as plt
caffe_root = '/home/alex/caffe-master/'
sys.path.insert(0, caffe_root + 'python')
import caffe 
MODEL_FILE = '/home/alex/caffe-master/examples/mnist/lenet.prototxt'
PRETRAINED='/home/alex/caffe-master/examples/images/911.bmp'
input_image = caffe.io.load_image(IMAGE_FILE, color=False)
# print input_image
# net = caffe.Classifier(MODEL_FILE, PRETRAINED, channel_swap=(2, 1, 0), image_dims=(28, 28))
net = caffe.Classifier(MODEL_FILE, PRETRAINED)
# net = caffe.Classifier(MODEL_FILE, PRETRAINED, raw_scale=255, image_dims=(28, 28))
prediction = net.predict([input_image], oversample=False)
caffe.set_mode_cpu()
print('pretrained calss:', prediction[0].argmax())

2、 Caffe命令行接口

命令行接口Cmdcaffe是Caffe中用来训练模型、计算得分以及方法判断的工具。

Cmdcaffe存放在caffe/build/tools目录下。

2.1、caffe train

caffe train命令用于模型学习,具体包括:

(1)caffe train带solver.prototxt参数完成配置。

(2)caffe train带snapshot mode_iter_1000.solverstate参数接在solver snapshot。

(3)caffe train带weight参数model.caffemodel完成Fine-tuning模型初始化。

2.2、caffe test

caffe test命令用于测试运行模型的得分,并且用百分比表示网络输出的最终结果,比如accuracy或loss作为其结果。测试过程中,显示每个batch的得分,最后输出全部batch的平均得分值。

2.3、caffe time

caffe time 命令用来检测系统性能和测量模型相对执行时间,此命令通过逐层计时与同步,执行模型检测。

参考:《深度学习——Caffe之经典模型详解与实战》

猜你喜欢

转载自blog.csdn.net/juluwangriyue/article/details/115056230