Esempio n. 1
0
# The SVM baseline for BO4D
import shared_defs_SEMAINE
import data_preparation
import numpy

import mlp

(all_aus, train_recs, devel_recs, BP4D_dir,
 hog_data_dir) = shared_defs_SEMAINE.shared_defs()

pca_loc = "../pca_generation/generic_face_rigid"

# load the training and testing data for the current fold
[train_samples, train_labels, valid_samples, valid_labels, raw_valid, PC, means, scaling] = \
    data_preparation.Prepare_HOG_AU_data_generic_SEMAINE_dynamic(train_recs, devel_recs, all_aus, BP4D_dir, hog_data_dir, pca_loc, geometry=True)

print train_samples.shape[1]

import validation_helpers

train_fn = mlp.train_mlp_probe
test_fn = mlp.test_mlp_class

hyperparams = {
    'batch_size': [100],
    'learning_rate': [0.2],
    'lambda_reg': [0.00001, 0.0001],
    'num_hidden': [50, 100, 250],
    'n_epochs': 1000,
    'validate_params':
    ["batch_size", "learning_rate", "lambda_reg", 'num_hidden']
# The SVM baseline for SEMAINE
import shared_defs_SEMAINE
import data_preparation
import numpy

import mlp

(all_aus, train_recs, devel_recs, SEMAINE_dir,
 hog_data_dir) = shared_defs_SEMAINE.shared_defs()

pca_loc = "../pca_generation/generic_face_rigid"

# load the training and testing data for the current fold
[train_samples, train_labels, valid_samples, valid_labels, raw_valid, PC, means, scaling] = \
    data_preparation.Prepare_HOG_AU_data_generic_SEMAINE_dynamic(train_recs, devel_recs, all_aus, SEMAINE_dir,
                                                                 hog_data_dir, pca_loc, scale=False)

import validation_helpers

train_fn = mlp.train_mlp_probe
test_fn = mlp.test_mlp_class

hyperparams = {
    'batch_size': [100],
    'learning_rate': [0.2],
    'lambda_reg': [0.0001],
    'num_hidden': [100, 250, 400],
    'n_epochs': 1000,
    'error_func': 'cross_ent',
    'final_layer': ['tanh', 'sigmoid'],
    'validate_params':
import shared_defs_SEMAINE
import data_preparation

(all_aus, train_recs, devel_recs, SEMAINE_dir, hog_data_dir) = shared_defs_SEMAINE.shared_defs()

pca_loc = "../pca_generation/generic_face_rigid"

f = open("./trained/SEMAINE_train_dynamic_lin_svm.txt", 'w')

for au in all_aus:
               
    hyperparams = {"C": [0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000], "validate_params": ["C"]}
    
    # load the training and testing data for the current fold
    [train_samples, train_labels, valid_samples, valid_labels, raw_valid, PC, means, scaling] = \
        data_preparation.Prepare_HOG_AU_data_generic_SEMAINE_dynamic(train_recs, devel_recs, [au],
                                                             SEMAINE_dir, hog_data_dir, pca_loc)

    import linear_SVM
    import validation_helpers
    
    train_fn = linear_SVM.train_SVM
    test_fn = linear_SVM.test_SVM

    # Cross-validate here                
    best_params, all_params = validation_helpers.validate_grid_search(train_fn, test_fn, False, train_samples,
                                                                      train_labels, valid_samples, valid_labels,
                                                                      hyperparams)

    model = train_fn(train_labels, train_samples, best_params)

    f1, precision, recall, prediction = test_fn(valid_labels, valid_samples, model)
pca_loc = "../pca_generation/generic_face_rigid"

(all_aus_bp4d, train_recs, devel_recs, BP4D_dir,
 hog_data_dir) = shared_defs_BP4D.shared_defs()

# load the training and testing data for the current fold
[train_samples_bp4d, train_labels_bp4d, valid_samples_bp4d, valid_labels_bp4d, _, PC, means, scaling] = \
    data_preparation.Prepare_HOG_AU_data_generic_BP4D_dynamic(train_recs, devel_recs, all_aus_bp4d, BP4D_dir, hog_data_dir, pca_loc)

(all_aus_semaine, train_recs, devel_recs, semaine_dir,
 hog_data_dir) = shared_defs_SEMAINE.shared_defs()

# load the training and testing data for the current fold
[train_samples_semaine, train_labels_semaine, valid_samples_semaine, valid_labels_semaine, _, PC, means, scaling] = \
    data_preparation.Prepare_HOG_AU_data_generic_SEMAINE_dynamic(train_recs, devel_recs, all_aus_semaine,
                                                         semaine_dir, hog_data_dir, pca_loc)

(all_aus_disfa, train_recs, disfa_dir,
 hog_data_dir) = shared_defs_DISFA.shared_defs()
devel_recs = train_recs[0:1]
[train_samples_disfa, train_labels_disfa, _, _, _, PC, means, scaling] = \
    data_preparation.Prepare_HOG_AU_data_generic_DISFA_dynamic(train_recs, devel_recs, all_aus_disfa,
                                                         disfa_dir, hog_data_dir, pca_loc)

# Binarise disfa labels
train_labels_disfa[train_labels_disfa > 1] = 1

# Train on all three
#  Do the fully joint models first (2, 12, 17)
aus_exp = [2, 12, 17]