1. 程式人生 > >caffe讀取多標籤的lmdb資料

caffe讀取多標籤的lmdb資料

問題描述:

lmdb檔案支援資料+標籤的形式,但是卻只能寫入一個標籤,引入多標籤的解決方法有很多,這兒詳細說一下我的辦法:製作多個data資料,分別加入一個標籤。我的方法只適用於標籤數量較少的情況,標籤數量比較多的話建議修改原始碼支援。下面介紹詳細步驟。以下均以兩個標籤作為介紹。

生成兩個含單標籤的list:

img1 0
img2 0
img3 1
img4 1
img1 10
img2 11
img3 10
img4 11

按照同一順序做shuffle處理,caffe訓練資料shuffle處理是有必要的,雖然caffe的lmdb轉換工具能夠直接做shuffle,但是不能保證兩個list的順序一致。文字按行亂序的命令可以參考

http://www.cnblogs.com/zhaojunjie/p/6735713.html。處理後的檔案如下:

img1 0
img3 1
img4 1
img2 0
img1 10
img3 10
img4 11
img2 11

接下來就可以對他們生成兩個lmdb了,值得注意的是如果影象資料較大,生成lmdb時可以將第二個list的影象resize到1*1,如下(前面已經shuffle,這裡不再加入shuffle引數):

pathtocaffe/build/tools/convert_imageset --resize_height=256 --resize_width=256 "" list1 lmdb_data_1
pathtocaffe
/build/tools/convert_imageset --resize_height=1 --resize_width=1 "" list2 lmdb_data_2

生成好了lmdb,如何用呢?prototxt檔案參考如下:

name: "CaffeNet"
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label1"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    mean_file: "train_VGG_cub_mean.binaryproto
" crop_size: 224 } data_param { source: "lmdb_data_1" backend: LMDB batch_size: 16 } } layer { name: "data2" type: "Data" top: "data_noused" top: "label2" include { phase: TRAIN } data_param { source: "lmdb_data_2" backend: LMDB batch_size: 16 } }
#將data_nousedresize到1位,防止caffe輸出過多內容
layer {
  name: "reductionx"
  bottom: "data_noused"
  top: "data_noused"
  type: "Reduction"
  reduction_param {
    axis: 0
  }

}

【完】

相關推薦

caffe讀取標籤lmdb資料

問題描述: lmdb檔案支援資料+標籤的形式,但是卻只能寫入一個標籤,引入多標籤的解決方法有很多,這兒詳細說一下我的辦法:製作多個data資料,分別加入一個標籤。我的方法只適用於標籤數量較少的情況,標籤數量比較多的話建議修改原始碼支援。下面介紹詳細步驟。以下均以兩個標籤作為介紹。 生成兩個含單標籤的list:

Caffe 實現標籤分類 支援Multi-Label的LMDB資料格式輸入

Caffe自帶的影象轉LMDB介面只支援單label,對於多label的任務,可以使用HDF5的格式,也可以通過修改caffe程式碼來實現, 我的文章Caffe 實現多標籤分類 裡介紹了怎麼通過修改ImageDataLayer來實現Multilabel的任務, 本篇文章介紹

騰訊AI Lab開源業內最大規模標籤影象資料集(附下載地址)

參加 2018 AI開發者大會,請點選 ↑↑↑ 今日(10 月 18 日),騰訊AI Lab宣佈正式開源“Tencent ML-Images”專案。該專案由多標籤影象資料集 ML-Images,以及業內目前同類深度學習模型中精度最高的深度殘差網路 ResNet-101 構成。

caffe實現標籤分類

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

Caffe實現標籤影象分類(1)——基於Python介面實現標籤影象分類(VOC2012)

1.前言         Caffe可以通過LMDB或LevelDB資料格式實現影象資料及標籤的輸入,不過這隻限於單標籤影象資料的輸入。由於研究生期間所從事的研究是影象標註領域,在進行影象標註時,每幅影象都是多標籤的,因此在使用Caffe進行遷移學習時需要實現多標籤影象資料

Caffe標籤訓練、人臉屬性工訓練

前言 細節有一些問題,我這裡過一遍整個流程,涉及到的問題都會做講解。包括部署問題,最後我也會講講。 正文 將convert_multilabel.cpp放到caffe/tools/目錄下。 修改81行: ‘>>’ should be ‘&g

Caffe 實現標籤分類

最近在用Caffe做驗證碼識別時,發現沒有用Tensorflow簡單(tensorflow中可以用one-hot, 參考我的另一篇blog:  http://blog.csdn.net/sushiqian/article/details/78305340 ),需要修改Caf

Caffe入門(2)-Caffe讀取並轉換圖片資料

vim examples/re/train_val.prototxtname: "CaffeNet" layer { name: "data" type: "Data" top: "data" top: "label" include { phase: TRAIN

利用Caffe建立自己的lmdb資料

用Caffe進行模型訓練時,除了用現有的公開資料集(如MNIST, CIFAR等),有時候我們還需要建立自己的資料集進行訓練。本篇部落格講的就是如何利用Caffe中的模組建立自己lmdb資料集。 資料集準備 我們需要自己準備好帶類別標籤的圖片資料,並將資

Spark中元件Mllib的學習14之從文字中讀取標籤資料,生成帶label的向量

2.程式碼: /** * @author xubo * ref:Spark MlLib機器學習實戰 * more code:https://github

CaffeLMDB介面實現標籤資料準備及訓練

有不少部落格講Caffe多標籤輸入的問題,但總覺得講的不夠透徹,在實踐角度上沒有給出詳細的指導,所以本文力求能給出詳細的實踐過程和說明。 Caffe多標籤輸入常用的的方法有以下幾種: 1. 修改Caffe原始碼使其支援多標籤輸入,參考CSDN部落格《

用Python將標籤資料存入caffe使用的HDF5&LMDB格式

最近在進行多標籤的資料轉換,發現直接使用caffe自帶的convert_image不是很方面,就收集了一下用python的處理方法。現整理以備後用。 使用時發現,用python寫入lmdb有個問題,如果事先無法知道資料的大小,那麼分配的儲存空間map_size就不好確定(預

caffe:contact及slice層用法說明實現資料標籤

contact解析 Concat層的作用就是將兩個及以上的特徵圖按照在channel或num維度上進行拼接,並沒有eltwise層的運算操作,舉例,如果說在channel維度上進行拼接的話,首先除了channel維度可以不一樣,其餘維度必須一致(也就是num、H、W一致),以Caffe為例,介紹

caffelmdb資料讀取

import lmdb import caffe if __name__ == '__main__': lmdb_path=r'./DeepID2_train_lmdb' #open lmdb lmdb_env = lmdb.open(lmdb_

深度學習caffe平臺--製作自己.lmdb格式資料集及分類標籤檔案

caffe對於訓練資料格式,支援:lmdb、h5py……,其中lmdb資料格式常用於單標籤資料,像分類等,經常使用lmdb的資料格式。對於迴歸等問題,或者多標籤資料,一般使用h5py資料的格式。當然好像還有其它格式的資料可用,本文就主要針對lmdb資料格式的製作方法,進行簡

【11】Caffe學習系列:影象資料轉換成db(leveldb/lmdb)檔案

在深度學習的實際應用中,我們經常用到的原始資料是圖片檔案,如jpg,jpeg,png,tif等格式的,而且有可能圖片的大小還不一致。而在caffe中經常使用的資料型別是lmdb或leveldb,因此就產生了這樣的一個問題:如何從原始圖片檔案轉換成caffe中能夠執行的db(leveldb/lmdb)

caffe生成lmdb資料集的指令碼

#!/usr/bin/env sh set -e EXAMPLE=/home/hadoop/桌面/caffe_study/more_eyes DATA=/home/hadoop/桌面/caffe_study/more_eyes TOOLS=/home/hadoop/caffe/bui

MATLAB:如何在指定路徑下,讀取單個(個)資料夾中所有影象

0. 選擇資料夾路徑: [filename filepath]=uigetfile('*.*','請選擇檔案');%filename為檔名,filepath為檔案路徑 image =  imread(strcat(file_path,image_name));%讀取圖片檔案 1,

caffe lmdb資料集的準備:從原始圖片到生成lmdb檔案

        最近在學習SSD模型,執行官方demo,總是報錯:Data layer prefetch queue empty,網上查各種原因都沒有一個很好的解決方案,自己也快崩潰。即使把batch size設為1,也沒有用。        自己尋思著是不是生成的資料集有

JAVA使用POI3.5讀取EXCEL[單元格資料型別處理,支援公式]

本文以2003XLS讀取方式程式碼塊舉例,可以解決單元格CELL資料型別及公式問題。 全過程比較繁瑣恕不例舉。 //獲取公式執行結果處理cell值[以XLS舉例] import org.apache.poi.hssf.usermodel.HSSFCell; im