iT邦幫忙

0

LSTM 不同的batch_size選擇

大家好:
想問一下,目前在訓練時間序列遇到的問題
小弟使用的是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能做到這個功能嗎?

尚未有邦友回答

立即登入回答