我有一个问题,我的k折叠的精度没有返回到0,但在上一个折叠上继续上一个纪元的精度,请找到解决方案。
下面是图像生成器的代码
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
发布于 2021-01-22 11:03:03
由于我看不到在代码中声明和赋值某些变量的位置,所以我不确定这是否解决了问题。无论如何,如果您调用"model.fit()“而没有为每个折叠实例化一个新模型,结果将是相同的模型,具有已经训练好的权重,将适合新数据,从而提高其先前的准确性。
https://stackoverflow.com/questions/65843778
复制