caffe分類小例子

2021-08-10 02:16:35 字數 1935 閱讀 2363

data、examples、include、matlab、models、python、src、tools

examples:官網提供的基本的模型

include:框架原始碼標頭檔案

src:caffe框架原始碼

models:存放訓練完的模型以及網路結構文件

tools:用於可執行的檔案

用已有的引數檔案和訓練好的模型對現有的進行分類,這個用官網的例子作為測試

import numpy as np

import matplotlib.pyplot as plt

caffe_root= "../"

import sys

sys.path.insert(0,caffe_root+'python')

import caffe

model_file = '../models/bvlc_reference_caffenet/deploy.prototxt'

#模型檔案

pretrained = '../models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'

# already trained model # 已經訓練好的模型

# 待測試的

import os

ifnot os.path.isfile(pretrained):

print("downloading pre-trained caffenet model")

caffe.set_mode_cpu()

net = caffe.classifier(model_file,pretrained,mean = np.load('caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1),channel_swap=(2,1,0),raw_scale=255,image_dims=(256,256))#limit martix of the input image

input_image = caffe.io.load_image(image_file)

plt.imshow(input_image)

plt.show()

prediction = net.predict([input_image]) # 進行網路的**

print

'prediction class:',prediction[0].shape

plt.plot(prediction[0]) # 訓練後類值,這裡就能看出測試的**值

plt.show()

print

'predicted class',prediction[0].argmax()

print net.predict([input_image])

input_oversampled = caffe.io.oversample([caffe.io.resize_image(input_image,net.image_dims)],net.crop_dims)

caffe_input = np.asarray([net.transformer.preprocess('data',in_) for in_ in input_oversampled])

print net.forward(data = caffe_input)

資料結果:

​ 原圖

分類結果:

分類資料:

​ 其中每一層的資料都可以分類出來進行分析

Caffe實現多標籤分類

任務 我這裡給出乙個具體的任務咯,要求在以下中,識別出汽車品牌和車輛外形。汽車品牌分為 benz bmw audi 車輛外形分為 sedan suv。這是乙個只有72張的小資料庫,包括了測試和訓練集 這裡寫描述 我們這裡採用的是上述文章中薛大牛的方法,兩個data層,乙個data只放,另乙個data...

caffe 分類原始碼解讀

首先,新建乙個classifier的c 類,其中標頭檔案classifier.h如下 其中,classifier函式 根據模型的配置檔案.prototxt,訓練好的模型檔案.caffemodel,建立模型,得到net 處理均值檔案,得到mean 讀入labels檔案,得到labels classif...

caffe實現多標籤分類

std ifstream infile argv 2 std vector lines std string filename std string label count string argv 5 int label count std atoi label count string.c str...