Esempio n. 1
0
 def test_pca_mdb(self):
     featureset = musicset.MusicSet(dirname='features2')
     train = featureset.load_train_data()
     new_features = reduce.pca(train.music)
     storage = store(featureset.results_dir)
     storage['reduced_mdb.dat'] = new_features
     self.assertGreater(train.music.shape[1], new_features.shape[1])
Esempio n. 2
0
    def classify(self):
        storage = store(os.path.join(settings.BRAIN_DIR, 'nn'))
        save_path = storage['save.path']
        meta_path = save_path + '.meta'
        saver = tf.train.import_meta_graph(meta_path)
        data = self.get_features()
        n_f = data.shape[0]
        data = data.reshape((1, n_f))
        prediction = None
        with tf.Session() as sess:
            saver.restore(sess, save_path)
            graph = tf.get_default_graph()
            x = graph.get_tensor_by_name('x:0')
            y_ = graph.get_tensor_by_name('y_:0')
            keep_prob = graph.get_tensor_by_name('keep_prob:0')
            result = sess.run(y_, feed_dict={x: data, keep_prob: 1})[0]
            idx = np.argmax(result)
            dataset = musicset.MusicSet()
            dataset.one_hot_encode_genres()
            for genre in dataset.genres:
                if dataset.encoded_genres[genre][idx] == 1:
                    prediction = genre

        if self.prediction is not None:
            self.prediction.destroy()

        self.prediction = tk.Label(self.root, text=prediction)
        self.prediction.config(font=("Courier", 36))
        self.prediction.grid(row=0, column=1)
Esempio n. 3
0
 def test_training(self):
     p = os.path.join(settings.BRAIN_DIR, "specfeat")
     if not os.path.isdir(p):
         os.mkdir(p)
     dataset = musicset.MusicSet(dirname='features_s_10', force_load=True)
     dataset.load_files()
     dataset.one_hot_encode_genres()
     cnn_t = sf.CNNFeat(dataset)
     ds = cnn_t.train(display_step=100, path=p)
     print(ds.music.shape)
     print(ds.labels.shape)
Esempio n. 4
0
 def test_training(self):
     dataset = musicset.MusicSet(dirname='features_m_10_fl100')
     dataset.load_files()
     dataset.load_train_data()
     dataset.load_test_data()
     if settings.PCA:
         components = reduce.pca_comp(dataset.train.music)
         k = components.shape[1]
         dataset.train.music = np.matmul(components.T,
                                         dataset.train.music.T)
         dataset.train.music = dataset.train.music.T
         dataset.test.music = np.matmul(components.T, dataset.test.music.T)
         dataset.test.music = dataset.test.music.T
     cnn_t = cnn.CNN(dataset)
     cnn_t.train(display_step=100)
Esempio n. 5
0
    def test_nn(self):
        p = os.path.join(settings.BRAIN_DIR, "specfeat")
        dataset = musicset.MusicSet(dirname='special')
        dataset.load_files()
        dataset.one_hot_encode_genres()
        storage = store(p)
        ds = storage['features.dat']
        all_data = np.hstack(tuple(np.split(ds.music, 10, axis=0)))
        all_labels = np.hstack(tuple(np.split(ds.labels, 10, axis=0)))

        dataset.train = musicset.DataSet()
        dataset.test = musicset.DataSet()

        dataset.train.music = np.vstack(
            tuple(np.split(all_data[:70, :], 10, axis=-1)))
        dataset.train.labels = np.vstack(
            tuple(np.split(all_labels[:70, :], 10, axis=-1)))

        dataset.test.music = np.vstack(
            tuple(np.split(all_data[70:, :], 10, axis=-1)))
        dataset.test.labels = np.vstack(
            tuple(np.split(all_labels[70:, :], 10, axis=-1)))

        nn_t = nn.NN(dataset, n_input=256)
        step = 100
        tr, te, trc, tec = nn_t.train(display_step=step,
                                      out=True,
                                      path='special.final')
        epochs = np.arange(int(settings.NN['TRAINING_CYCLES'] / step))
        f, ax = plt.subplots(2)
        ax[0].plot(epochs, tr, color='#FF2D00', label='Training Accuracy')
        #ax[0].plot(epochs, vl, color='#1DFF00', label='Validation Accuracy')
        ax[0].plot(epochs, te, color='#0014FF', label='Testing Accuracy')
        ax[0].legend(loc="lower right")
        ax[0].set_xlabel('Epoch')
        ax[0].set_ylabel('Accuracy')
        ax[0].set_title('Accuracy vs Number of epochs')
        ax[1].plot(epochs, trc, color='#FF2D00', label='Training Lost')
        ax[1].plot(epochs, tec, color='#1DFF00', label='Test Lost')
        ax[1].legend(loc="lower right")
        ax[1].set_xlabel('Epoch')
        ax[1].set_ylabel('Loss')
        ax[1].set_title('Loss vs Number of Epochs')
        f.suptitle('Network with %s layers' % settings.NN['NUM_HIDDEN_LAYERS'])
        plt.show()
Esempio n. 6
0
 def test_training(self):
     dataset = musicset.MusicSet(dirname='features_md_6')
     dataset.load_files()
     dataset.load_train_data()
     dataset.load_test_data()
     #print(dataset.test.music.shape)
     #return
     # dataset.load_validation_data()
     # print(dataset.validation.music[:10, :10])
     # return
     if settings.PCA:
         components = reduce.pca_comp(dataset.train.music)
         k = components.shape[1]
         dataset.train.music = np.matmul(components.T,
                                         dataset.train.music.T)
         dataset.train.music = dataset.train.music.T
         dataset.test.music = np.matmul(components.T, dataset.test.music.T)
         dataset.test.music = dataset.test.music.T
         nn_t = nn.NN(dataset, n_input=k)
     else:
         nn_t = nn.NN(dataset)
     step = 100
     tr, te, trc, tec = nn_t.train(display_step=step,
                                   out=True,
                                   path='test.final')
     epochs = np.arange(int(settings.NN['TRAINING_CYCLES'] / step))
     f, ax = plt.subplots(2)
     ax[0].plot(epochs, tr, color='#FF2D00', label='Training Accuracy')
     #ax[0].plot(epochs, vl, color='#1DFF00', label='Validation Accuracy')
     ax[0].plot(epochs, te, color='#0014FF', label='Testing Accuracy')
     ax[0].legend(loc="lower right")
     ax[0].set_xlabel('Epoch')
     ax[0].set_ylabel('Accuracy')
     ax[0].set_title('Accuracy vs Number of epochs')
     ax[1].plot(epochs, trc, color='#FF2D00', label='Training Lost')
     ax[1].plot(epochs, tec, color='#1DFF00', label='Test Lost')
     ax[1].legend(loc="lower right")
     ax[1].set_xlabel('Epoch')
     ax[1].set_ylabel('Loss')
     ax[1].set_title('Loss vs Number of Epochs')
     f.suptitle('Network with %s layers' % settings.NN['NUM_HIDDEN_LAYERS'])
     plt.show()
Esempio n. 7
0
 def setUpClass(cls):
     cls.fileset = musicset.MusicSet(dirname='features3')
     cls.fileset.load_files()
     cls.total_features = 0
     for f in settings.FEATURES:
         cls.total_features += settings.FEATURES_LENGTH[f]
Esempio n. 8
0
 def setUp(self):
     self.dataset = musicset.MusicSet()
     self.dataset.one_hot_encode_genres()
Esempio n. 9
0
 def setUpClass(cls):
     super().setUpClass()
     cls.fileset = musicset.MusicSet()
     cls.fileset.load_files()
Esempio n. 10
0
 def setUp(self):
     self.fileset = musicset.MusicSet()
     self.fileset.load_files()
Esempio n. 11
0
 def test_visual_data(self):
     featureset = musicset.MusicSet(dirname='features_md_6')
     featureset.visualize()
Esempio n. 12
0
 def test_lda(self):
     featureset = musicset.MusicSet(dirname='features2')
     train = featureset.load_train_data()
     new_features = reduce.lda(train.music, train.labels)
     print(new_features.shape)