iT邦幫忙

0

LSTM 不同的batch_size選擇

  • 分享至 

  • xImage

大家好:
想問一下,目前在訓練時間序列遇到的問題
小弟使用的是keras。
小弟目前有大約300個樣本,每個樣本的長度都不一樣(都超過4000),沒有將所有樣本的長度弄成一樣。
訓練集的分法是,我對每個樣本都分成
x = [[n:n+60],[n+1:n+61]...]
y = [[[n+1:n+61]],[n+2:n+62]]
模型架構如下:

model = Sequential()
    model.add(Masking(mask_value=0, input_shape=(60, 1)))
    model.add(LSTM(500, return_sequences=True))
    model.add(Dropout(0.5))
    model.add(LSTM(250, return_sequences=True))
    model.add(Dropout(0.2))
    model.add(LSTM(150, return_sequences=True))
    model.add(Dense(1))
    model.compile(loss='mse', optimizer=Adam(lr=1e-3), metrics=['mape', 'mse', 'acc'])
    model.summary()
    
    history = model.fit(X_train, Y_train, epochs=500, batch_size=500,       validation_split=0.33,

    score = model.evaluate(X_valid, Y_valid)

想請問有甚麼辦法可以讓我一個樣本訓練完更新一次參數(1/300的樣本訓練完更新一次)?
keras中的fit_generator能做到這個功能嗎?

huahualiu iT邦新手 2 級 ‧ 2019-10-14 16:03:28 檢舉
如果說
令batch_size = x
然後以 for loop 改
這樣應該就能達到最佳化的效果了吧?
我也還是新手XD只是路過看到突然想到哈哈
huahualiu iT邦新手 2 級 ‧ 2019-12-15 22:54:07 檢舉
後來有解決嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答