torch7 调用caffe model 作为pretrain
torch7 调用caffe model 作为pretrain
torch7 通过 loadcaffe 包,可以调用caffe训练得到的model 参数作为自己网络的初始参数。
loadcaffe 的安装需要caffe的依赖项,所以首先执行如下指令
sudo apt-get install libprotobuf-dev protobuf-compiler
然后在ubuntu上安装loadcaffe包
sudo luarocks install loadcaffe
参考 loadcaffe
接下来,为了使用caffe model,需要下载caffe model。 caffe model zoo中提供了许多caffemodel的下载。
如何下载 caffemodel? 首先将BVLC/caffe中的包下载并解压,我是解压到 Documents/caffe_master文件夹下的
压缩包里面提供了一些bvlc的models的基本信息,所以可以使用指令
./scripts/download_model_binary.py (model_dir) 下载 (model_dir) 对应的model,看下面代码
~$ cd Documents/caffe_master/caffe_master
~$ sudo ./scripts/download_model_binary.py models/bvlc_reference_caffenet
这时候我的机子提示没有安装python的yaml库,所以在文件头require'yaml'时出错,那么安装yaml库
~$ sudo apt-get install python-yaml
再次执行上面的代码就没问题了,然后在 Documents/caffe_master/caffe_master/models/bvlc_reference_caffenet文件夹下出现的 .caffemodel文件
如下图

依次可以下载bvlc相关的model。
而对于不是bvlc下的model,比如VGG_CNN网络则可以使用 ./scripts/download_model_from_gist.sh (gist_id) (dirname) 指令下载对应caffemodel的元数据、结构以及配置信息等, (gist_id)是对应的gist上的ID号,可以在model zoo查看,(dirname)默认是models文件夹,所以没必要给出。比如在model zoo网站上我们可以查到VGG_CNN_M
的 gist_id是f194575702fae63b2829,那么可以如下代码
~$ cd Documents/caffe_master/caffe_master
~$ sudo ./scripts/download_model_from_gist.sh f194575702fae63b2829
但是这里优惠碰到一个问题,gist被墙了,链接不了,参考GitHub Gist 被墙
~$ sudo gedit /etc/hosts
添加
192.30.253.118 http://gist.github.com
192.30.253.119 http://gist.github.com
然后再执行上面的指令就好了
按照官方的文档
) To acquire a model:
) 1. download the model gist by ./scripts/download_model_from_gist.sh (gist_id) (dirname)to load the model metadata, architecture, solver configuration, and so on. (dirname) is optional and defaults to caffe/models).
) 2. download the model weights by ./scripts/download_model_binary.py (model_dir) where (model_dir) is the gist directory from the first step.
接下来使用./scripts/download_model_binary.py f194575702fae63b2829 指令就可以下载VGG_CNN_M的model了,但是我执行该指令之后出现如下错误:

注:这里我改成文件名 VGG_CNN_M了
查看download_model_binary.py文件可以发现,readme.md文件需要有三个键值:
required_keys = ['caffemodel', 'caffemodel_url', 'sha1']
自带的bvlc下model的readme文件如下:

而我们下载的VGG_CNN_M的readme文件缺少了sha1校验码,所以总是出错

但同时我们可以发现readme文件中有一项: caffemodel_url
所以我们可以自己下载caffemodel
直接打开 VGG_CNN_M的readme文件中的 caffemodel_url指示的链接 http://www.robots.ox.ac.uk/~vgg/software/deep_eval/releases/bvlc/VGG_CNN_M.caffemodel 便可以下载到对应的caffemodel了,将对应的deploy.prototxt和 .caffemodel放在一起就可以使用 torch7中loadcaffe包调用了
~$ th
th) require 'loadcaffe'
th) proto='VGG_CNN_M_deploy.prototxt'
th) caffemodel = 'VGG_CNN_M.caffemodel'
th) net=loadcaffe.load(proto,caffemodel,'nn')
输出
Successfully loaded VGG_CNN_M.caffemodel
conv1: 96 3 7 7
conv2: 256 96 5 5
conv3: 512 256 3 3
conv4: 512 512 3 3
conv5: 512 512 3 3
fc6: 1 1 18432 4096
fc7: 1 1 4096 4096
fc8: 1 1 4096 1000
OK,至此表示我们已经可以使用torch加载caffemodel了,关于caffemodel如何使用,后面我们继续来看。
references:
gist:
https://www.zhihu.com/question/20732532
http://blog.csdn.net/chclvzxx/article/details/50098515
http://ruby-china.org/topics/22594
model zoo:
http://www.modelzoo.co/
http://caffe.berkeleyvision.org/model_zoo.html
https://github.com/BVLC/caffe/wiki/Model-Zoo
caffeload:
https://github.com/szagoruyko/loadcaffe
http://blog.csdn.net/DreamD1987/article/details/52397906
yaml:
http://blog.csdn.net/philip502/article/details/12838953
torch7 调用caffe model 作为pretrain的更多相关文章
- 如何在程序中调用Caffe做图像分类
Caffe是目前深度学习比较优秀好用的一个开源库,采样c++和CUDA实现,具有速度快,模型定义方便等优点.学习了几天过后,发现也有一个不方便的地方,就是在我的程序中调用Caffe做图像分类没有直接的 ...
- windows下用c++调用caffe做前向
参考博客: https://blog.csdn.net/muyouhang/article/details/54773265 https://blog.csdn.net/hhh0209/article ...
- 创建新的C++工程来调用Caffe对图片进行识别
前段时间一直在跑Caffe训练数据.之前用训练好的caffemodel对图片进行分类都是用的命令行指令,于是就想着自己新建一个工程来调用caffe,结合classification的代码来对图片进行分 ...
- 【神经网络与深度学习】Caffe Model Zoo许多训练好的caffemodel
Caffe Model Zoo 许多的研究者和工程师已经创建了Caffe模型,用于不同的任务,使用各种种类的框架和数据.这些模型被学习和应用到许多问题上,从简单的回归到大规模的视觉分类,到Siames ...
- python调用caffe实现预测
对于已经训练完成的caffemodel,对于单个的图片预测,用python接口来调用是一件非常方便的事情,下面就来讲述如何用python调用已经训练完成的caffemodel,以及prototxt,网 ...
- Windows下caffe的配置和调用caffe库(二)
二. Caffe库的调用: 新建空白项目,将配置管理器更改为x64运行方式.(release和Debug均可). Debug配置: 1) 包含目录: D:\caffe-master\incl ...
- python调用caffe环境配置
背景是这样的,项目需要,必须将训练的模型通过C++进行调用,所以必须使用caffe或者mxnet,而caffe是用C++实现,所以有时候简单的加载一张图片然后再进行预测十分不方便 用caffe写pro ...
- Thinkhphp5控制器调用的Model层的方法总结
控制器器里: <?php /** * Created by PhpStorm. * User: Haima * Date: 2018/7/8 * Time: 15:58 */ namespace ...
- Windows下caffe的配置和调用caffe库(一)
一.Windows下caffe的配置: 1. 下载caffe官网提供的开发包,https://github.com/microsoft/caffe 2. 将caffe-master目录下的Window ...
随机推荐
- Linux mount Windows目录
[问题描述] Windows 机器192.168.1.103共享了 /share/yasi 目录,并且赋予了写的权限,在Windows机器下可以用 yasi/pass 登录.在一台CentOS 6.3 ...
- 项目实战:Mahout构建图书推荐系统
前言 本文是Mahout实现推荐系统的又一案例,用Mahout构建图书推荐系统.与之前的两篇文章,思路上面类似,侧重点在于图书的属性如何利用.本文的数据在自于Amazon网站,由爬虫抓取获得. 目录 ...
- PKU 2155 Matrix(裸二维树状数组)
题目大意:原题链接 题意很简单,就不赘诉了. 解题思路: 使用二维树状数组,很裸的题. 二维的写起来也很方便,两重循环. Add(int x,int y,int val)表示(x,y)-(n,n)矩形 ...
- idea新建的项目,文件夹右键不能新建class
一般情况下,新建的mave项目,通常没有XXX\src\main\java这个目录,如果手动创建,则又不能右键build与java相关的,强行建立的话,也不会被idea所识别,更不会被虚拟机编译执行. ...
- vue我的总结+转原理
我的总结 vue:1 mvvm模型,model,view,viewmodel,自底层向上,逐渐增加的模式2 .vue文件 包含html css js 有最近设计原则,将自己需要的放到最近,2 组件化 ...
- motan rpc
git : 帮助 文档 基本介绍 Motan是一套基于java开发的RPC框架,除了常规的点对点调用外,Motan还提供服务治理功能,包括服务节点的自动发现.摘除.高可用和负载均衡等.Motan具有 ...
- SpringBoot入门学习(二)
第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容 项目内一些属性配置 自定义属性配置 ConfigurationProperties配置 (1)第一个工程创建的时候会自动在工程下创建a ...
- tomcat高并发配置调优
最近部署的tomcat,里面放了一个apk提供给测试人员测试,而有一天压测的时候,他们一致反馈下载不了,结果查看日志才发现如下错误: [html] view plain copy INFO: Maxi ...
- 在Ubuntu14.4(32位)中配置I.MX6的QT编译环境
1,开发工具下载 一,下载VMware Workstation虚拟机 地址:http://1.xp510.com:801/xp2011/VMware10.7z 二,下载Ubuntu 14.04.5 L ...
- C++ 单链表的实现
#ifndef LINKEDLIST_H #define LINKEDLIST_H #define MAXLEN 256 template <class T> struct LinkedL ...