Выход NaN из плотного слоя - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь обучить простую нейронную сеть в нескольких случаях, которые имеют много функций.У меня есть 8 экземпляров для обучения и 3 для тестирования (я знаю, это очень мало, но имеет смысл для моего приложения).Каждый экземпляр имеет 4212 функций, которые являются числами от 0 до> 1000.При вводе этих тензоров в мой первый плотный слой слой выводит все значения NaN.

Я попытался изменить функции потерь / оптимизатора / точности / активации и не смог получить ничего, кроме вывода NaN из моего первого плотного слоя.

вот мой код, который строит и соответствует модели.Я приложил вывод, который показывает тензорный ввод и вывод, а также то, как выглядят мои данные.

model=Sequential()
model.add(Dense(50, input_dim=4212, activation='relu'))
model.add(Dense(25, activation='relu'))
model.add(Dense(1, activation='softmax'))
model.compile(loss='mse', optimizer='rmsprop', metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=150, batch_size=BATCH_SIZE)

И вот как выглядят мои данные, а также выходные данные каждого тензора:

Данные обучения

[[ 0.00e+00  0.00e+00  0.00e+00 ...  1.43e+00 -1.24e-01 -7.60e-01]
 [ 1.27e+02  2.00e+00  2.00e+00 ...  2.40e-01 -1.90e-02 -3.90e-01]
 [ 2.80e+02  4.00e+00  4.00e+00 ...  1.29e+00  1.65e-01  1.62e+00]
 [ 4.21e+02  4.00e+00  4.00e+00 ...  7.70e-01  9.00e-03  2.10e-01]
 [ 5.81e+02  5.00e+00  5.00e+00 ...  9.90e-01  6.40e-02  5.30e-01]]

[50. 90. 92. 71. 67.]

Данные проверки

[[ 1.276e+03  1.000e+00  1.000e+00 ...  6.700e-01 -3.600e-02 -4.100e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e-02  3.000e-03  4.700e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e+00 -2.500e-02 -3.400e-01]]
[54.  2.  3.]

Ввод тензоров:

[[ 1.276e+03  1.000e+00  1.000e+00 ...  6.700e-01 -3.600e-02 -4.100e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e-02  3.000e-03  4.700e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e+00 -2.500e-02 -3.400e-01]]
[[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]]
[[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]]

Я пытаюсь использовать векторы, которые представляют статистику игрокав MLB на один сезон, чтобы предсказать количество забегов, которые они забьют в следующем сезоне.Я ожидаю плохой точности сейчас, но я намерен добавить слои LSTM и потренироваться на большем количестве карьер игроков позже.

Вот больше кода относительно того, как я получаю тензорные выходные данные

intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[layer_name].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[1].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[2].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    print(model.summary())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...