I have an image dataset in keras which I loaded separately between train and test directly from the respective function:
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')
Then I go through the usual phases of my neural network:
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)
How can I implement a cross-validation using either KFold
or StratifiedKFold
within sklearn.model_selection
? If in order to be able to do that I have to change how the data is loaded, I'll also be glad to know how to do it.