Почему графики точности и потерь моей двоичной модели Keras не являются гладкими?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему графики точности и потерь моей двоичной модели Keras не являются гладкими?

Сообщение Anonymous »

Я создаю бинарную модель и использую TensorBoard для визуализации графика точности и потерь. Однако я заметил, что графики точности и потерь моей модели не являются гладкими. Почему?
Вот графики точности и потерь моей модели:
Точность:
Изображение

Потери:
Изображение

Как видите, приведенные выше графики не являются гладкими. Вот мой код для отладки:

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

import keras
from keras import models, layers, regularizers, optimizers, callbacks

def create_model(input_shape):
model = models.Sequential([
layers.Input(shape=input_shape),

layers.Dense(256, kernel_regularizer=regularizers.l2(0.002)),
layers.BatchNormalization(),
layers.Activation("relu"),
layers.Dropout(0.4),

layers.Dense(512, kernel_regularizer=regularizers.l2(0.002)),
layers.BatchNormalization(),
layers.Activation("relu"),
layers.Dropout(0.4),

layers.Dense(512, kernel_regularizer=regularizers.l2(0.002)),
layers.BatchNormalization(),
layers.Activation("relu"),
layers.Dropout(0.4),

layers.Dense(256, kernel_regularizer=regularizers.l2(0.002)),
layers.BatchNormalization(),
layers.Activation("relu"),
layers.Dropout(0.4),

layers.Dense(128, kernel_regularizer=regularizers.l2(0.002)),
layers.BatchNormalization(),
layers.Activation("relu"),
layers.Dropout(0.4),

layers.Dense(1, activation="sigmoid")
])
return model

input_shape = x_train.shape[1:]
model = create_model(input_shape)

optimizer = optimizers.AdamW(learning_rate=0.001)

model.compile(
optimizer=optimizer,
loss="binary_crossentropy",
metrics=["accuracy", keras.metrics.AUC()]
)

reduce_lr = callbacks.ReduceLROnPlateau(monitor="val_loss", factor=0.2, patience=3, min_lr=1e-6, verbose=1)
model_checkpoint = callbacks.ModelCheckpoint("best_model.keras", monitor="val_loss", mode="min", save_best_only=True, verbose=1)
tensorboard = callbacks.TensorBoard(log_dir="./logs")

data_augmentation = keras.Sequential([
layers.GaussianNoise(0.1),
])

history = model.fit(
data_augmentation(x_train),
y_train,
batch_size=64,
epochs=500,
validation_split=0.2,
callbacks=[reduce_lr, model_checkpoint, tensorboard],
class_weight={0: 1, 1: 1},
shuffle=True
)

test_loss, test_accuracy, test_auc = model.evaluate(x_test, y_test)
print(f"Test loss: {test_loss:.4f}")
print(f"Test accuracy: {test_accuracy:.4f}")
print(f"Test AUC: {test_auc:.4f}")
Обратите внимание, что форма x_train — (121, 1), а форма y_train — (121,).

Подробнее здесь: https://stackoverflow.com/questions/790 ... not-smooth
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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