Esempio n. 1
0
def train():
    x = np.load('data/x_train.npy')
    y = np.load('data/y_train.npy')
    y = tf.keras.utils.to_categorical(y, 4)
    model = keras_model.keras_model_build()
    # model.summary()
    opt = tf.keras.optimizers.Adam(lr=0.00001)
    model.compile(loss='categorical_crossentropy',
                  optimizer=opt,
                  metrics=['accuracy'])
    hist = model.fit(x, y, batch_size=32, epochs=100, verbose=1)
    model.save('model.h5')
    y_pred = model.predict(x)
    confusion_matrix_info(np.argmax(y, axis=1),
                          np.argmax(y_pred, axis=1),
                          title='confusion_matrix_train')
# Define traing params

#*******************************************
learning_rate = 0.00002
batch_size = 6
display_step = 1
epochs = 100
class_weights = [1, 1, 12]

generator = BalanceCovidDataset(data_dir=data_path,
                                csv_file=train_csv,
                                covid_percent=0.3,
                                class_weights=class_weights,
                                batch_size=batch_size)
total_batch = len(generator)
model = keras_model_build()

opt = tf.keras.optimizers.Adam(lr=learning_rate)

# ********************************************
# Train model
#*********************************************
model.compile(loss='categorical_crossentropy',
              optimizer=opt,
              metrics=['accuracy'])

hist = model.fit(generator,
                 steps_per_epoch=total_batch,
                 epochs=epochs,
                 verbose=1,
                 validation_data=(x_test, y_test_c),