def train_model_CV_generator(images,labels,model,train_datagen):
'''
Training model using cross-validation
Parameters
----------
'''
train_datagen = ImageDataGenerator(horizontal_flip=True)
images,labels = reorderRandomly(images,labels)
for i in range(len(labels)):
if labels[i] == "AD":
labels[i] = 0
else:
labels[i] = 1
slices_images = [images[i::5] for i in range(5)]
slices_labels = [labels[i::5] for i in range(5)]
models = {}
histories = {}
values_acc = []
for i in range(5):
model = create_model()
X_test = slices_images[i]
Y_test = slices_labels[i]
X_train = [item
for s in slices_images if s is not X_test
for item in s]
Y_train = [item
for s in slices_labels if s is not Y_test
for item in s]
X_train = np.array(X_train)
Y_train = np.array(Y_train)
X_test = np.array(X_test)
Y_test = np.array(Y_test)
from keras.utils.np_utils import to_categorical
Y_train = to_categorical(Y_train)
Y_test = to_categorical(Y_test)
history = model.fit_generator(train_datagen.flow(X_train,Y_train,batch_size = 5),
epochs=70,steps_per_epoch= len(X_train)//5)
models['model'+str(i)] = model
test_loss = model.evaluate(X_test,Y_test)
print("Loss and accuracy in the test set: Loss %g, Accuracy %g"%(test_loss[0],test_loss[1]))
histories['test_acc'+str(i)] = test_loss
values_acc.append(test_loss[1])
mean = calculate_mean(values_acc)
print("The mean of all the test values is: %g"%mean)
train.py 文件源码
python
阅读 34
收藏 0
点赞 0
评论 0
评论列表
文章目录