转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/5783006.html

之前使用的是torch,由于其他人在caffe上面预训练了inception模型,需要使用caffe的inception模型进行微调。然后网上搜了一下如何将caffe模型load到torch里面。有两种方式(可直接跳转到3查看):

1. https://github.com/szagoruyko/loadcaffe

该网址的不需要安装caffe。应该是根据.prototxt来强制解析.caffemodel文件的吧(瞎猜的。。。)。这个安装比较简单,直接使用luarocks install loadcaffe就行(唯一的依赖就是protobuf:sudo apt-get install libprotobuf-dev protobuf-compiler),但是装完之后,用不了。。。仔细一看,该网址写着:Loading googlenet is supported by。。。应该就是不支持inception模型吧。

代码如下:

require 'loadcaffe'
model = loadcaffe.load('my inception.prototxt', ' my inception.caffemodel', 'nn')
torch.save("net.t7", model)

反正用的时候,提示如下:

说明:该网址提供了一些已经训练好的模型(下载不一定需要fq,但是从该网址打开对应的连接需要fq),使用训练好的模型是可以成功载入的。同时自动生成对应的lua文件,如my inception.prototxt.lua。使用torch.save后,会生成.t7文件。

2. 该网址给出了如果使用inception模型的网址的链接(并未算作第二种方式):

https://github.com/soumith/inception.torch

但是该程序是直接读已经写好的lua文件,貌似并不能转caffe的inception。

ps:上面这个网址又给出了tensorflow转torch的V3的链接:

https://github.com/Moodstocks/inception-v3.torch

3. https://github.com/szagoruyko/torch-caffe-binding

这个网址给出的也是从.prototxt及.caffemodel来得到torch的模型。但是不会生成lua文件。使用该程序需要安装caffe。

1)由于使用的电脑已经安装了caffe,因而直接运行如下命令安装:

CAFFE_DIR=/*path-to-caffe-root*/ luarocks install caffe

如:

CAFFE_DIR=/usr/local/caffe luarocks install caffe

说明:

a 上面这个直接在终端里面一次性输入就行(开始在.bashrc文件中加入了CAFFE_DIR并重启了电脑。不清楚如果不加入CAFFE_DIR,程序能否运行)

b 此处为caffe的根目录,如下图,不用加上include目录。

因为CMakeLists.txt里面包含了需要的子文件夹:

c 中间碰到了一个问题,就是运行上面的命令后,提示如下:

error: #error This file was generated by a newer version of protoc which is
error: #error incompatible with your Protocol Buffer headers. Please update

截图如下:

https://github.com/BVLC/caffe/issues/19中有人建议需要更新Protocol Buffers,更新了之后,重新运行上面的命令,安装成功了。。。之前安装的版本未2.5.0,重新安装后的为2.6.1。

ps:参见下面网址:

http://www.cnblogs.com/darkknightzh/p/5782992.html

2)直接使用训练好的模型:

require 'caffe'

net = caffe.Net('deploy.prototxt', 'bvlc_alexnet.caffemodel', 'test')
input = torch.FloatTensor(,,,)
output = net:forward(input)
gradOutput = torch.FloatTensor(,,,)
gradInput = net:backward(input, gradOutput)

或者把训练好的模型嵌入到新的网络中:

require 'caffe'

model = nn.Sequential()
model:add(caffe.Net('deploy.prototxt', 'bvlc_alexnet.caffemodel', 'test'))
model:add(nn.Linear(,))

ps:目前能成功载入caffe的inception模型,但是还不清楚能不能使用呢。。。

载入网上下载的模型,不会有Ignoring source layer的提示,如下:

载入其他人训练的模型,会提示Ignoring source layer XXX,如下:

更新:刚才和同事说了一下Ignoring的问题,他说是因为里面有些层没有,不用管这个。

pppppps:见了鬼了,刚才碰到了很诡异的一件事:开始用着好好地,结果突然间就出错了,错误如下:

libcaffe.so.1.0.-rc3: cannot open shared object file:No such file or directory

截图如下:

我XXX,真的莫名其妙啊。即便只使用require "caffe",也还是报上面的错误。当时去找这个库,印象中在caffe安装目录/usr/local/caffe/build/lib里面找过,没找到,中午睡了个觉,刚才一试,程序又可以了。。。我XXX。又去了这个目录,见鬼了,这几个文件出现了:

我都准备用http://www.cnblogs.com/smartvessel/archive/2011/01/21/1940868.html里面说的方法,去重新链接了。但是重新链接也需要有那个文件才行啊。结果出现这些文件之后,直接运行程序,又可以了。。。哎,不知道是否是硬盘有问题了。

更新:刚才和同事说了一下找不到libcaffe.so,他说,他经常碰到。。。经常碰到。。。经常碰到。。。他说过一会就好了。好吧。

更新1608181641:刚才又出现了require出错。然后赶快去/usr/local/caffe/build/里面看了一下,果然,已经没有lib目录了。。。如下图:

真不清楚是硬盘的问题还是什么原因。。。

(原)ubuntu16在torch中使用caffe训练好的模型的更多相关文章

  1. (原+转)pycharm中使用caffe

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5896446.html 参考网址: http://www.th7.cn/Program/Python/2 ...

  2. ubuntu16.04 使用tensorflow object detection训练自己的模型

    一.构建自己的数据集 1.格式必须为jpg.jpeg或png. 2.在models/research/object_detection文件夹下创建images文件夹,在images文件夹下创建trai ...

  3. (原)Ubuntu16中编译caffe

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5797526.html 参考网址: http://caffe.berkeleyvision.org/in ...

  4. (原)torch中微调某层参数

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6221664.html 参考网址: https://github.com/torch/nn/issues ...

  5. VMware12虚拟机中Ubuntu16.04安装CPU版本Caffe

    首先,可以自行下载VMware12进行安装,基本上都是直接点击‘下一步’直到安装完成,这里重点讲一下Ubuntu16及Caffe的安装步骤 第一步: 下载Ubuntu16.04版本的文件,这里给出链接 ...

  6. (原)python中import caffe提示no module named google.protobuf.internal

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5993405.html 之前在一台台式机上在python中使用import caffe时,没有出错.但是 ...

  7. (原)torch中threads的addjob函数使用方法

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6549452.html 参考网址: https://github.com/torch/threads#e ...

  8. Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning

    在经过前面Caffe框架的搭建以及caffe基本框架的了解之后,接下来就要回到正题:使用caffe来进行模型的训练. 但如果对caffe并不是特别熟悉的话,从头开始训练一个模型会花费很多时间和精力,需 ...

  9. 使用Caffe训练适合自己样本集的AlexNet网络模型,并对其进行分类

    1.在开始之前,先简单回顾一下几个概念. Caffe(Convolution Architecture For Feature Extraction-卷积神经网络框架):是一个清晰,可读性高,快速的深 ...

随机推荐

  1. PHP 读取EXCEL

    PHPExcel 自己下载. PHP读取EXCEL public function import_Excel($file_name){ include_once LIB_ROOT_PATH." ...

  2. 使用canvas来实时播放RTSP视频

    HTML5的标签可以用使用下来面的方式来播放静态视频 <video width="320" height="240" controls="con ...

  3. Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)

    3. prefetch_related() 对于多对多字段(ManyToManyField)和一对多字段,可以使用prefetch_related()来进行优化.或许你会说,没有一个叫OneToMan ...

  4. replace 全局替换 和 数组去空

    <script> /*var str = 'a,b,dhhhh,d'; str = str.replace(/h/g,'j'); alert(str);*/ </script> ...

  5. 树莓派 wheezy安装与远程登录配置

    一.准备工作 1:wheezy系统镜像 2:Win32DiskImager-0.9.5-install 3:SDFormatter 4:SD卡 我用的是8G 二.安装系统 流程:SDFormatter ...

  6. ng-repeat-start ng-repeat-end 的使用

    ng-repeat-start与ng-repeat-end时AngularJS(1.2.x)扩展的, 使用这两个指令可以灵活控制遍历形式. 例如: index.html <div class=& ...

  7. 能让汇编转到C51的初学者有更清晰的认识的一篇文章

    8051 是傳統 CISC 架構微控制器的代表,而 PIC 則是現代 RISC 架構微控制器的佳作. 雖然說 RISC 架構是公認未來微控制器的主流,但是 8051 藉著累積多年的發展環境與資源,特別 ...

  8. KEIL C51 Call Tree

    KEIL中函数的调用在其帮助文档中有一个详细的解释,引用如下: The Call Tree The best way to demonstrate how the call tree is gener ...

  9. PostgreSQL与MySQL比较(转)

    Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现M ...

  10. ucfirst() strtoupper() strtolower()

    ucfirst 将字符串第一个字符改大写. 语法: string ucfirst(string str); 返回值: 字符串 函数种类: 资料处理   内容说明 本函数返回字符串 str 第一个字的字 ...