網路初始化:
model_def = 'd:/caffe/caffe-master/models/bvlc_reference_caffenet/deploy.prototxt'
model_pretrained = 'd:/caffe/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
meanfile = 'd:/caffe/caffe-master/python/caffe/imagenet/ilsvrc_2012_mean.npy'
mean_npy = np.load(meanfile)
mean = mean_npy.mean(1).mean(1)
net=caffe.classifier(model_def,model_pretrained,mean=mean,
channel_swap=(2,1,0),#rgb通道與bgr
raw_scale=255 #把輸入的img*255
)
資料準備:
**、提取中間資料:
prediction = net.predict([image],oversample=false)
feat = net.blobs['fc8'].data[0]
scores = prediction[0].argmax()#獲取**最大的下標
每張要**的對應10張取樣,
oversample是過取樣選項,
為true時,
如果大小大於網路定義的大小,那麼輸入的是 四個邊角和中心的取樣 以及 他們的 左右仿射變換,一共10種(一種1張)
對應data為:net.blobs['fc8'].data [0]--[9],各不一樣
如果大小和網路定義的大小一樣,那麼輸入的是 中心取樣以及它的仿射變換,一共2種(每種都是一樣的五張。。。),
對應的data為:net.blobs['fc8'].data [0]和[5],其中[0-4]一樣,[5-9]一樣
為false時,
不管大小大於還是等於網路定義的大小,輸入的都是 中心的取樣 ,一共就是1種
對應data為:net.blobs['fc8'].data[0] (其他的[1-9]一樣,不過不知道是什麼東西)
如果大小小於網路定義的話,我也不知道。。。
所以我們要提取一張的特徵時,直接像上面那樣寫就行了。
但是在文章中看到,net.predict()好像支援輸入多樣要**的,比如net.predict([house,ship]),
然後net.blobs['fc8'].data的大小就超過了10,然而我試了不知為何不行
caffe的python介面 持續更新
初始化模型 root home caffe master deploy root examples mnist deply.prototxt deploy位置 caffe model root examples mnist lenet iter 5000.caffemodel 模型位置 net ca...
caffe的python介面使用方法示例
import sys 新增caffe下的python資料夾的路徑 import caffe import numpy as np import os 使用caffemodel進行訓練 weights googlenet bn stepsize 6400 iter 1200000.caffemodel...
CAFFE的matlab介面測試
配置好caffe 執行所需要的環境變數,如何配置參見 下面參考 記錄如何通過 caffe 帶的demo 給出乙個測試例子。在 matlab中開啟classification demo.m caffe matlab demo 自己在該目錄下編寫乙個test.m test.m為stu zhang art...