1. 程式人生 > >TensorFlow 之基於Inception V3的多標籤分類 retrain

TensorFlow 之基於Inception V3的多標籤分類 retrain

一、準備訓練資料

1.下載資料集
本文采用南京大學開源的資料集(點選下載:http://lamda.nju.edu.cn/files/miml-image-data.rar)
資料集中含有2000張影象,5個類,分別為 desert, mountains, sea, sunset , trees。
下載後包含兩個壓縮檔案包:original.rar 以及 processed.rar
original.rar 中包含了2000張影象資料

示例如下:
影象資料示例

processed.rar 中包含了影象對應的標籤資訊。
解壓後為matlab檔案格式。
本文需要的是標籤矩陣 target.mat

示例如下:
target.mat

2.轉換標籤檔案
本文需將 target.mat 轉換為txt格式的標籤檔案。
對於每一張影象 imagename.jpg, 對應生成一個 imagename.jpg.txt 的標籤檔案,檔案中每一行為影象所含標籤。

對於下圖左邊的影象,有標籤 desert,mountains,則對應的標籤檔案內容如右邊所示。

這裡寫圖片描述

對於 target.mat 檔案,轉化的matlab指令碼如下:

 load('miml data.mat');
if ~exist('labeldir') 
    mkdir labeldir;
end
LabelDir='labeldir/';
for i
= 1:2000 stri = num2str(i); label_file_name = [LabelDir stri '.jpg.txt']; fid = fopen(label_file_name,'w'); for j = 1:5 if targets(j,i)==1 fprintf(fid,'%s\n',class_name{j}); end end fclose(fid); end

二、多標籤分類

本文利用已訓練好的權重,將最後一層替換為自定義的資料集的類別數,前面權值不變,只訓練最後的一層。
1.將包含所有影象的資料夾放入 Multi-label-Inception-net/images 目錄下
2.將labeldir目錄拷貝到 Multi-label-Inception-net 目錄下,改名為image_labels_dir(替換原同名目錄)
3.執行 python 指令碼

python retrain.py \
--bottleneck_dir=bottlenecks \
--how_many_training_steps 500 \
--model_dir=model_dir \
--output_graph=retrained_graph.pb \
--output_labels=retrained_labels.txt \
--summaries_dir=retrain_logs \
--image_dir=images

開始訓練
這裡寫圖片描述

這裡寫圖片描述

訓練完成
這裡寫圖片描述

三、影象預測

利用指令碼label_image.py 進行影象預測
呼叫如下:

python label_image.py images/image/4.jpg

得到輸出結果:

這裡寫圖片描述

相關推薦

TensorFlow 基於Inception V3標籤分類 retrain

一、準備訓練資料 1.下載資料集 本文采用南京大學開源的資料集(點選下載:http://lamda.nju.edu.cn/files/miml-image-data.rar) 資料集中含有2000張影象,5個類,分別為 desert, mounta

基於keras實現標籤分類(multi-label classification)

首先討論多標籤分類資料集(以及如何快速構建自己的資料集)。 之後簡要討論SmallerVGGNet,我們將實現的Keras神經網路架構,並用於多標籤分類。 然後我們將實施SmallerVGGNet並使用我們的多標籤分類資料集對其進行訓練。 最後,我們將通過在示例影象上測試我

基於Inception v3進行標籤訓練 修正了錯誤並進一步完善了程式碼

多標籤訓練只適合未修改inception v3網路的情形,不同於遷移學習。本文參考了基於Inception v3進行多標籤訓練  修正了錯誤並進一步完善了程式碼 資料集的準備,假設有3個類,每個類別差不多有50張圖,注意圖片的規模不能太少(一般一個類不小於25張圖),不然在驗證的時候會

2.CNN圖片標籤分類基於TensorFlow實現驗證碼識別OCR)

上一篇實現了圖片CNN單標籤分類(貓狗圖片分類任務) 地址:juejin.im/post/5c0739… 預告:下一篇用LSTM+CTC實現不定長文字的OCR,本質上是一種不固定標籤個數的多標籤分類問題 本文所用到的10w驗證碼資料集百度網盤下載地址(也可使用下文程式碼自行生成): pan.baidu

基於Inception v3進行標籤訓練

一.下載github開原始碼        從github上下載開原始碼,我們可以發現它需要對訓練資料集的圖片以及圖片標籤做一些改變: 1.將所有訓練影象放在一個資料夾中,並在專案根目錄中建立一個包含所有可能標籤的檔案labels.txt。例如: 2.需要為

標籤分類改進的神經網路方法

Improved Multilabel Classification with Neural Networks 2008 International Conference on Parallel Problem Solving from Nature Rafa

基於ML-KNN的標籤分類演算法

     最近有一個專案需要用多標籤分類思想來建模,之前對這塊不是太瞭解,查了一些論文,發現目前主流的演算法包括ML-KNN、ML-DT、Rank-SVM、CML等,其中ML-KNN演算法思想最簡單,結合原始論文,本文大概介紹下演算法思想和程式碼實現。      ML-KNN

基於Inception v3進行單標籤訓練

bottleneck Inception v3模型由堆疊在一起的許多層組成,TensorBoard的簡化影象如上所示。 這些層是預先訓練的,並且在查詢和總結有助於對大多數影象進行分類的資訊方面已經非常有價值。 對於這個codelab,你只訓練最後一層(下圖中的final_training_ops)。

TensorFlow遷移學習-使用谷歌訓練好的Inception-v3網路進行分類

遷移學習是將一個數據集上訓練好的網路模型快速轉移到另外一個數據集上,可以保留訓練好的模型中倒數第一層之前的所有引數,替換最後一層即可,在最後層之前的網路層稱之為瓶頸層。 下面程式碼是使用TensorFlow將ImageNet上訓練好的Inception-v

caffe工學習標籤分類

最近在參加一個識別的競賽,專案裡涉及了許多類別的分類,原本打算一個大的類別訓練一個分類模型,但是這樣會比較麻煩,對於同一圖片的分類會重複計算分類網路中的卷積層,浪費計算時間和效率。後來發現現在深度學習中的多工學習可以實現

運用java 呼叫tensorflow中的inception v3模型

首先使用maven新增依賴項: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

標籤分類的結果評估---macro-average和micro-average介紹

一,多分類的混淆矩陣 多分類混淆矩陣是二分類混淆矩陣的擴充套件 祭出程式碼,畫線的那兩行就是關鍵啦: 二,檢視多分類的評估報告 祭出程式碼,使用了classicfication_report() 三,巨集平均與微平均 公式是神看的,我是學弱...直接看例子,沒有複雜的公

標籤分類(multi-label classification)

意義         網路新聞往往含有豐富的語義,一篇文章既可以屬於“經濟”也可以屬於“文化”。給網路新聞打多標籤可以更好地反應文章的真實意義,方便日後的分類和使用。 難點 (1)類標數量不確定,有些樣本可能只有一個類標,有些樣本的類標可能高達幾十甚至上百個。 

針對科技文章的標籤分類

0. 起   最近沒有更新。暑假之後學的東西也比較雜,看了一下基於DL的智慧美顏,感覺入了個大坑。前前後後看了傳統的輪廓提取演算法和FCN等等,調程式碼巴拉巴拉幾個星期就這麼過了。前幾天看ACM的best paper也覺得很有意思,兩個步驟:1)給圖片打標題,屬於多媒體計算和NLP的結合 2)由標題生成詩歌

caffe實現標籤分類

最近在參加一個識別的競賽,專案裡涉及了許多類別的分類,原本打算一個大的類別訓練一個分類模型,但是這樣會比較麻煩,對於同一圖片的分類會重複計算分類網路中的卷積層,浪費計算時間和效率。後來發現現在深度學習中的多工學習可以實現多標籤分類,所有的類別只需要訓練一個分類模型就行,其不同屬性的類別之間是共享卷積層的。我

解決標籤分類問題(包括案例研究)

由於某些原因,迴歸和分類問題總會引起機器學習領域的大部分關注。多標籤分類在資料科學中是一個比較令人頭疼的問題。在這篇文章中,我將給你一個直觀的解釋,說明什麼是多標籤分類,以及如何解決這個問題。 1.多標籤分類是什麼? 讓我們來看看下面的圖片。 如果我問你這幅圖中有一

來自語義資訊理論的標籤分類方法——有簡單方法幹嘛要用複雜的?

流行的多標籤分類方法大多把多分類化為多個二分類。流行的有One-to-Rest方法和Binary Relevance方法。 One-to-Rest方法的問題是, 圍繞一個標籤y1分類, 把一個沒有y的例子當成y1的反例, 這時不對的。 比如兩個例子(25歲, “年輕人”)和

keras 自定義ImageDataGenerator用於標籤分類

感想 keras提供了flow_from_directory用於單個標籤分類,但是對圖片的多標籤分類沒有支援,這就需要我們自己動手實現ImageDataGenerator,我這裡把我實現的用於多標籤分類的自定義DataGenerator分享出來,讀者可以根據自己的情況來進行修改。 資料集

標籤分類(multilabel classification )

為了區分多分類,先從基本的概念上開始: 二分類:投擲硬幣,結果是正面或者反面,可以選擇的類別只有兩個,並且確切的結果只能有一個,類別互斥,即一枚硬幣的投擲結果要麼是正面要麼是反面,不同同時出現 多分

keras解決標籤分類問題

multi-class classification problem: 多分類問題是相對於二分類問題(典型的0-1分類)來說的,意思是類別總數超過兩個的分類問題,比如手寫數字識別mnist的label總數有10個,每一個樣本的標籤在這10箇中取一個。 mult