Ejemplo n.º 1
0
 def save_model(self):
     new_sample_rate = sampleRate()
     modelName = 'sampleRate'+str(new_sample_rate)+'_nclass'+str(self.nclass)+'_seed'+str(self.seed)\
                 +'_epoch'+str(self.epoch)+'_CNN'+'.model'
     model = self.fitted_model
     if (model == None):
         print('model not fitted yet!')
         return
     model.save(os.path.join(Configure.model_path, modelName))
Ejemplo n.º 2
0
module_path = os.path.abspath(os.path.join('..'))
sys.path.append(module_path)

from conf.configure import Configure
from utils import data_util
from utils.transform_util import relabel, label_transform, pad_audio, chop_audio, sampleRate
# from utils.model_util import CNN

from time import time
from scipy.stats import randint as sp_randint

from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import RandomizedSearchCV
from keras.wrappers.scikit_learn import KerasClassifier

sampleRate()
relabel()

seed = 2018
np.random.seed(seed)


# Utility function to report best scores
def report(results, n_top=3):
    for i in range(1, n_top + 1):
        candidates = np.flatnonzero(results['rank_test_score'] == i)
        for candidate in candidates:
            print("Model with rank: {0}".format(i))
            print("Mean validation score: {0:.3f} (std: {1:.3f})".format(
                results['mean_test_score'][candidate],
                results['std_test_score'][candidate]))
Ejemplo n.º 3
0
#                 nlabels.append('unknown')
#             else:
#                 nlabels.append(label)
#     else:
#         nlabels = labels
#     if get_dummies:
#         return(pd.get_dummies(pd.Series(nlabels)))
#     return nlabels

# Next, we use functions declared above to generate x_train and y_train.
# label_index is the index used by pandas to create dummy values, we need to save it for later use.

labels, fnames = list_wavs_fname(Configure.train_data_path)

relabel = relabel()
new_sample_rate = sampleRate()  #8000
chopNum = 1000  #default num=20
y_train = []
x_train = []

for label, fname in zip(labels, fnames):
    sample_rate, samples = wavfile.read(
        os.path.join(Configure.train_data_path, label, fname))
    samples = pad_audio(samples)
    if len(samples) > 16000:
        n_samples = chop_audio(samples, num=chopNum)
    else:
        n_samples = [samples]
    for samples in n_samples:
        if new_sample_rate >= sample_rate:
            resampled = samples
from keras import backend as K
import tensorflow as tf
n_jobs=100
config = tf.ConfigProto(intra_op_parallelism_threads=n_jobs, 
                        inter_op_parallelism_threads=n_jobs, 
                        allow_soft_placement=True, 
                        device_count = {'GPU': n_jobs})
session = tf.Session(config=config)
K.set_session(session)

import time
from xgboost import XGBClassifier

relabel = relabel()
sample_rate = sampleRate()
label_index = ['down', 'go', 'left', 'no', 'off', 'on', 'right', 'silence', 'stop', 'unknown', 'up', 'yes']

x_train, y_train = data_util.load_train()
x_test, test_fname = data_util.load_test()

# n=500
# index = np.random.choice(x_train.shape[0], n, replace=False)
# x_train=x_train[index,:,:,:]
# y_train=y_train[index,:]
# x_test=x_test[index,:,:,:]
# test_fname=pd.Series(test_fname).iloc[index]

gc.collect()

modelPaths = glob(os.path.join(Configure.model_path, '*16000*'))