用自己的圖片構(gòu)建cifar10 binary格式的數(shù)據(jù)

用自己的圖片構(gòu)建cifar10 binary格式的數(shù)據(jù)

標(biāo)簽(空格分隔): 未分類


摘要

  • 本文主要討論用python構(gòu)建cifar10 binary version數(shù)據(jù)
  • 環(huán)境:windows顷帖, python3.6
  • 本文最后更新日期是2018.04.13,因?yàn)榘姹静町愒斐傻膯?wèn)題請(qǐng)見(jiàn)諒

正文

tensorflow教程中的卷積神經(jīng)網(wǎng)絡(luò)一節(jié)厌衔,利用cifar10數(shù)據(jù)做分類,效果還不錯(cuò)茵瀑,那么我們能不能用這個(gè)模型去訓(xùn)練做其他的圖片分類呢酵使?
tensorflow教程的卷積神經(jīng)網(wǎng)絡(luò)教程中文網(wǎng)址
tensorflow教程的卷積神經(jīng)網(wǎng)絡(luò)教程英文網(wǎng)址
答案當(dāng)然是可以,但是教程給的模型是利用cifar10 binary格式的鸵荠,所以需要我們事先把我們的圖片數(shù)據(jù)轉(zhuǎn)成cifar10 binary格式簸呈。
教程給的模型代碼
cifar10 dataset網(wǎng)址
cifar10 binary version如下:

cifar10 binary version.png

由于cifar10的圖片是32*32的榕订,所以每張圖片一共有1024個(gè)像素,按RGB分出來(lái)就是一共3072個(gè)byte蜕便,每張圖片就可以寫(xiě)成(1+1024+1024+1024)的格式劫恒,其中第一個(gè)字節(jié)是label,而后1024個(gè)字節(jié)是Red通道玩裙,1024個(gè)字節(jié)是Green通道兼贸,1024個(gè)字節(jié)是Blue通道。將每張圖片都按這種格式表示吃溅,無(wú)縫連接在一起溶诞,就構(gòu)成了一個(gè)cifar10數(shù)據(jù)。
為此我參考這篇博文制作自己的python版本的類CIFAR10數(shù)據(jù)集决侈,這篇博文是講述制作python version的螺垢,將他的代碼修改一下就可以制作binary version了喧务。

# -*- coding: UTF-8 -*-

import cv2
import os
import numpy as np

DATA_LEN = 3072
CHANNEL_LEN = 1024
SHAPE = 32


def imread(im_path, shape=None, color="RGB", mode=cv2.IMREAD_UNCHANGED):
    im = cv2.imread(im_path, cv2.IMREAD_UNCHANGED)
    if color == "RGB":
        im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
    if shape != None:
        assert isinstance(shape, int)
        im = cv2.resize(im, (shape, shape))
    return im


def read_data(filename, data_path, shape=None, color='RGB'):
    """
       filename (str): a file
         data file is stored in such format:
           image_name  label
       data_path (str): image data folder
       return (numpy): a array of image and a array of label
    """
    if os.path.isdir(filename):
        print("Can't found data file!")
    else:
        f = open(filename)
        lines = f.read().splitlines()
        count = len(lines)
        data = np.zeros((count, DATA_LEN), dtype=np.uint8)
        # label = np.zeros(count, dtype=np.uint8)
        lst = [ln.split(' ')[0] for ln in lines]
        label = [int(ln.split(' ')[1]) for ln in lines]

        idx = 0
        s, c = SHAPE, CHANNEL_LEN
        for ln in lines:
            fname, lab = ln.split(' ')
            im = imread(os.path.join(data_path, fname), shape=s, color='RGB')
            '''
            im = cv2.imread(os.path.join(data_path, fname), cv2.IMREAD_UNCHANGED)
            im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
            im = cv2.resize(im, (s, s))
            '''
            data[idx, :c] = np.reshape(im[:, :, 0], c)
            data[idx, c:2 * c] = np.reshape(im[:, :, 1], c)
            data[idx, 2 * c:] = np.reshape(im[:, :, 2], c)
            label[idx] = int(lab)
            idx = idx + 1

        return data, label, lst


def py2bin(data, label):
    label_arr = np.array(label).reshape(len(label), 1)
    label_uint8 = label_arr.astype(np.uint8)
    arr = np.hstack((label_uint8, data))

    with open('./bin/train_batch', 'wb') as f:
        for element in arr.flat:
            f.write(element)


def imagelist():
    directory_normal = r"data/normal"   #原始圖片位置,32*32 pixel
    file_train_list = r"data/image_train_list.txt"  #構(gòu)建imagelist輸出位置
    with open(file_train_list, "a") as f:
        for filename in os.listdir(directory_normal):
            f.write(filename + " " + "0" + "\n")    #這里分類默認(rèn)全為0


if __name__ == '__main__':
    data_path = './data/normal'
    file_list = './data/image_train_list.txt'
    save_path = './bin'
    imagelist() #構(gòu)建imagelist
    data, label, lst = read_data(file_list, data_path, shape=32)    #將圖片像素?cái)?shù)據(jù)轉(zhuǎn)成矩陣和標(biāo)簽列表
    py2bin(data, label) #將像素矩陣和標(biāo)簽列表轉(zhuǎn)成cifar10 binary version


參考資料

[1]tensorflow教程的卷積神經(jīng)網(wǎng)絡(luò)教程

[2]cifar10 dataset

[3]制作自己的python版本的類CIFAR10數(shù)據(jù)集

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末枉圃,一起剝皮案震驚了整個(gè)濱河市功茴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孽亲,老刑警劉巖坎穿,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異返劲,居然都是意外死亡玲昧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)篮绿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)孵延,“玉大人,你說(shuō)我怎么就攤上這事亲配〕居Γ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵吼虎,是天一觀的道長(zhǎng)犬钢。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鲸睛,這世上最難降的妖魔是什么娜饵? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任坡贺,我火速辦了婚禮官辈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘遍坟。我一直安慰自己拳亿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布愿伴。 她就那樣靜靜地躺著肺魁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隔节。 梳的紋絲不亂的頭發(fā)上鹅经,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音怎诫,去河邊找鬼瘾晃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛幻妓,可吹牛的內(nèi)容都是我干的蹦误。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼强胰!你這毒婦竟也來(lái)了舱沧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤偶洋,失蹤者是張志新(化名)和其女友劉穎熟吏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體玄窝,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡分俯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哆料。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缸剪。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖东亦,靈堂內(nèi)的尸體忽然破棺而出杏节,到底是詐尸還是另有隱情,我是刑警寧澤典阵,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布奋渔,位于F島的核電站,受9級(jí)特大地震影響壮啊,放射性物質(zhì)發(fā)生泄漏嫉鲸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一歹啼、第九天 我趴在偏房一處隱蔽的房頂上張望玄渗。 院中可真熱鬧,春花似錦狸眼、人聲如沸藤树。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岁钓。三九已至,卻和暖如春微王,著一層夾襖步出監(jiān)牢的瞬間屡限,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工炕倘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钧大,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓激才,卻偏偏與公主長(zhǎng)得像拓型,于是被迫代替她去往敵國(guó)和親额嘿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 原文鏈接:https://yq.aliyun.com/articles/178374 0. 簡(jiǎn)介 在過(guò)去劣挫,我寫(xiě)的主...
    dopami閱讀 5,658評(píng)論 1 3
  • 姓名:胡巧 公司:鄱湖牧業(yè)有限公司 【日精進(jìn)第9天】 一册养、【學(xué)~勤學(xué)】 ①日常課誦 《領(lǐng)導(dǎo)者的資質(zhì)》大綱1遍,共計(jì)...
    huqiao閱讀 240評(píng)論 0 0
  • function getHttpRequest(){ //創(chuàng)建XMLHttpRequest var xhr = "...
    大笑一聲閱讀 143評(píng)論 0 0
  • 如果人的頭發(fā)是花園, 春夏秋冬压固,百花亂放球拦, 那番景色會(huì)如何? 如果人的身體是果樹(shù)帐我, 看來(lái)看去坎炼, 哪個(gè)部分都可以找出...
    觸角_閱讀 272評(píng)論 0 0
  • 跟我搶著買單,不讓我付錢(qián)拦键,然后讓我陪她去逛街谣光,好事想不到我,這種破事兒都推我身上芬为,以后這種事情我不會(huì)再接受了
    琵琶不是枇杷閱讀 113評(píng)論 0 0