Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import pandas as pd
- from librosa.feature import delta
- shape = (-1, 60, 41, 1)
- start_col = 'logspec_b0_f0'
- end_col = gtzan_features.columns[-1]
- class_count = len(pd.unique(gtzan_features['label']))
- def generate_deltas(X):
- new_dim = np.zeros(tuple(np.shape(X)))
- X = np.concatenate((X, new_dim), axis=3)
- del new_dim
- for i in range(len(X)):
- X[i, :, :, 1] = delta(X[i, :, :, 0])
- return X
- def to_one_hot(labels, class_count):
- one_hot_enc = np.zeros((len(labels), class_count))
- for r in range(len(labels)):
- one_hot_enc[r, labels[r]] = 1
- return one_hot_enc
- train = gtzan_features[(gtzan_features['sets'] == 'train')]
- test = gtzan_features[(gtzan_features['sets'] == 'test')]
- X_train = train.loc[:, start_col:end_col].values
- y_train = to_one_hot(train['label'].values, class_count)
- X_test = test.loc[:, start_col:end_col].values
- y_test = to_one_hot(test['label'].values, class_count)
- X_mean = np.mean(X_train)
- X_std = np.std(X_train)
- X_train = (X_train - X_mean) / X_std
- X_test = (X_test - X_mean) / X_std
- X_train = np.reshape(X_train, shape, order='F')
- X_test = np.reshape(X_test, shape, order='F')
- X_train = generate_deltas(X_train)
- X_test = generate_deltas(X_test)
- new_shape = (self.shape[0], self.shape[1] * 2, self.shape[2])
- X_train = np.reshape(X_train, new_shape, order='F')
- X_test = np.reshape(X_test, new_shape, order='F')
Add Comment
Please, Sign In to add comment