k-fold精度不返回0



我有一个问题,我的k-fold的精度不返回0,但继续前一个fold的最后一个epoch的精度,请找到一个解决方案

下面是图像生成器 的代码
IMAGE_SHAPE = (224, 224)
TRAINING_DATA_DIR = str(directory_root)
datagen_kwargs = dict(
rescale = 1. / 255,
rotation_range=25,
shear_range=0.2,
horizontal_flip=True,
validation_split=.20)
# Make Validation Datagen
valid_datagen = tf.keras.preprocessing.image.ImageDataGenerator(**datagen_kwargs)
valid_generator = valid_datagen.flow_from_directory(
TRAINING_DATA_DIR,
subset='validation',
shuffle=True,
target_size=IMAGE_SHAPE,
batch_size=100)
# Make Train Datagen
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(**datagen_kwargs)
train_generator = train_datagen.flow_from_directory(
TRAINING_DATA_DIR,
subset='training',
shuffle=True,
target_size=IMAGE_SHAPE,
batch_size=100)
下面是k-fold 的代码
for train, test in kfold.split(inputs, targets):
# Define callbacks
checkpoint_path = f'/content/drive/MyDrive/Colab Notebooks/saveModel/Model 1/{fold_no}'
os.mkdir(checkpoint_path)
keras_callbacks = [
ModelCheckpoint(checkpoint_path, monitor='val_loss', save_best_only=True, mode='min')
]
x_t, x_ts  = inputs[train] , targets[test]
y_t, y_ts  = inputs[train] , targets[test]
model_history = model.fit(
train_generator, 
epochs=EPOCHS,
verbose=1,
steps_per_epoch=steps_per_epoch,
validation_data=valid_generator,
validation_steps=val_steps_per_epoch,
callbacks=keras_callbacks).history

由于我没有看到代码中声明和分配一些变量的位置,因此我不确定这是否解决了问题。总之,如果你调用model。fit()如果不为每个折叠实例化一个新模型,结果将是相同的模型,具有已经训练的权重,将适合新的数据,提高其先前的准确性。

最新更新