Tensorflow: Получение высоких потерь в Обучениимодель и как обучить данные CSV с помощью LSTM?

#python #tensorflow #machine-learning

Вопрос:

Я пытаюсь обучить свои данные CSV, чтобы сделать прогноз. Я использую Tensorflow для обучения данных. Но в какой-то момент я получаю большие потери в своих тренировках, и мои categorical_accuracy данные имеют одинаковое значение.

  1. Что не так в моем коде?
  2. Как я могу преодолеть это, чтобы уменьшить свои потери?
  3. Я хотел бы обучить их с помощью LSTM, поскольку это одна из лучших моделей, используемых для прогнозирования. Как я могу реализовать это в коде?

Я использую Tensorflow в первый раз и не знаю, как это сделать правильно. Я надеюсь получить вашу поддержку.

Вот как выглядит содержимое моего CSV-файла:

 class    x1        y1     ...     y21       z21 
A     0.187087  0.668525  ... -0.024700  0.220235 
B     0.202503  0.669253  ... -0.107100  0.240229 
....
C     0.248009  0.676325  ... -0.070317  0.278087  
C     0.245750  0.658381  ... -0.077429  0.282217 
D     0.235889  0.643202  ... -0.080697  0.262705
....
 

Мои тренировки проходят с моей консоли Python, где мои потери действительно высоки:

 Epoch 340/500
1132/1132 [==============================] - 3s 3ms/step - loss: 7.7938e-04 - categorical_accuracy: 0.0561
Epoch 341/500
1132/1132 [==============================] - 3s 3ms/step - loss: 9.2271e-06 - categorical_accuracy: 0.0561
 

Комментарии:

1. На самом деле это очень низкий показатель, 9.2271 e-06 = 0.0000092271. Тем не менее, ваша метрика должна быть sparse_categorical_accuracy такой .

2. loss Тогда тоже должно быть sparse_categorical_accuracy ? Или какую потерю вы бы тогда понесли?

3. @Mayama: Ваша функция потери в порядке. и, как сказал Страхтера, ваши значения потерь очень низкие, и вам действительно не нужно уменьшать свои потери. Просто измениться metrics . А для LSTM вы должны преобразовать свои табличные данные в временные ряды. Другими словами, добавьте новое измерение, называемое временными шагами. Затем вы можете скормить их слоям LSTM.

4. Ваша новая правка полностью нарушила комментарии. Теперь ваша модель неверна, так как softmax при использовании 1 нейрона будет выдаваться только постоянный выходной сигнал.

5. Не могли бы вы предоставить какой-нибудь код вашей модели, чтобы мы могли изучить его для выявления проблемы. Спасибо