Влияние размера тренировочного набора на LSTM - PullRequest
0 голосов
/ 27 апреля 2020

Я использую модель ниже для решения временных рядов классификации. Когда я использую небольшой набор данных для обучения (почти 5000 строк), точность модели составляет около 0,9, а потери - около 0,02. Но когда я использую тренировочный набор данных более 900000 строк, точность и потеря go плохие 0,3 и 1,5. Есть ли какое-либо объяснение этому явлению, я должен увеличить единицу LSTM или batch_size? тогда в каком диапазоне значений?

    ```
   # using keras (tensorflow backend)
   timesteps = 6
   LSTM_units = 45
   dropout = 0.2
   epochs = 100
   batch_size = 100

    model_input = Input(shape=(timesteps, features))
    batchNormalization = BatchNormalization()(model_input)
    lstm1 = LSTM(units = LSTM_units, return_sequences = True)(batchNormalization)
    dropout1 = Dropout(dropout)(lstm1)
    lstm2 = LSTM(units = LSTM_units)(dropout1)
    dropout2 = Dropout(dropout)(lstm2)

    dense1 = Dense(150, activation='relu')(dropout2)
    outputs = Dense(7, activation='softmax')(dense1)
    model = Model(inputs=[model_input], outputs=outputs)

    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

    model.fit_generator(generator, epochs=epochs, steps_per_epoch=batch_size, workers=2, verbose=2)
    ```
...