在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GRU模型實戰訓練 智能決策更精準

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2024-06-13 09:22 ? 次閱讀

上一期文章帶大家認識了一個名為GRU的新朋友, GRU本身自帶處理時序數據的屬性,特別擅長對于時間序列的識別和檢測(例如音頻傳感器信號等)。GRU其實是RNN模型的一個衍生形式,巧妙地設計了兩個門控單元:reset門和更新門。reset門負責針對歷史遺留的狀態進行重置,丟棄掉無用信息;更新門負責對歷史狀態進行更新,將新的輸入與歷史數據集進行整合。通過模型訓練,讓模型能夠自動調整這兩個門控單元的狀態,以期達到歷史數據與最新數據和諧共存的目的。

理論知識掌握了,下面就來看看如何訓練一個GRU模型吧。

訓練平臺選用Keras,請提前自行安裝Keras開發工具。直接上代碼,首先是數據導入部分,我們直接使用mnist手寫字體數據集:

import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import GRU, Dense
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import load_model


# 準備數據集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

模型構建與訓練:

# 構建GRU模型
model = Sequential()
model.add(GRU(128, input_shape=(28, 28), stateful=False, unroll=False))
model.add(Dense(10, activation='softmax'))


# 編譯模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])


# 模型訓練
model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test))

這里,眼尖的伙伴應該是注意到了,GRU模型構建的時候,有兩個參數,分別是stateful以及unroll,這兩個參數是什么意思呢?

GRU層的stateful和unroll是兩個重要的參數,它們對GRU模型的行為和性能有著重要影響:

stateful參數:默認情況下,stateful參數為False。當stateful設置為True時,表示在處理連續的數據時,GRU層的狀態會被保留并傳遞到下一個時間步,而不是每個batch都重置狀態。這對于處理時間序列數據時非常有用,例如在處理長序列時,可以保持模型的狀態信息,而不是在每個batch之間重置。需要注意的是,在使用stateful時,您需要手動管理狀態的重置。

unroll參數:默認情況下,unroll參數為False。當unroll設置為True時,表示在計算時會展開RNN的循環,這樣可以提高計算性能,但會增加內存消耗。通常情況下,對于較短的序列,unroll設置為True可以提高計算速度,但對于較長的序列,可能會導致內存消耗過大。

通過合理設置stateful和unroll參數,可以根據具體的數據和模型需求來平衡模型的狀態管理和計算性能。而我們這里用到的mnist數據集實際上并不是時間序列數據,而只是將其當作一個時序數據集來用。因此,每個batch之間實際上是沒有顯示的前后關系的,不建議使用stateful。而是每一個batch之后都要將其狀態清零。即stateful=False。而unroll參數,大家就可以自行測試了。

模型評估與轉換:

# 模型評估
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])


# 保存模型
model.save("mnist_gru_model.h5")


# 加載模型并轉換
converter = tf.lite.TFLiteConverter.from_keras_model(load_model("mnist_gru_model.h5"))
tflite_model = converter.convert()


# 保存tflite格式模型
with open('mnist_gru_model.tflite', 'wb') as f:
    f.write(tflite_model)



便寫好程序后,運行等待訓練完畢,可以看到經過10個epoch之后,模型即達到了98.57%的測試精度:

44c1e04e-291f-11ef-91d2-92fbcf53809c.png

來看看最終的模型樣子,參數stateful=False,unroll=True:

44e91506-291f-11ef-91d2-92fbcf53809c.png

這里,我們就會發現,模型的輸入好像被拆分成了很多份,這是因為我們指定了輸入是28*28。第一個28表示有28個時間步,后面的28則表示每一個時間步的維度。這里的時間步,指代的就是歷史的數據。

現在,GRU模型訓練就全部介紹完畢了,對于機器學習深度學習感興趣的伙伴們,不妨親自動手嘗試一下,搭建并訓練一個屬于自己的GRU模型吧!

希望每一位探索者都能在機器學習的道路上不斷前行,收獲滿滿的知識和成果!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Gru
    Gru
    +關注

    關注

    0

    文章

    12

    瀏覽量

    7590
  • 機器學習
    +關注

    關注

    66

    文章

    8482

    瀏覽量

    133923
  • rnn
    rnn
    +關注

    關注

    0

    文章

    89

    瀏覽量

    7043

原文標題:GRU模型實戰訓練,智能決策更精準!

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    訓練好的ai模型導入cubemx不成功怎么處理?

    訓練好的ai模型導入cubemx不成功咋辦,試了好幾個模型壓縮了也不行,ram占用過大,有無解決方案?
    發表于 03-11 07:18

    AI賦能邊緣網關:開啟智能時代的新藍海

    功耗的AI邊緣計算平臺;對于算法企業,要研發更輕量化、更精準的邊緣AI模型;對于系統集成商,則要構建完整的邊緣智能解決方案。這個萬億級的新市場,正在等待更多創新者的加入。 在這場AI與邊緣計算融合的產業革命
    發表于 02-15 11:41

    【「大模型啟示錄」閱讀體驗】如何在客服領域應用大模型

    地選擇適合的模型。不同的模型具有不同的特點和優勢。在客服領域,常用的模型包括循環神經網絡(RNN)、長短時記憶網絡(LSTM)、門控循環單元(GRU)、Transformer等,以及基
    發表于 12-17 16:53

    什么是大模型、大模型是怎么訓練出來的及大模型作用

    ,基礎模型。 ? 大模型是一個簡稱,完整的叫法,應該是“人工智能訓練模型”。預訓練,是一項技
    的頭像 發表于 11-25 09:29 ?1.2w次閱讀
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>訓練</b>出來的及大<b class='flag-5'>模型</b>作用

    ADC128S022怎么能更精準的去采樣?

    問題1 連續轉換模式具體功能 問題2 怎么能更精準的去采樣
    發表于 11-15 06:02

    如何訓練自己的LLM模型

    訓練自己的大型語言模型(LLM)是一個復雜且資源密集的過程,涉及到大量的數據、計算資源和專業知識。以下是訓練LLM模型的一般步驟,以及一些關鍵考慮因素: 定義目標和需求 : 確定你的L
    的頭像 發表于 11-08 09:30 ?1315次閱讀

    谷東科技民航維修智能決策模型榮獲華為昇騰技術認證

    經過華為專業評測,谷東科技民航維修智能決策模型1.0成功與華為Atlas 800T A2訓練服務器完成并通過了相互兼容性測試認證,正式榮獲華為昇騰技術認證,被授予Ascend Com
    的頭像 發表于 09-30 15:22 ?693次閱讀

    大語言模型的預訓練

    隨著人工智能技術的飛速發展,自然語言處理(NLP)作為人工智能領域的一個重要分支,取得了顯著的進步。其中,大語言模型(Large Language Model, LLM)憑借其強大的語言理解和生成
    的頭像 發表于 07-11 10:11 ?831次閱讀

    人臉識別模型訓練流程

    人臉識別模型訓練流程是計算機視覺領域中的一項重要技術。本文將詳細介紹人臉識別模型訓練流程,包括數據準備、模型選擇、
    的頭像 發表于 07-04 09:19 ?1624次閱讀

    人臉識別模型訓練失敗原因有哪些

    人臉識別模型訓練失敗的原因有很多,以下是一些常見的原因及其解決方案: 數據集質量問題 數據集是訓練人臉識別模型的基礎。如果數據集存在質量問題,將直接影響
    的頭像 發表于 07-04 09:17 ?1131次閱讀

    人臉識別模型訓練是什么意思

    人臉識別模型訓練是指通過大量的人臉數據,使用機器學習或深度學習算法,訓練出一個能夠識別和分類人臉的模型。這個模型可以應用于各種場景,如安防監
    的頭像 發表于 07-04 09:16 ?1107次閱讀

    訓練模型的基本原理和應用

    訓練模型(Pre-trained Model)是深度學習和機器學習領域中的一個重要概念,尤其是在自然語言處理(NLP)和計算機視覺(CV)等領域中得到了廣泛應用。預訓練模型指的是在大
    的頭像 發表于 07-03 18:20 ?3965次閱讀

    深度學習模型訓練過程詳解

    深度學習模型訓練是一個復雜且關鍵的過程,它涉及大量的數據、計算資源和精心設計的算法。訓練一個深度學習模型,本質上是通過優化算法調整模型參數,
    的頭像 發表于 07-01 16:13 ?2215次閱讀

    深入GRU:解鎖模型測試新維度

    之前帶大家一起使用Keras訓練了一個GRU模型,并使用mnist的手寫字體數據集進行了驗證。本期小編將繼續帶來一篇擴展,即GRU模型的測試
    的頭像 發表于 06-27 09:36 ?1496次閱讀
    深入<b class='flag-5'>GRU</b>:解鎖<b class='flag-5'>模型</b>測試新維度

    GRU是什么?GRU模型如何讓你的神經網絡更聰明 掌握時間 掌握未來

    大家平時經常聽到的GRU是什么呢? 首先來認識下CNN,CNN指代卷積神經網絡(Convolutional Neural Network),這是一種在人工智能和機器學習領域中常用的神經網絡架構,特別
    發表于 06-13 11:42 ?2778次閱讀
    <b class='flag-5'>GRU</b>是什么?<b class='flag-5'>GRU</b><b class='flag-5'>模型</b>如何讓你的神經網絡更聰明 掌握時間 掌握未來
    主站蜘蛛池模板: 色噜噜成人综合网站 | 激情五月婷婷网 | 免费看国产片 | 99热精品久久只有精品30 | 免费高清在线观看a网站 | 91午夜在线观看 | 久久99热精品免费观看无卡顿 | 美女隐私黄www视频 美女用手扒开尿口给男生桶爽 | 在线h网站 | 免费视频网站在线观看 | 资源视频在线观看 | 国产成人综合日韩精品婷婷九月 | 操夜夜| 色99视频| 日本伊人网 | 在线看片成人 | v天堂网| 色黄视频网站 | 欧美黑人巨大xxxx猛交 | 全部在线播放免费毛片 | 一区二区三区免费在线 | 美国一级大黄香蕉片 | 婷婷深爱| 天天综合天天 | 在线观看播放视频www | 亚洲天堂导航 | 日本免费视频 | 欧美三级欧美一级 | 天天噜噜噜 | 99午夜高清在线视频在观看 | 亚洲一区二区中文字幕 | 天天摸夜夜摸成人免费视频 | 亚洲1卡二卡3卡四卡不卡 | 夜夜艹天天干 | vip免费观看 | 国产成人精品视频一区二区不卡 | 激情五月社区 | 免费四虎永久在线精品 | 色婷婷99综合久久久精品 | 婷婷亚洲综合五月天在线 | 欧美成人aaa大片 |