欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一小時(shí)學(xué)會(huì)TensorFlow2之大幅提高模型準(zhǔn)確率

 更新時(shí)間:2021年09月08日 14:47:22   作者:我是小白呀  
這篇文章主要介紹了TensorFlow2之大幅提高模型準(zhǔn)確率,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

過擬合

當(dāng)訓(xùn)練集的的準(zhǔn)確率很高, 但是測(cè)試集的準(zhǔn)確率很差的時(shí)候就, 我們就遇到了過擬合 (Overfitting) 的問題. 如圖:

在這里插入圖片描述

過擬合產(chǎn)生的一大原因是因?yàn)槟P瓦^于復(fù)雜. 下面我們將通過講述 5 種不同的方法來解決過擬合的問題, 從而提高模型準(zhǔn)確度.

Regulation

Regulation 可以幫助我們通過約束要優(yōu)化的參數(shù)來防止過擬合.

在這里插入圖片描述

公式

未加入 regulation 的損失:

在這里插入圖片描述

加入 regulation 的損失:

在這里插入圖片描述

λ 和 lr (learning rate) 類似. 如果 λ 的值越大, regularion 的力度也就越強(qiáng), 權(quán)重的值也就越小.

例子

添加了 l2 regulation 的網(wǎng)絡(luò):

network = tf.keras.Sequential([
    tf.keras.layers.Dense(256, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
    tf.keras.layers.Dense(128, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
    tf.keras.layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
    tf.keras.layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
    tf.keras.layers.Dense(10)
])

動(dòng)量

動(dòng)量 (Momentum) 是指運(yùn)動(dòng)物體的租用效果. 在梯度下降的過程中, 通過在優(yōu)化器中加入動(dòng)量, 我們可以減少擺動(dòng)從而達(dá)到更優(yōu)的效果.

未添加動(dòng)量:

在這里插入圖片描述

添加動(dòng)量:

在這里插入圖片描述

公式

未加動(dòng)量的權(quán)重更新:

在這里插入圖片描述

  • w: 權(quán)重 (weight)
  • k: 迭代的次數(shù)
  • α: 學(xué)習(xí)率 (learning rate)
  • ∇f(): 微分

添加動(dòng)量的權(quán)重更新:

在這里插入圖片描述

  • β: 動(dòng)量權(quán)重
  • z: 歷史微分

例子

添加了動(dòng)量的優(yōu)化器:

optimizer = tf.keras.optimizers.SGD(learning_rate=0.02, momentum=0.9)
optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.02, momentum=0.9)

注: Adam 優(yōu)化器默認(rèn)已經(jīng)添加動(dòng)量, 所以無需自行添加.

學(xué)習(xí)率遞減

簡(jiǎn)單的來說, 如果學(xué)習(xí)率越大, 我們訓(xùn)練的速度就越大, 但找到最優(yōu)解的概率也就越小. 反之, 學(xué)習(xí)率越小, 訓(xùn)練的速度就越慢, 但找到最優(yōu)解的概率就越大.

在這里插入圖片描述

過程

我們可以在訓(xùn)練初期把學(xué)習(xí)率調(diào)的稍大一些, 使得網(wǎng)絡(luò)迅速收斂. 在訓(xùn)練后期學(xué)習(xí)率小一些, 使得我們能得到更好的收斂以獲得最優(yōu)解. 如圖:

在這里插入圖片描述

例子

learning_rate = 0.2  # 學(xué)習(xí)率
optimizer = tf.keras.optimizers.SGD(learning_rate=learning_rate, momentum=0.9)  # 優(yōu)化器

# 迭代
for epoch in range(iteration_num):
    optimizer.learninig_rate = learning_rate * (100 - epoch) / 100  # 學(xué)習(xí)率遞減

Early Stopping

之前我們提到過, 當(dāng)訓(xùn)練集的準(zhǔn)確率仍在提升, 但是測(cè)試集的準(zhǔn)確率反而下降的時(shí)候, 我們就遇到了過擬合 (overfitting) 的問題.

Early Stopping 可以幫助我們?cè)跍y(cè)試集的準(zhǔn)確率下降的時(shí)候停止訓(xùn)練, 從而避免繼續(xù)訓(xùn)練導(dǎo)致的過擬合問題.

在這里插入圖片描述

Dropout

Learning less to learn better

Dropout 會(huì)在每個(gè)訓(xùn)練批次中忽略掉一部分的特征, 從而減少過擬合的現(xiàn)象.

在這里插入圖片描述

dropout, 通過強(qiáng)迫神經(jīng)元, 和隨機(jī)跳出來的其他神經(jīng)元共同工作, 達(dá)到好的效果. 消除減弱神經(jīng)元節(jié)點(diǎn)間的聯(lián)合適應(yīng)性, 增強(qiáng)了泛化能力.

例子:

network = tf.keras.Sequential([
    tf.keras.layers.Dense(256, activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.5),  # 忽略一半
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.5),  # 忽略一半
    tf.keras.layers.Dense(64, activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.5),  # 忽略一半
    tf.keras.layers.Dense(32, activation=tf.nn.relu),
    tf.keras.layers.Dense(10)
])

到此這篇關(guān)于一小時(shí)學(xué)會(huì)TensorFlow2之大幅提高模型準(zhǔn)確率的文章就介紹到這了,更多相關(guān)TensorFlow2模型準(zhǔn)確率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解

    讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解

    今天小編就為大家分享一篇讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python 實(shí)現(xiàn)將list轉(zhuǎn)成字符串,中間用空格隔開

    python 實(shí)現(xiàn)將list轉(zhuǎn)成字符串,中間用空格隔開

    今天小編就為大家分享一篇python 實(shí)現(xiàn)將list轉(zhuǎn)成字符串,中間用空格隔開,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 基于Python利用Faker批量測(cè)試數(shù)據(jù)

    基于Python利用Faker批量測(cè)試數(shù)據(jù)

    這篇文章主要介紹了基于Python利用Faker批量測(cè)試數(shù)據(jù)。測(cè)試過程中,經(jīng)常需要批量去造數(shù)據(jù),方法有很多,最簡(jiǎn)單方便的應(yīng)該是使用python?的一個(gè)三方庫Faker。下面我們就來看看三方庫Faker如何批量測(cè)試數(shù)據(jù),需要的朋友可以參考一下
    2022-03-03
  • Python使用SQLAlchemy模塊實(shí)現(xiàn)操作數(shù)據(jù)庫

    Python使用SQLAlchemy模塊實(shí)現(xiàn)操作數(shù)據(jù)庫

    SQLAlchemy 是用Python編程語言開發(fā)的一個(gè)開源項(xiàng)目,它提供了SQL工具包和ORM對(duì)象關(guān)系映射工具,使用SQLAlchemy可以實(shí)現(xiàn)高效和高性能的數(shù)據(jù)庫訪問,下面我們就來學(xué)習(xí)一下SQLAlchemy模塊的具體應(yīng)用吧
    2023-11-11
  • python使用wxpython開發(fā)簡(jiǎn)單記事本的方法

    python使用wxpython開發(fā)簡(jiǎn)單記事本的方法

    這篇文章主要介紹了python使用wxpython開發(fā)簡(jiǎn)單記事本的方法,涉及Python使用wxPython實(shí)現(xiàn)桌面圖形應(yīng)用程序的技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解python和matlab的優(yōu)勢(shì)與區(qū)別

    詳解python和matlab的優(yōu)勢(shì)與區(qū)別

    在本文中小編給大家分享的是關(guān)于python和matlab的優(yōu)勢(shì)與區(qū)別的知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們參考學(xué)習(xí)下。
    2019-06-06
  • Python實(shí)現(xiàn)聰明的尼姆游戲

    Python實(shí)現(xiàn)聰明的尼姆游戲

    尼姆游戲是個(gè)著名的游戲,有很多變種玩法,今天通過本文給大家分享Python實(shí)現(xiàn)聰明的尼姆游戲代碼,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的操作方法示例

    Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的操作方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的操作方法,結(jié)合實(shí)例形式演示了Python針對(duì)數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的初始化、插入、刪除、判斷隊(duì)列滿及隊(duì)列空等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • python運(yùn)用sklearn實(shí)現(xiàn)KNN分類算法

    python運(yùn)用sklearn實(shí)現(xiàn)KNN分類算法

    這篇文章主要為大家詳細(xì)介紹了python運(yùn)用sklearn實(shí)現(xiàn)KNN分類算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • ChatGPT 幫我自動(dòng)編寫 Python 爬蟲腳本的詳細(xì)過程

    ChatGPT 幫我自動(dòng)編寫 Python 爬蟲腳本的詳細(xì)過程

    ChatGPT是一種基于大語言模型的生成式AI,換句話說它可以自動(dòng)生成類似人類語言的文本,把梳理好的有邏輯的答案呈現(xiàn)在你面前,這完全不同于傳統(tǒng)搜索工具,這篇文章主要介紹了ChatGPT 幫我自動(dòng)編寫 Python 爬蟲腳本,需要的朋友可以參考下
    2023-02-02

最新評(píng)論