转载请注明出处:

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. 电脑文本text和部分文字出现其他语言乱码

     1.文本的编码存在问题 解决办法: 将text文件打开>>文件(左上角)>>另存为>>选择其他格式的编码试试(在保存键左侧)>>保存再打开 2.系统区 ...

  2. apache将请求转发到到tomcat应用

    映射: 1.开启apache中的proxy模块(proxy.conf,proxy.load,proxy_http.load) 2.配置apache配置文件,<VirtualHost *:80&g ...

  3. Web项目中用模板Jsp页面引入所有静态样式脚本文件(js,css等)

    这样的好处是不需要再每个页面中都添加太多的外链接(不会减少请求数量),但对开发会更快捷,如果更改这些文件的位置或名称,只需要更改模板文件,不需要一个一个页面复制粘贴:同时可以为不同jsp页面组创建不同 ...

  4. jQuery 文字截取

    HTML <div class="summary">    <p class="news">业内知道,当赵科林“过档”联想之初,恰逢联想 ...

  5. WordPress插件制作教程(三): 添加菜单的方法

    上一篇编写了一个简单的插件,让大家对插件的简单制作有个了解,这一篇我们在更深一步,当我们激活插件后后台会显示菜单出来,然后通过单击菜单显示自己定义好的信息.激活之后会在WordPress后台显示一个菜 ...

  6. 函数:我的地盘听我的 - 零基础入门学习Python019

    函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...

  7. str_翻转字符串

    1. 给一个句子,翻转每个单词,单词内部不翻转 $str = "dog loves pig"; $ret = turnSentence($str); var_dump($ret); ...

  8. async 异步流程控制规则

    github 学习async网址 : https://github.com/caolan/async/ 1.Async 函数介绍 async 主要实现了三个部分的流程控制功能 1.集合:Collect ...

  9. Core Data (二)备

    序 上次只是说了三个Core Data栈基本类.这次准备介绍一下常用的类. NSManagedObject Core Data是一次底层数据封装成面向对象的技术.最直接的表现就是在SQLite里面的一 ...

  10. Blogger建立新文章 - Blog透视镜

    使用Blogger,建立好Blog部落格之后,接着就是建立新文章,它是Blog部落格的灵魂,先从简单开始,来了解建立新文章的标题,文章中如何上传图片,建立卷标,及设定排程日期,定时自动发布等这些功能, ...