1. 程式人生 > >【TensorFlow】Caffe模型轉tensorflow模型並使用模型進行預測

【TensorFlow】Caffe模型轉tensorflow模型並使用模型進行預測

做了一個Caffe模型轉tensorflow的實驗,把ResNet模型和prototxt轉為tensorflow模型和tensorflow程式碼,挺有意思的。

主要參考:

https://my.oschina.net/yilian/blog/672135

這個開源專案 caffe-tensorflow 提供了caffe轉tensorflow的功能:

1. 環境準備

環境:Pytcaffe, tensorflow

因為我的Anaconda是有一個單獨的tensorflow環境,在此環境中增加Pycaffe是有問題的,因此另加了一個環境:

conda create -n caffe-tf python=2 tensorflow caffe

Anaconda會自動安裝一個同時具備caffe和tensorflow的環境,等待安裝完成,啟用環境:

source activate caffe-tf

2. 使用開源轉換

解壓caffe-tensorflow到某個目錄,並進入。

下載模型:

curl http://ethereon.github.io/netscope/#/gist/b21e2aae116dc1ac7b50 -o ResNet-101-model.caffemodel

下載模型配置:

轉換隻需一個指令:

./convert.py ResNet-101-deploy.prototxt --caffemodel ResNet-101-model.caffemodel --code-output-path=ResNetTensorflow.py --data-output-path=ResNetTensorflow_2.npy
code和data需同時輸出,否則單獨輸出code會報錯:
....
transformer.py", line 149, in map_batch_norm
scale_offset = len(node.data) == 4
TypeError: object of type 'NoneType' has no len()
這是參考材料中的一個錯誤,也是這個開源的一個缺陷,繞過即可。

3. 使用轉換的模型做預測

caffe-tensorflow裡有一個很好的example,見:

path-caffe-tensorflow/examples/imagenet

呼叫模型:

$ ./classify.py /path/to/googlenet.npy ~/pics/kitty.png ~/pics/woof.jpg

可得到預測結果:

Image Classified As Confidence

----------------------------------------------------------------------

kitty.png Persian cat 99.75 %

woof.jpg Bernese mountain dog 82.02 %

測試了一下用自己轉換的模型預測:

1. 首先把轉換的模型程式碼拷貝入imagenet/models目錄

2. 修改models/helper.py

   2.1 增加引入

         from MyModel import xmodel

   2.2 在MODELS 列舉裡增加 xmodel

   2.3 在MODEL_DATA_SPECS裡增加對batchsize的配置

3. 拷貝一份imagenet/classify.py,修改為使用自己的模型(原始的classify.py是用Googlenet的)

     替換所有的models.GoogleNet為models.xmodel

4. 執行:

./classify_xmodel.py /path/to/xmodel.npy ~/pics/kitty.png ~/pics/woof.jpg
預測結果類似如下:

Image                Classified As                  Confidence
----------------------------------------------------------------------
n03792782_52.JPEG    mountain bike, all-terrain bike, off-roader 98.98 %
n03803284_28.JPEG    muzzle                         99.71 %
n03804744_1.JPEG     nail                           75.82 %

總結,caffe-tensorflow轉換還是很好用的,官方的example也能幫我們快速學習到tensorflow呼叫轉換後模型的方式,done。

相關推薦

TensorFlowCaffe模型tensorflow模型使用模型進行預測

做了一個Caffe模型轉tensorflow的實驗,把ResNet模型和prototxt轉為tensorflow模型和tensorflow程式碼,挺有意思的。 主要參考: https://my.oschina.net/yilian/blog/672135 這個開源專案

caffe 模型tensorflow

下載模型轉換程式碼: caffe-tensorflow模型轉換檔案為convert.py,可以將caffe的模型定義檔案.prototxt和訓練好的模型分別轉換為tensorflow類,和tensorflow模型檔案.在example資料夾下提供了exam

5caffe的python介面學習:訓練模型(training)

如果不進行視覺化,只想得到一個最終的訓練model, 那麼程式碼非常簡單,如下 : import caffe caffe.set_device(0) caffe.set_mode_gpu() solver = caffe.SGDSolver('/home/yeler082/data/solver

原始碼基於MATLAB/SIMULINK的光伏電池板模型

基於電路的光伏電池模擬模型,用於估計光伏面板的IV特性曲線相對於環境引數(溫度和輻照)和電池引數(寄生電阻和理想因子)的變化。 A circuit based simulation model for a PV cell for estimating the IV characteri

AtCoder1983BBQ Hard (組合數+巧妙模型轉化)

半題解 輸入A[i],B[i],求∑i=1N∑j=i+1NCAi+Aj+Bi+BjAi+Bi\sum_{i=1}^N\sum_{j=i+1}^N C_{A_i+A_j+B_i+B_j}^{A_i+B_i

01win10 python3 安裝 Tensorflow-gpu 問題及解決

準備工作: win10 下, python3.7 安裝完成 問題#1 :需要升級pip C:\> pip install tensorflow Collecting tensorflow Could not find a version that sati

TensorFlow3-2構建簡單單層神經網路進行手寫字元識別

 自動下載並轉化MNIST資料集格式到TF中 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #載入MNIST資料集,如果不存在,將自動在預設網址

pycharmpycharm上安裝tensorflow,報錯:AttributeError: module 'pip' has no attribute 'main' 解決方法

pycharm上安裝tensorflow,報錯:AttributeError: module 'pip' has no attribute 'main' 解決方法     解決方法: 在pycharm的安裝目錄下,找到helpers/packaging_tool.py檔案,

Tensorflow輔助工具篇——tensorflow slim(TF-Slim)介紹

這樣我們就可以使用slim了,既然說到了,先來扒一扒tensorflow.contrib這個庫,tensorflow官方對它的描述是:此目錄中的任何程式碼未經官方支援,可能會隨時更改或刪除。每個目錄下都有指定的所有者。它旨在包含額外功能和貢獻,最終會合併到核心TensorFlow中,但其介面可能仍然會發生變化

Unity3DNGUI如何在UI上顯示3D模型

NGUI討論群:333417608 1、建立一個3D攝像機,渲染3D模型。(我為了方便就把模型放到了Camera的下面,你可以不這樣) 2、在2D裡面指定一個TopLeft和BottomRight,用來表示模型渲染到UI上面的區域。 3、在之前的3D攝像機上掛上UIVi

AngularJS如果你修改了檢視,模型和控制器也會相應更新

如果你修改了檢視,模型和控制器也會相應更新 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g

UML淺談UML的概念和模型之UML檢視

轉載:blog.csdn.net/jiuqiyuliang/article/details/8550281#comments 目錄 UML的檢視 UML的九種圖 UML中類間的關係 相信大家都知道UML的全稱,統一建模語言(UML是 U

Tensorflow你真的懂TensorFlow嗎?Tensor是神馬?為什麼還會Flow?

文章轉載自:https://www.sohu.com/a/144569429_700316(MOOC) 也許你已經下載了TensorFlow,而且準備開始著手研究深度學習。但是你會疑惑:TensorFlow裡面的Tensor,也就是“張量”,到底是個什麼鬼?也許你查閱了

TensorFlow學習篇1Getting Started With TensorFlow

學習網址:https://www.tensorflow.org/get_started/get_started This guide gets you started programming in TensorFlow. Before using this guide,

譯文一個設計精良的領域驅動模型的五個特征

部分 我們 一位 使用 應用 組成 擁有 可能性 最大 查看原文 我在這篇博客文章中,我試圖給領域模型下一個非常合適的定義,我發現我的這些定義都不太妥當,不過,我們還是可以先來看一下wiki百科對領域驅動模型下的定義: 問題解決和軟件工程中的領域模型可以被認為是感興

原創Dubbo 2.7.5線上程模型上的優化

這是why技術的第30篇原創文章 這可能是全網第一篇解析Dubbo 2.7.5里程碑版本中的改進點之一:客戶端執行緒模型優化的文章。 先勸退:文字共計8190字,54張圖。閱讀之前需要對Dubbo相關知識點有一定的基礎。內容比較硬核,勸君謹慎閱讀。 讀不下去不要緊,我寫的真的很辛苦的,幫忙拉到最後點個

JavaScript時間戳日期格式

number cnblogs 數據 style .ajax con etime subst new 時間戳: 1480570979000 $.ajax({ url : "getOrderMsg?ship

轉載Caffe學習:運行caffe自帶的兩個簡單例子

0.00 練習 siam 其它 sudo 單例 復制 腳本 policy 原文:http://www.cnblogs.com/denny402/p/5075490.html 為了程序的簡潔,在caffe中是不帶練習數據的,因此需要自己去下載。但在caffe根目錄下的data

BZOJ4627[BeiJing2016]回壽司 SBT

iostream 註意 class 而是 吃貨 不同 () esp font 【BZOJ4627】[BeiJing2016]回轉壽司 Description 酷愛日料的小Z經常光顧學校東門外的回轉壽司店。在這裏,一盤盤壽司通過傳送帶依次呈現在小Z眼前。不同的壽司帶給