日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

記一次新手的keras深度學(xué)習(xí)心得

 imelee 2017-04-15

最近tensorflow0.12出了,支持Windows了。在ubuntu系統(tǒng)上折騰GPU加速非常難過。在Windows上安裝CUDA和cuDNN就非常容易了,一個直接exe安裝,另一個直接復(fù)制粘貼。安裝了anaconda之后,直接用pip即可裝上tensorflow,theano和keras,再在用戶文件夾下改一下tensorflow的backend,GPU加速瞬間就可用了!

本來打算準(zhǔn)備好好看一些例子和相關(guān)的教程書籍再自己操作的,但是總覺得應(yīng)該自己親手先摸索一下,于是選擇了比較好用的keras作為進行深度學(xué)習(xí)的工具,之后理解透徹了再和tensorflow對比一下吧。

這次的keras實踐結(jié)果并不是很好,調(diào)整了很多參數(shù),最后loss只能降到0.8左右,accuracy最高也就才56%。也許是模型構(gòu)建的原因,也許是數(shù)據(jù)的原因,總之今后會重新再來看這一次實踐。

數(shù)據(jù)的選擇
我理解的深度學(xué)習(xí)是把一些不容易發(fā)現(xiàn)的相關(guān)性展示出來,因而數(shù)據(jù)怎么樣也要有一定的聯(lián)系,這次實踐的結(jié)果并不是很好,可能一部分是因為數(shù)據(jù)本身相關(guān)性就十分缺乏。
數(shù)據(jù)并沒有選擇官方給的那些手寫數(shù)字等圖片數(shù)據(jù),而是從加州大學(xué)歐文分校的機器學(xué)習(xí)數(shù)據(jù)庫獲取的:
http://archive.ics./ml/machine-learning-databases/
選擇的是一個關(guān)于白酒質(zhì)量的數(shù)據(jù)庫,名稱為“winequality-white.csv”,總共4898組數(shù)據(jù),每組數(shù)據(jù)分別包含非揮發(fā)性酸含量,揮發(fā)性酸含量,檸檬酸,糖殘量,卡路里,游離二氧化硫,總二氧化硫,密度,pH,硫酸鹽,酒精含量以及酒的等級共12個數(shù)據(jù)。打算用前面11個物理化學(xué)性質(zhì)來判斷最后一個酒的質(zhì)量分級。
酒的質(zhì)量分級,本身就具有很強的主觀因素,并且這個數(shù)據(jù)中還沒有十分關(guān)鍵的酯類物質(zhì)含量等信息,整體來說相關(guān)性并不是很強。一些指標(biāo)比如密度、硫酸鹽等,是幾乎完全很難和酒品質(zhì)量相關(guān)的。另外即使是一個等級的酒,某些指標(biāo)也是千差萬別,更何況這整個11長度的數(shù)據(jù)要壓縮成7個分級,并且最主要的5、6、7級的酒加起來就占了92%,所以說處理起來難度很大。
而當(dāng)初建模型時沒有對這些數(shù)據(jù)進行預(yù)處理,原封不動的把所有數(shù)據(jù)作為了機器學(xué)習(xí)的內(nèi)容,也導(dǎo)致了最后結(jié)果的不理想。

數(shù)據(jù)的處理
4898個數(shù)據(jù),分成4398和500為train和test。

import numpy as np
files = open('winequality-white.csv', 'r').readlines()
quality=[]
r=1
data=[]
for i in files:
            i=i.split(',')
            quality.append(i[11][0])
            for j in range(0,11):
                data.append((i[j]))
def get_float(list):
    temp=[]
    for i in list:
        temp.append(float(i))
    return temp

data_train=get_float(data[0:48378])
quality_train=get_float(quality[0:4398])
data_test=get_float(data[48378:])
quality_test=get_float(quality[4398:])

data_train=np.array(data_train)
data_train=data_train.reshape(4398,11)

quality_train=np.array(quality_train)
quality_train=quality_train.reshape(4398,1)

data_test=np.array(data_test)
data_test=data_test.reshape(500,11)

quality_test=np.array(quality_test)
quality_test=quality_test.reshape(500,1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

模型

def layer():
    model = Sequential()
    model.add(Dense(input_shape=(11,),output_dim=50))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(input_shape=(50,), output_dim=10))
    model.add(Activation('softmax'))
    model.compile(optimizer='rmsprop',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    model.fit(data_train, quality_train, batch_size=batch_size, nb_epoch=nb_epoch,
              verbose=1, validation_data=(data_test, quality_test))
    score = model.evaluate(data_test, quality_test, verbose=0)
    return score[0], score[1]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

第一次建立模型,很多數(shù)值的選取都沒有經(jīng)驗,所以需要慢慢摸索,這里我采用調(diào)整各種數(shù)值然后作圖的方式。
第一層后outdim的影響,至少能夠說明outdim<50都是不可取的。
這里寫圖片描述
nb_epoch(迭代次數(shù))的影響,至少要在150以上。
這里寫圖片描述
batch_size在這里影響不是很大。
網(wǎng)絡(luò)層數(shù)的影響,這里采用的激活函數(shù)是relu,(采用sofmax激活函數(shù)的話,最后得出的predict全部是同一個值。),每層的outdim減10??煽闯鰧訑?shù)越多,loss越大。
這里寫圖片描述
之后,即使是把白酒的分級數(shù)據(jù)處理了,只剩下5、6、7分級的數(shù)據(jù),還是不能夠把很好地把這些數(shù)據(jù)分類。

可能是數(shù)據(jù)的原因,可能是模型的原因,總之今后會再來回顧的,記住這一次。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多