下面提供了caffe python的六个测试demo,大家可以根据自己的需求进行修改。

Example 1

  • From project FaceDetection_CNN-master, under directory , in source file test.py.
def convert_full_conv():
# Load the original network and extract the fully connected layers' parameters.
net = caffe.Net('deploy.prototxt',
'alexNet__iter_60000.caffemodel',
caffe.TEST)
params = ['fc6', 'fc7', 'fc8_flickr']
fc_params = {pr: (net.params[pr][0].data, net.params[pr][1].data) for pr in params}
# Load the fully convolutional network to transplant the parameters.
net_full_conv = caffe.Net('face_full_conv.prototxt',
'alexNet__iter_60000.caffemodel',
caffe.TEST)
params_full_conv = ['fc6-conv', 'fc7-conv', 'fc8-conv']
conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}
for pr, pr_conv in zip(params, params_full_conv):
conv_params[pr_conv][0].flat = fc_params[pr][0].flat # flat unrolls the arrays
conv_params[pr_conv][1][...] = fc_params[pr][1]
net_full_conv.save('face_full_conv.caffemodel')

Example 2

  • From project visual-concepts-master, under directory , in source file test_model.py.
def load_model(prototxt_file, model_file, base_image_size, mean, vocab):
"""
Load the model from file. Includes pointers to the prototxt file,
caffemodel file name, and other settings - image mean, base_image_size, vocab
"""
model = {};
model['net']= caffe.Net(prototxt_file, model_file, caffe.TEST);
model['base_image_size'] = base_image_size;
model['means'] = mean; model['vocab'] = vocab;
return model

Example 3

  • From project SketchingAI-master, under directory src, in source file gendraw.py.
  • Caffe中只给出了分类模型classify.py,如果想写预测模型predict.py可以参考这个
def test_old():
with open(labelspath,"r") as opened_file:
labels = opened_file.readlines() caffe.set_mode_gpu()
net = caffe.Net(model_file, pretrained, caffe.TEST) transformer = caffe.io.Transformer({"data": net.blobs["data"].data.shape})
transformer.set_transpose("data",(2,0,1))
transformer.set_mean("data",numpy.load(caffe_root+"/python/caffe/imagenet/ilsvrc_2012_mean.npy").mean(1).mean(1))
transformer.set_raw_scale("data",255)
transformer.set_channel_swap("data",(2,1,0)) net.blobs["data"].reshape(1,3,227,227) test_image = dataroot+"/homecat.jpg"
test_image1 = dataroot+"/241.png" net.blobs["data"].data[...] = transformer.preprocess("data", caffe.io.load_image(test_image1)) out = net.forward()
print net.blobs["fc6"].data.shape prediction = out["prob"] indices = numpy.argpartition(prediction[0],-10)[-10:] print prediction[0].argmax(), labels[prediction[0].argmax()] net.blobs["data"].data[...] = transformer.preprocess("data", caffe.io.load_image(test_image)) out = net.forward()
print net.blobs["fc6"].data.shape prediction = out["prob"] indices = numpy.argpartition(prediction[0],-10)[-10:] print prediction[0].argmax(), labels[prediction[0].argmax()] for index in indices:
print labels[index]

Example 4

  • From project fast-rcnn-master, under directory tools, in source file compress_net.py.
def main():
args = parse_args() net = caffe.Net(args.prototxt, args.caffemodel, caffe.TEST) net_svd = caffe.Net(args.prototxt_svd, args.caffemodel, caffe.TEST) print('Uncompressed network {} : {}'.format(args.prototxt, args.caffemodel))
print('Compressed network prototxt {}'.format(args.prototxt_svd)) out = os.path.splitext(os.path.basename(args.caffemodel))[0] + '_svd'
out_dir = os.path.dirname(args.caffemodel) # Compress fc6
if net_svd.params.has_key('fc6_L'):
l_fc6 = net_svd.params['fc6_L'][0].data.shape[0]
print(' fc6_L bottleneck size: {}'.format(l_fc6)) # uncompressed weights and biases
W_fc6 = net.params['fc6'][0].data
B_fc6 = net.params['fc6'][1].data print(' compressing fc6...')
Ul_fc6, L_fc6 = compress_weights(W_fc6, l_fc6) assert(len(net_svd.params['fc6_L']) == 1) # install compressed matrix factors (and original biases)
net_svd.params['fc6_L'][0].data[...] = L_fc6 net_svd.params['fc6_U'][0].data[...] = Ul_fc6
net_svd.params['fc6_U'][1].data[...] = B_fc6 out += '_fc6_{}'.format(l_fc6) # Compress fc7
if net_svd.params.has_key('fc7_L'):
l_fc7 = net_svd.params['fc7_L'][0].data.shape[0]
print ' fc7_L bottleneck size: {}'.format(l_fc7) W_fc7 = net.params['fc7'][0].data
B_fc7 = net.params['fc7'][1].data print(' compressing fc7...')
Ul_fc7, L_fc7 = compress_weights(W_fc7, l_fc7) assert(len(net_svd.params['fc7_L']) == 1) net_svd.params['fc7_L'][0].data[...] = L_fc7 net_svd.params['fc7_U'][0].data[...] = Ul_fc7
net_svd.params['fc7_U'][1].data[...] = B_fc7 out += '_fc7_{}'.format(l_fc7) filename = '{}/{}.caffemodel'.format(out_dir, out)
net_svd.save(filename)
print 'Wrote svd model to: {:s}'.format(filename)

Example 5

  • From project DIGITS-master, under directory digits/model/tasks, in source file caffe_train.py.
def get_net(self, epoch=None):
"""
Returns an instance of caffe.Net Keyword Arguments:
epoch -- which snapshot to load (default is -1 to load the most recently generated snapshot)
"""
if not self.has_model():
return False file_to_load = None if not epoch:
epoch = self.snapshots[-1][1]
file_to_load = self.snapshots[-1][0]
else:
for snapshot_file, snapshot_epoch in self.snapshots:
if snapshot_epoch == epoch:
file_to_load = snapshot_file
break
if file_to_load is None:
raise Exception('snapshot not found for epoch "%s"' % epoch) # check if already loaded
if self.loaded_snapshot_file and self.loaded_snapshot_file == file_to_load \
and hasattr(self, '_caffe_net') and self._caffe_net is not None:
return self._caffe_net if config_value('caffe_root')['cuda_enabled'] and\
config_value('gpu_list'):
caffe.set_mode_gpu() # load a new model
self._caffe_net = caffe.Net(
self.path(self.deploy_file),
file_to_load,
caffe.TEST) self.loaded_snapshot_epoch = epoch
self.loaded_snapshot_file = file_to_load return self._caffe_net

Example 6

  • From project DIGITS-master, under directory examples/classification, in source file example.py.
def get_net(caffemodel, deploy_file, use_gpu=True):
"""
Returns an instance of caffe.Net Arguments:
caffemodel -- path to a .caffemodel file
deploy_file -- path to a .prototxt file Keyword arguments:
use_gpu -- if True, use the GPU for inference
"""
if use_gpu:
caffe.set_mode_gpu() # load a new model
return caffe.Net(deploy_file, caffemodel, caffe.TEST)

Python caffe.TEST Example(Demo)的更多相关文章

  1. appium+Python真机运行测试demo的方法

    appium+Python真机运行测试demo的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...

  2. make pycaffe时候报错:Makefile:501: recipe for target 'python/caffe/_caffe.so' failed

    安装caffe-ssd编译环境的时候报错: python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file ...

  3. Chapter 3 Start Caffe with MNIST Demo

    先从一个具体的例子来开始Caffe,以MNIST手写数据为例. 1.下载数据 下载mnist到caffe-master\data\mnist文件夹. THE MNIST DATABASE:Yann L ...

  4. 第一个 Python 程序 - Email Manager Demo

    看了一些基础的 Python 新手教程后,深深感觉到 Python 的简洁与强大,这是我的第一个 Python Demo.下面是完整代码与执行截图. 代码: # encoding: utf-8 ''' ...

  5. 安装python caffe过程中遇到的一些问题以及对应的解决方案

    关于系统环境: Ubuntu 16.04 LTS cuda 8.0 cudnn 6.5 Anaconda3 编译pycaffe之前需要配置文件Makefile.config ## Refer to h ...

  6. python 词云小demo

    词云小demo jiebawordcloud 一 什么是词云? 由词汇组成类似云的彩色图形.“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过 ...

  7. Python实例---简单购物车Demo

    简单购物车Demo # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 product_list = ( ['Java ...

  8. python caffe 在师兄的代码上修改成自己风格的代码

    首先,感谢师兄的帮助.师兄的代码封装成类,流畅精美,容易调试.我的代码是堆积成的,被师兄嘲笑说写脚本.好吧!我的代码只有我懂,哈哈! 希望以后代码能写得工整点.现在还是让我先懂.这里,我做了一个简单的 ...

  9. python+caffe训练自己的图片数据流程

    1. 准备自己的图片数据 选用部分的Caltech数据库作为训练和测试样本.Caltech是加州理工学院的图像数据库,包含Caltech101和Caltech256两个数据集.该数据集是由Fei-Fe ...

随机推荐

  1. Python 基础之列表去重的几种玩法

    列表去重 1.方法1 借助一个临时列表 ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in news_ids ...

  2. 面试之Java持久层(十)

    91,什么是ORM?         对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术: 简单的说,O ...

  3. Import error: no module named cv2 错误解决方法

    Windows: 将opencv安装目录下的cv2.pyd拷贝到Python安装目录里Lib中site-packages Linux: (1)将opencv安装目录下的cv2.so拷贝到Python安 ...

  4. Delphi TreeView – 自动给标题上加图片

    Delphi TreeView – 自动给标题上加图片 当处理完TreeView控件树形结构的数据后,根据不同的树形节点Level,加上不同的图片. 图片的ImageList已经放置好,并且TreeV ...

  5. IEnumerable 与 Iqueryable 的区别

    IEnumerable 和 IQueryable   共有两组 LINQ 标准查询运算符,一组在类型为 IEnumerable<T> 的对象上运行,另一组在类型为 IQueryable&l ...

  6. 【BZOJ4384】[POI2015]Trzy wieże 树状数组

    [BZOJ4384][POI2015]Trzy wieże Description 给定一个长度为n的仅包含'B'.'C'.'S'三种字符的字符串,请找到最长的一段连续子串,使得这一段要么只有一种字符 ...

  7. 【bzoj4518】[Sdoi2016]征途 斜率优化dp

    原文地址:http://www.cnblogs.com/GXZlegend/p/6812435.html 题目描述 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界 ...

  8. xmpp muc 群聊协议 2

    Roles and Affiliations There are two dimensions along which we can measure a user's connection with ...

  9. mvn命令上传jar

    开发过程中涉及到下载第三SDK包,而本身项目是基于gradle的,所以为了项目中使用sdk包,需要将包加入到自己的仓库 1.利用nexus创建自己的第三方库thirdparty 类型hosted 2. ...

  10. 观《phonegap第三季 angularjs+ionic视频教程 实时发布》学习笔记(三)

    十五.ionic路由 1.ionic中内联模板介绍 使用内联模板内联模板的使用,常见的有几种情况.(1) 使用ng-include指令可以利用ng-include指令在HTML中直接使用内联模板,例如 ...