def fineTuneMobilenet(): mobilenet = classes.ComplexModel(baseModels.Mobilenet(), (299, 299), "mobilenet/") data, labels, numClasses = mobilenet.loadAndPreprocessData( destPathSelected, log=True) numberSplits = classes.obtainNumSplitKFold(len(labels), 20) folds = list( StratifiedKFold(n_splits=numberSplits, shuffle=True).split(data, labels)) informationBestModel = classes.obtainBestModel("mobilenet/topModel/") print( '\n*************************Fine Tune Mobilenet*****************************' ) for fold, (trainIdx, validIdx) in enumerate(folds): print('\n[INFO] Executing fold ', fold) trainData = data[trainIdx] trainLabels = labels[trainIdx] validData = data[validIdx] validLabels = labels[validIdx] trainingTime, historyGenerated = mobilenet.fineTune( trainData, trainLabels, validData, validLabels, 76, informationBestModel[1], informationBestModel[0], fold) mobilenet.testFineTuneModel(validData, validLabels, trainingTime, historyGenerated, fold, 15) print('\n************END ' + str(fold) + '***************')
def trainTopModelMobilenet(): print( '\n*************************Train top models Mobilenet*****************************' ) mobilenet = classes.ComplexModel(baseModels.Mobilenet(), (299, 299), "mobilenet/") data, labels, numClasses = mobilenet.loadAndPreprocessData( destPathSelected, log=True) numberSplits = classes.obtainNumSplitKFold(len(labels), 20) folds = list( StratifiedKFold(n_splits=numberSplits, shuffle=True).split(data, labels)) for fold, (trainIdx, validIdx) in enumerate(folds): print('\n[INFO] Executing fold ', fold) trainData = data[trainIdx] trainLabels = labels[trainIdx] validData = data[validIdx] validLabels = labels[validIdx] mobilenet.buildTopModel(classes.modelType.typeA) trainingTime, historyGenerated = mobilenet.trainTopModel( trainData, trainLabels, validData, validLabels, fold) mobilenet.testTopModel(validData, validLabels, trainingTime, historyGenerated, fold) print('\n************END ' + str(fold) + '***************')