X_train, X_test, y_train, y_test = train_test_split(input,
                                                    y,
                                                    test_size=0.1,
                                                    random_state=42)

model = NASNetMobile(weights=None, classes=7)

model.summary()
model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])
time_callback = TimeHistory()
model.fit(X_train,
          y_train,
          epochs=5,
          batch_size=32,
          validation_data=(X_test, y_test),
          callbacks=[time_callback])
name = 'results/UHCS_NASNetMobile_Weights'
score = model.evaluate(X_test, y_test)
print('Test score:', score[0])
print('Test accuracy:', score[1])
model.save_weights(name + '.h5')

times = time_callback.times
file = open('NASNetMobile.txt', 'w')
file.write('Test score:' + str(score[0]) + '\n')
file.write('Test accuracy:' + str(score[1]) + '\n')
file.write(str(times))
file.close()
    callbacksList.append(earlyStop)
if reduceLRFlag:
    callbacksList.append(reduce_lr)
if modelCheckpointFlag:
    callbacksList.append(modelCheckpoint)

print('passing class weights: {}'.format(
    getClassWeights(trainGenerator.classes)))
history = model.fit_generator(
    trainGenerator,
    steps_per_epoch=trainSamplesNumber // batchSize * foldAugment,
    epochs=epochs,
    verbose=1,
    callbacks=callbacksList,
    validation_data=validationGenerator,
    class_weight=getClassWeights(trainGenerator.classes),
    shuffle=True,
    validation_steps=validateSamplesNumber // batchSize)

score = model.evaluate_generator(testGenerator, testSamplesNumber)

print('Test loss:', score[0])
print('Test accuracy:', score[1])

# serialize model to JSON
model_json = model.to_json()
with open(modelFile, "w") as json_file:
    json_file.write(model_json)
# serialize weights to HDF5
model.save_weights(weightsFile)
print("Saved model to disk")