<p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • 筆記|李宏毅老師機(jī)器學(xué)習(xí)課程,視頻15Keras Demo

    共 5615字,需瀏覽 12分鐘

     ·

    2021-04-09 22:16

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


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

     | MLer

    1521字 | 5分鐘閱讀

    【數(shù)據(jù)科學(xué)與人工智能】開(kāi)通了機(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上面,有些朋友可能無(wú)法觀(guān)看,我把它搬運(yùn)下來(lái)放在云盤(pán)上面,大家點(diǎn)擊閱讀原文,就可以直接在手機(jī)隨時(shí)隨地觀(guān)看了。再次,感謝李老師的付出和貢獻(xiàn)。

    這門(mén)課,共有36個(gè)視頻,每個(gè)視頻播放的時(shí)間不一。我按著視頻播放的順序,觀(guān)看,聆聽(tīng)和學(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過(guò)大會(huì)導(dǎo)致loss下降曲線(xiàn)過(guò)于平滑而卡在local minima、saddle point或plateau處,batch_size過(guò)小會(huì)導(dǎo)致update次數(shù)過(guò)多,運(yùn)算量太大,速度緩慢,但可以帶來(lái)一定程度的準(zhǔn)確率提高
    35    2、hidden layer數(shù)量不要太多,不然可能會(huì)發(fā)生vanishing gradient(梯度消失),一般兩到三層為宜
    36    3、如果layer數(shù)量太多,則千萬(wàn)不要使用sigmoid等縮減input影響的激活函數(shù),應(yīng)當(dāng)選擇ReLU、Maxout等近似線(xiàn)性的activation function(layer數(shù)量不多也應(yīng)該選這兩個(gè))
    37    4、每一個(gè)hidden layer所包含的neuron數(shù)量,五六百為宜
    38    5、對(duì)于分類(lèi)問(wèn)題,loss function一定要使用cross entropy(categorical_crossentropy),而不是mean square error(mse)
    39    6、優(yōu)化器optimizer一般選擇adam,它綜合了RMSProp和Momentum,同時(shí)考慮了過(guò)去的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)擊閱讀原文,觀(guān)看視頻。


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


    每周一書(shū)

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

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

    3Head First Python 中文版

    4Hands on XGboost

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


    課程視頻點(diǎn)擊                                         

    ↓↓↓

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

    手機(jī)掃一掃分享

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

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    <p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • 亚洲无码视频看看 | 伊人干网| 逼特逼视频在线 | 天天好逼成人网 | 青青艹在线观看 | 日本天堂视频 | 黄性视频 | 2024中文字幕在线 | 内射黄色大片 | 国内精品久久久 |