потеря: регрессия Nan Keras - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь предсказать непрерывное значение (впервые используя NN).Я нормализовал входные данные.Я не могу понять, почему я получаю loos: nan , начиная с первой эпохи.Я прочитал и попробовал много предложений из предыдущих ответов на тот же вопрос, но ни один из них не помог мне.Моя форма тренировочных данных: (201917, 64)

Вот мой код:

model = Sequential()
model.add(Dense(100, input_dim=X.shape[1], activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(100, activation='relu'))

# Output layer
model.add(Dense(1, activation='linear'))

# Construct the neural network inside of TensorFlow
model.compile(loss='mean_squared_error', optimizer='Adam')

# train the model
model.fit(X_train, y_train, epochs=10, batch_size=32,
shuffle=True, verbose=2)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

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

замените этот код:

# Construct the neural network inside of TensorFlow
model.compile(loss='mean_squared_error', optimizer='Adam')

на:

from keras.optimizers import Adam #maybe put this at the top of your file
opt = Adam(lr=0.0001) #0.001 was the default, so try a smaller one
model.compile(optimizer=opt, loss='mean_squared_error')

, посмотрите, поможет ли это.Сначала я бы попробовал с одним скрытым слоем и посмотрел, как он работает.

0 голосов
/ 06 декабря 2018

Короче говоря, вот шаги, которые вы можете предпринять, чтобы найти причину вашей проблемы:

  1. Убедитесь, что ваш набор данных соответствует тому, каким он должен быть:

    • Найдите в своем наборе данных nan / inf и исправьте его.
    • Неправильная кодировка (преобразуйте его в UTF-8 ).
    • Недопустимые значения в столбце или строках.
  2. Нормализовать модель, используя Dropout , BatchNormalization , L1 / L2 регуляризация , измените batch_size или масштабируйте данные в других диапазонах (например, [- 1,1] ).

  3. Уменьшите размер вашей сети.
  4. Измените другие гиперпараметры (например, оптимизатор или функция активации ).

Вы можете проверить эту и эту ссылку, чтобы получить дополнительную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...