1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        筆記|李宏毅老師機(jī)器學(xué)習(xí)課程,視頻15Keras Demo

        共 5615字,需瀏覽 12分鐘

         ·

        2021-04-09 22:16

         是新朋友嗎?記得先點(diǎn)數(shù)據(jù)科學(xué)與人工智能關(guān)注我哦~


        《學(xué)習(xí)筆記》專欄·第15篇

         | MLer

        1521字 | 5分鐘閱讀

        【數(shù)據(jù)科學(xué)與人工智能】開通了機(jī)器學(xué)習(xí),大家可以相互學(xué)習(xí)和交流。請(qǐng)掃描下方二維碼,備注:姓名-ML,添加我為好友,誠(chéng)邀你入群,一起進(jìn)步。

        感謝李宏毅老師的分享,他的課程幫助我更好地學(xué)習(xí)、理解和應(yīng)用機(jī)器學(xué)習(xí)。李老師的網(wǎng)站:http://speech.ee.ntu.edu.tw/~tlkagk/index.html。這個(gè)學(xué)習(xí)筆記是根據(jù)李老師2017年秋季機(jī)器學(xué)習(xí)課程的視頻和講義做的記錄和總結(jié)。因?yàn)檫@個(gè)視頻是在Youtube上面,有些朋友可能無法觀看,我把它搬運(yùn)下來放在云盤上面,大家點(diǎn)擊閱讀原文,就可以直接在手機(jī)隨時(shí)隨地觀看了。再次,感謝李老師的付出和貢獻(xiàn)。

        這門課,共有36個(gè)視頻,每個(gè)視頻播放的時(shí)間不一。我按著視頻播放的順序,觀看,聆聽和學(xué)習(xí),并結(jié)合講義,做學(xué)習(xí)筆記。我做學(xué)習(xí)筆記目的有三:

        1 幫助自己學(xué)習(xí)和理解機(jī)器學(xué)習(xí)

        2 記錄機(jī)器學(xué)習(xí)的重要知識(shí)、方法、原理和思想

        3 為傳播機(jī)器學(xué)習(xí)做點(diǎn)事情

        視頻15:Keras Demo

        一、Keras實(shí)現(xiàn)深度學(xué)習(xí)的Demo

        李老師現(xiàn)場(chǎng)演示如何利用Keras2.0實(shí)現(xiàn)深度學(xué)習(xí)。

        直接上代碼了

         1import numpy as np
        2from keras.models import Sequential
        3from keras.layers.core import Dense, Dropout, Activation
        4from keras.layers import Conv2D, MaxPooling2D, Flatten
        5from keras.optimizers import SGD, Adam
        6from keras.utils import np_utils
        7from keras.datasets import mnist
        8
        9
        10def load_data():  # categorical_crossentropy
        11    (x_train, y_train), (x_test, y_test) = mnist.load_data()
        12    number = 10000
        13    x_train = x_train[0:number]
        14    y_train = y_train[0:number]
        15    x_train = x_train.reshape(number, 28 * 28)
        16    x_test = x_test.reshape(x_test.shape[0], 28 * 28)
        17    x_train = x_train.astype('float32')
        18    x_test = x_test.astype('float32')
        19    # convert class vectors to binary class matrices
        20    y_train = np_utils.to_categorical(y_train, 10)
        21    y_test = np_utils.to_categorical(y_test, 10)
        22    x_train = x_train
        23    x_test = x_test
        24    x_test = np.random.normal(x_test)  # 加噪聲
        25    x_train = x_train / 255
        26    x_test = x_test / 255
        27
        28    return (x_train, y_train), (x_test, y_test)
        29
        30
        31if __name__ == '__main__':
        32    '''
        33    注意事項(xiàng)如下:
        34    1、batch_size=100,epochs=20為宜,batch_size過大會(huì)導(dǎo)致loss下降曲線過于平滑而卡在local minima、saddle point或plateau處,batch_size過小會(huì)導(dǎo)致update次數(shù)過多,運(yùn)算量太大,速度緩慢,但可以帶來一定程度的準(zhǔn)確率提高
        35    2、hidden layer數(shù)量不要太多,不然可能會(huì)發(fā)生vanishing gradient(梯度消失),一般兩到三層為宜
        36    3、如果layer數(shù)量太多,則千萬不要使用sigmoid等縮減input影響的激活函數(shù),應(yīng)當(dāng)選擇ReLU、Maxout等近似線性的activation function(layer數(shù)量不多也應(yīng)該選這兩個(gè))
        37    4、每一個(gè)hidden layer所包含的neuron數(shù)量,五六百為宜
        38    5、對(duì)于分類問題,loss function一定要使用cross entropy(categorical_crossentropy),而不是mean square error(mse)
        39    6、優(yōu)化器optimizer一般選擇adam,它綜合了RMSProp和Momentum,同時(shí)考慮了過去的gradient、現(xiàn)在的gradient,以及上一次的慣性
        40    7、如果testing data上準(zhǔn)確率很低,training data上準(zhǔn)確率比較高,可以考慮使用dropout,Keras的使用方式是在每一層hidden layer的后面加上一句model.add(Dropout(0.5)),其中0.5這個(gè)參數(shù)你自己定;注意,加了dropout之后在training set上的準(zhǔn)確率會(huì)降低,但是在testing set上的準(zhǔn)確率會(huì)提高,這是正常的
        41    8、如果input是圖片的pixel,注意對(duì)灰度值進(jìn)行歸一化,即除以255,使之處于0~1之間
        42    9、最后的output最好同時(shí)輸出在training set和testing set上的準(zhǔn)確率,以便于對(duì)癥下藥
        43    '''

        44    # load training data and testing data
        45    (x_train, y_train), (x_test, y_test) = load_data()
        46
        47    # define network structure
        48    model = Sequential()
        49
        50    model.add(Dense(input_dim=28 * 28, units=500, activation='relu'))
        51    # model.add(Dropout(0.5))
        52    model.add(Dense(units=500, activation='relu'))
        53    # model.add(Dropout(0.5))
        54    model.add(Dense(units=10, activation='softmax'))
        55
        56    # set configurations
        57    model.compile(loss='categorical_crossentropy',
        58                  optimizer='adam', metrics=['accuracy'])
        59
        60    # train model
        61    model.fit(x_train, y_train, batch_size=100, epochs=20)
        62
        63    # evaluate the model and output the accuracy
        64    result_train = model.evaluate(x_train, y_train)
        65    result_test = model.evaluate(x_test, y_test)
        66    print('Train Acc:', result_train[1])
        67    print('Test Acc:', result_test[1])


        你可以把上述代碼放在Notebook里面或者一個(gè)Py文件,然后運(yùn)行查看對(duì)應(yīng)的結(jié)果。


        更多有趣的內(nèi)容,請(qǐng)點(diǎn)擊閱讀原文,觀看視頻。


        朋友們,在學(xué)習(xí)中有什么問題或者想法,請(qǐng)加入機(jī)器學(xué)習(xí)群,大家一起討論,共同進(jìn)步。


        每周一書

        1利用Python進(jìn)行數(shù)據(jù)分析

        2深度學(xué)習(xí)

        3Head First Python 中文版

        4Hands on XGboost

        5數(shù)據(jù)科學(xué)導(dǎo)論:Python語言實(shí)現(xiàn)


        課程視頻點(diǎn)擊                                         

        ↓↓↓

        瀏覽 35
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            嗯~啊一边揉一边亲一边摸 | chinese基友gay勾老师 | 草色噜噜噜AV在线观看香蕉 | 无码精品一区二区在线 | 丁香五月 五月婷婷 | 五月天看片 | 久re这里只有精品 | 成人在线综合豆花 | a视频在线播放 | 青青草在线免费观看 |