iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
AI & Data

深入探索AI模型系列 第 11

【Day 11】 GRU實作

  • 分享至 

  • xImage
  •  

今天我們要來實作GRU,在前一天的內容中,我們講到了GRU相較於LSTM的優勢就在於他的執行時間以及記憶體的使用獲得了縮短,因此我們今天就要來透過實作來實際看看縮短的效果。

為了保證公平,今天的實作同樣會使用之前RNN實作以及LSTM實作使用的stock.csv,沒看過的讀者可以先回頭看看喔。先來看一下模型建構函式應該怎麼修改,修改的方式其實也很簡單,只需要將LSTM改成GRU就好,GRU我們同樣使用kearas.layers中的套件。函式程式碼如下:

def build_model():
    model = Sequential()
    model.add(LSTM(input_shape = (10, 3), units = 256, unroll = False))
    model.add(Dense(units = 1))
    model.compile(loss = "mse", optimizer = "adam", metrics = ["accuracy"])
    
    return model

接下來介紹計算運行時間的方法,筆者這邊使用了time函式庫中的process_time函式,這個函式可以紀錄當下的CPU time。我們只需要在呼叫train_model函式的前後使用process_time去紀錄再相減,就可以知道訓練所花費的CPU time了。下方是GRU所預測的結果,可以看見又比起一般RNN和LSTM更為準確了一些。

https://ithelp.ithome.com.tw/upload/images/20230817/20150784uTR0GD9gLd.png

筆者這邊得出的結果是LSTM花費31.233的CPU time、GRU花費25.441的CPU time,可以看見GRU的確有較快速的運算,而且這還是在我們的資料還不大的情況下,若是換成更大的資料集,花費的時間會更明顯的短。


上一篇
【Day 10】 GRU(Gated Recurrent Unit)
下一篇
【Day 12】 SVM(Support Vector Machine)
系列文
深入探索AI模型30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言