Python 如何使用目录中的keras图像数据集进行交叉验证?

Python 如何使用目录中的keras图像数据集进行交叉验证?,python,keras,scikit-learn,cross-validation,Python,Keras,Scikit Learn,Cross Validation,我在keras中有一个图像数据集,我直接从各自的功能在列车和测试之间分别加载该数据集: from tensorflow import keras tds = keras.preprocessing\ .image_dataset_from_directory('dataset_folder', seed=123, validation_split=0.35, subset='training') vds = kera

我在keras中有一个图像数据集,我直接从各自的功能在列车和测试之间分别加载该数据集:

from tensorflow import keras

tds = keras.preprocessing\
    .image_dataset_from_directory('dataset_folder', seed=123,
                                  validation_split=0.35, subset='training')

vds = keras.preprocessing\
    .image_dataset_from_directory('dataset_folder', seed=123,
                                  validation_split=0.35, subset='validation')
然后我经历了我的神经网络的通常阶段:

from tensorflow.keras import layers
from tensorflow.keras.models import Sequential

num_classes = 5

model = Sequential([
    layers.experimental.preprocessing.Rescaling(1.0/255,
                                                input_shape=(256, 256, 3)),
    layers.Conv2D(16, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(32, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(num_classes)])

model\
    .compile(optimizer='adam', metrics=['accuracy'],
             loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True))

hist = model.fit(tds, validation_data=vds, epochs=15)

如何在
sklearn.model_selection
中使用
KFold
StratifiedKFold
实现交叉验证?如果为了能够做到这一点,我必须改变数据的加载方式,我也很高兴知道如何做到这一点。

看看这些关于在Keras中实施交叉验证的建议:

使用image_dataset_从_目录加载数据将生成一个tf.data.dataset对象,我不确定这是否有助于上述实现。一种替代方法是将图像转换为Numpy阵列,然后通过K-fold进行处理。为此,您可以参考以下内容:

注:上述机器学习掌握链接中提到了以下声明:

交叉验证通常不用于评估深度学习模型,因为计算开销较大。例如,k-折叠交叉验证通常与5或10个折叠一起使用。因此,必须构建和评估5或10个模型,这大大增加了模型的评估时间


我读过一些链接,但老实说,它们对我没有帮助。我设法创建了折叠,但它需要重构代码以加载数据。无论如何,谢谢你的帮助。