Anonymous
Сверточная нейронная сеть получает неожиданно высокую точность проверки. Что может быть причиной этого?
Сообщение
Anonymous » 28 дек 2024, 21:11
Я создаю/оптимизирую CNN для классификации автомобилей из этого набора данных.
Моя базовая модель получает удивительно высокую точность благодаря очень простой архитектуре модели. Меня беспокоит утечка данных из-за отсутствия загрузки данных. правильно, поэтому хотел бы получить совет.
Загрузка набора данных
Код: Выделить всё
batch_size = 16
img_size = (64, 64)
train_dataset, val_dataset = tf.keras.utils.image_dataset_from_directory(
data_dir,
label_mode='categorical',
seed=1,
subset='both',
validation_split=0.2,
image_size=img_size,
batch_size=batch_size,
)
normalization_layer = Rescaling(1./255)
train_dataset = train_dataset.map(lambda x, y: (normalization_layer(x), y))
val_dataset = val_dataset.map(lambda x, y: (normalization_layer(x), y))
Построение модели
Код: Выделить всё
def baseline_model(input_shape=[64, 64, 3]):
model = Sequential([
# 1st Conv Layer
Conv2D(filters=16, kernel_size=(3, 3), activation='relu', padding='valid', input_shape=input_shape),
# Pool Layer
MaxPooling2D((2, 2)),
# 2nd Conv Layer
Conv2D(filters=32, kernel_size=(3, 3), activation='relu', padding='valid'),
# Pool Layer
MaxPooling2D((2, 2)),
# Flatten
Flatten(),
# Fully connected layer
Dense(64, activation='relu'),
Dense(5, activation='softmax')
])
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy', Precision(name='precision'), Recall(name='recall')])
return model
baseline_model = baseline_model()
Подходящая модель
Код: Выделить всё
history = baseline_model.fit(
train_dataset,
epochs=10,
validation_data=val_dataset,
#callbacks=[ConfusionMatrixCallback(val_dataset, class_names)]
)
plot_training_history(history)
Подробнее здесь:
https://stackoverflow.com/questions/793 ... accuracy-w
1735409499
Anonymous
Я создаю/оптимизирую CNN для классификации автомобилей из этого набора данных. Моя базовая модель получает удивительно высокую точность благодаря очень простой архитектуре модели. Меня беспокоит утечка данных из-за отсутствия загрузки данных. правильно, поэтому хотел бы получить совет. Загрузка набора данных [code]batch_size = 16 img_size = (64, 64) train_dataset, val_dataset = tf.keras.utils.image_dataset_from_directory( data_dir, label_mode='categorical', seed=1, subset='both', validation_split=0.2, image_size=img_size, batch_size=batch_size, ) normalization_layer = Rescaling(1./255) train_dataset = train_dataset.map(lambda x, y: (normalization_layer(x), y)) val_dataset = val_dataset.map(lambda x, y: (normalization_layer(x), y)) [/code] Построение модели [code]def baseline_model(input_shape=[64, 64, 3]): model = Sequential([ # 1st Conv Layer Conv2D(filters=16, kernel_size=(3, 3), activation='relu', padding='valid', input_shape=input_shape), # Pool Layer MaxPooling2D((2, 2)), # 2nd Conv Layer Conv2D(filters=32, kernel_size=(3, 3), activation='relu', padding='valid'), # Pool Layer MaxPooling2D((2, 2)), # Flatten Flatten(), # Fully connected layer Dense(64, activation='relu'), Dense(5, activation='softmax') ]) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy', Precision(name='precision'), Recall(name='recall')]) return model baseline_model = baseline_model() [/code] Подходящая модель [code]history = baseline_model.fit( train_dataset, epochs=10, validation_data=val_dataset, #callbacks=[ConfusionMatrixCallback(val_dataset, class_names)] ) plot_training_history(history) [/code] [img]https://i.sstatic.net/3OqVXUlD.png[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/79314326/convolutional-neural-network-is-getting-unexpectedly-high-validation-accuracy-w[/url]