文章转载出处:http://www.cnblogs.com/denny402/p/5686257.html

如果用公式 y=f(wx+b)

来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项。f是激活函数,有sigmoid、relu等。x就是输入的数据。

数据训练完成后,保存的caffemodel里面,实际上就是各层的w和b值。

我们运行代码:

deploy=root + 'mnist/deploy.prototxt'    #deploy文件
caffe_model=root + 'mnist/lenet_iter_9380.caffemodel'   #训练好的 caffemodel
net = caffe.Net(net_file,caffe_model,caffe.TEST)   #加载model和network

就把所有的参数和数据都加载到一个net变量里面了,但是net是一个很复杂的object, 想直接显示出来看是不行的。其中:

net.params: 保存各层的参数值(w和b)

net.blobs: 保存各层的数据值

可用命令:

[(k,v[0].data) for k,v in net.params.items()]

查看各层的参数值,其中k表示层的名称,v[0].data就是各层的W值,而v[1].data是各层的b值。注意:并不是所有的层都有参数,只有卷积层和全连接层才有。

也可以不查看具体值,只想看一下shape,可用命令

[(k,v[0].data.shape) for k,v in net.params.items()]

假设我们知道其中第一个卷积层的名字叫’Convolution1’, 则我们可以提取这个层的参数:

w1=net.params['Convolution1'][0].data
b1=net.params['Convolution1'][1].data

输入这些代码,实际查看一下,对你理解network非常有帮助。

同理,除了查看参数,我们还可以查看数据,但是要注意的是,net里面刚开始是没有数据的,需要运行:

net.forward()

之后才会有数据。我们可以用代码:

[(k,v.data.shape) for k,v in net.blobs.items()]

或:

[(k,v.data) for k,v in net.blobs.items()]

来查看各层的数据。注意和上面查看参数的区别,一个是net.params, 一个是net.blobs.

实际上数据刚输入的时候,我们叫图片数据,卷积之后我们就叫特征了。

如果要抽取第一个全连接层的特征,则可用命令:

fea=net.blobs['InnerProduct1'].data

只要知道某个层的名称,就可以抽取这个层的特征。

推荐大家在spyder中,运行一下上面的所有代码,深入理解模型各层。

最后,总结一个代码:

import caffe
import numpy as np
root='/home/xxx/'   #根目录
deploy=root + 'mnist/deploy.prototxt'    #deploy文件
caffe_model=root + 'mnist/lenet_iter_9380.caffemodel'   #训练好的 caffemodel
net = caffe.Net(deploy,caffe_model,caffe.TEST)   #加载model和network[(k,v[0].data.shape) for k,v in net.params.items()]  #查看各层参数规模w1=net.params['Convolution1'][0].data  #提取参数w
b1=net.params['Convolution1'][1].data  #提取参数bnet.forward()   #运行测试[(k,v.data.shape) for k,v in net.blobs.items()]  #查看各层数据规模fea=net.blobs['InnerProduct1'].data   #提取某层数据(特征)

caffe的python接口学习:caffemodel中的参数及特征的抽取(转载)相关推荐

  1. caffe的python接口学习(8):caffemodel中的参数及特征的抽取

    如果用公式  y=f(wx+b) 来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项.f是激活函数,有sigmoid.relu ...

  2. caffe的python接口学习(2)生成solver文件

    caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面 有一些参数需要计算的,也不是乱设置. 假设我们有50000个训练样本,batch_si ...

  3. caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片

    经过前面两篇博文的学习,我们已经训练好了一个caffemodel模型,并生成了一个deploy.prototxt文件,现在我们就利用这两个文件来对一个新的图片进行分类预测. 我们从mnist数据集的t ...

  4. 利用caffe的python接口实现DeepImageSynthesis实例

    在之前实现faster rcnn的博客中,先是配置了caffe的python接口,但是在验证的时候用DeepTexture的实例没有成功.改用pycharm而不是jupyter notebook再试一 ...

  5. Windows10上使用Caffe的Python接口进行图像分类例程

    本文将会介绍Caffe的Python接口的使用方法.编辑Python可以使用很多种方法,我们采用的是IPython交互式编辑环境. 1 Python的安装 如果你的Windows电脑还没有安装Pyth ...

  6. Caffe的python接口安装

    点击此处返回总目录 这一节我们需要编译pycaffe.pycaffe是caffe的python接口.后面我们回用到python进行编程. 一.准备工作 准备工作1:Caffe release版本的编译 ...

  7. caffe python接口_ubuntu配置caffe的python接口pycaffe

    参考网站: ubuntu配置caffe的python接口pycaffe 依赖 前提caffe已经正确编译.见Ubuntu配置caffe库包sudo apt-get install python-pip ...

  8. python dlib学习(七):人脸特征点对齐

    前言 前面的博客介绍过人脸特征点标定:python dlib学习(二):人脸特征点标定.这次试着使用这些人脸特征点来对人脸进行对齐. 完整工程链接附在文章最后. 程序 上代码,程序中使用了python ...

  9. ubuntu16.04 安装caffe以及python接口

    http://blog.csdn.net/qq_25073253/article/details/72571714 http://blog.csdn.net/greed7480/article/det ...

  10. 使用caffe的python接口预测多张图片

    一.前言 根据前面博文 使用lenet模型训练及预测自己的图片数据 可得到训练得的caffemodel及其他相关的文件,回顾下My_FIle文件夹如下,predictPic文件夹中保存的是名为&quo ...

最新文章

  1. C++ 数据类型转换
  2. Spring Boot 集成 Swagger 生成 RESTful API 文档
  3. 全站仪和手机连接软件_全站仪USB口数据线驱动-USB全站仪器数据线驱动程序下载免费版-西西软件下载...
  4. 一次C端线上缓存问题的总结
  5. CF思维联系–CodeForces -224C - Bracket Sequence
  6. android px,dp,sp大小转换工具
  7. 帝国 标签模板 使用程序代码 自定义 时间显示方式
  8. STM32 DMA传输
  9. 关于JavaScript的词法作用域及变量提升的个人理解
  10. NSString copy or not (strong)?
  11. JAVAEE工程师-2年经验-个人简历
  12. 谷歌浏览器打不开网页
  13. 移动智能终端之国产操作系统(笔记三)
  14. python操作word文档,表格中插入文字及照片
  15. 青龙羊毛——去闲转(搬砖)
  16. David I 盛大之行
  17. PostgreSQL表膨胀终结者
  18. Ubuntu18.04人工智能环境搭建
  19. Java面试通关神器,冲鸭,进大厂!
  20. 武汉市申请国家现代农业产业科技创新中心发展奖励标准及申请要求

热门文章

  1. nginx编译包含perl模块
  2. Debian Mysql stop 问题
  3. LeetCode每日一题——两数之和
  4. (Sublime Text 3)完美替换 GAMS 难用的编辑器
  5. POJ 2686 Traveling by Stagecoach 壮压DP
  6. 序列化,pickle,shelve,json,configparser
  7. 【bzoj5173】[Jsoi2014]矩形并 扫描线+二维树状数组区间修改区间查询
  8. 从校园情侣到教授夫妇,最好的科研爱情是一起进步
  9. 【每日一读】EMNLP2020: 面向多跳问答的分层图网络
  10. 75道常见AI面试题,看看你的知识盲点在哪?(附解析,包括机器学习、深度学习、苹果Google面试等)...