Выход потери NaN при обучении DNN с помощью KerasPython

Программы на Python
Ответить
Anonymous
 Выход потери NaN при обучении DNN с помощью Keras

Сообщение Anonymous »

Я пытаюсь выполнить упражнение из практического руководства по машинному обучению Орелиена Герона. Однако когда я попытался использовать свое собственное решение, а также скопировать и вставить решение из ключа ответа, я продолжал получать результат, которого не должно было быть. Потери и val_loss в каждую эпоху равны нану, и точность вообще не увеличивается. В этом упражнении мы попытаемся построить DNN с 20 скрытыми слоями на основе набора данных CIFAR10.
Вот код:

Код: Выделить всё

(X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data()
X_val, y_val = X_train[:5000], y_train[:5000]
X_train, y_train = X_train[5000:], y_train[5000:]
tf.random.set_seed(42)

model = tf.keras.Sequential()
model.add(tf.keras.layers.Input(shape=[32,32,3]))
model.add(tf.keras.layers.Flatten())

## 20 Hidden layers
for _ in range(20):
model.add(tf.keras.layers.Dense(100, activation='swish',
kernel_initializer='he_normal'))

# Output layer
model.add(tf.keras.layers.Dense(10, activation='softmax'))

optimizer = tf.keras.optimizers.Nadam(learning_rate=5e-6)
model.compile(optimizer=opimizer,
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
import datetime

early_stopping = tf.keras.callbacks.EarlyStopping(patience=20,
restore_best_weights=True)

log_dir = "logs/my_cifar10_model/" + datetime.datetime.now().strftime("%Y%m%d-
%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir)

model.fit(X_train, y_train, epochs=100, callbacks=[early_stopping,
tensorboard_callback],
validation_data=(X_val, y_val))
И вот результат:

Код: Выделить всё

Epoch 1/100
1407/1407 ━━━━━━━━━━━━━━━━━━━━ 8s 3ms/step - accuracy: 0.1005 - loss: nan -
val_accuracy: 0.0996 - val_loss: nan
Epoch 2/100
1407/1407 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - accuracy: 0.1007 - loss: nan -
val_accuracy: 0.0996 - val_loss: nan
Epoch 3/100
1407/1407 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - accuracy: 0.1007 - loss: nan -
val_accuracy: 0.0996 - val_loss: nan
...

Код: Выделить всё

Epoch 20/100
1407/1407 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - accuracy: 0.1007 - loss: nan -
val_accuracy: 0.0996 - val_loss: nan
Epoch 21/100
1407/1407 ━━━━━━━━━━━━━━━━━━━━ 5s 3ms/step - accuracy: 0.1007 - loss: nan -
val_accuracy: 0.0996 - val_loss: nan

Фактически ошибок, вызванных TF или Python, не возникает. Если кто-нибудь знает решение или имеет идею, пожалуйста, дайте мне знать!

Подробнее здесь: https://stackoverflow.com/questions/793 ... with-keras
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»