【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
下載模型配置:
轉換隻需一個指令:
code和data需同時輸出,否則單獨輸出code會報錯:./convert.py ResNet-101-deploy.prototxt --caffemodel ResNet-101-model.caffemodel --code-output-path=ResNetTensorflow.py --data-output-path=ResNetTensorflow_2.npy
....
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。
相關推薦
【TensorFlow】Caffe模型轉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
【5】caffe的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
【AtCoder1983】BBQ 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
【01】win10 python3 安裝 Tensorflow-gpu 問題及解決
準備工作: win10 下, python3.7 安裝完成 問題#1 :需要升級pip C:\> pip install tensorflow Collecting tensorflow Could not find a version that sati
【TensorFlow】3-2構建簡單單層神經網路進行【手寫字元識別】
自動下載並轉化MNIST資料集格式到TF中 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #載入MNIST資料集,如果不存在,將自動在預設網址
【pycharm】pycharm上安裝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中,但其介面可能仍然會發生變化
【Unity3D】【NGUI】如何在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學習篇【1】Getting 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眼前。不同的壽司帶給