增加了tflearn(CNN)的损失

时间:2016-11-11 15:32:36

标签: neural-network tensorflow classification deep-learning tflearn

我正在尝试训练分类器以区分歌曲类型与原始音频频谱。为此,我在tflearn中使用了一个深度卷积网络。但是,网络不会收敛/学习/损失正在增加。如果有人知道为什么会这样,我将不胜感激。

我正在使用的数据是频谱图的128x128灰度图像,分类为古典音乐(500个示例)和硬摇滚(500个示例),1个热编码。

以下是样本的样子:

Classical extract

我可以告诉两个类之间的区别(由于stackoverflow的限制,我无法显示它),我怀疑深度CNN根本无法对这些类进行分类。

这就是我的损失:

Loss plot in tflearn

我在模型的tflearn中使用的代码如下:

convnet = input_data(shape=[None, 128, 128, 1], name='input')

convnet = conv_2d(convnet, 64, 2, activation='elu', weights_init="Xavier")
convnet = max_pool_2d(convnet, 2)

convnet = conv_2d(convnet, 32, 2, activation='elu', weights_init="Xavier")
convnet = max_pool_2d(convnet, 2)

convnet = conv_2d(convnet, 128, 2, activation='elu', weights_init="Xavier")
convnet = max_pool_2d(convnet, 2)

convnet = conv_2d(convnet, 64, 2, activation='elu', weights_init="Xavier")
convnet = max_pool_2d(convnet, 2)

convnet = fully_connected(convnet, 1024, activation='elu')
convnet = dropout(convnet, 0.5)

convnet = fully_connected(convnet, 2, activation='softmax')
convnet = regression(convnet, optimizer='rmsprop', learning_rate=0.01, loss='categorical_crossentropy', name='targets')

model = tflearn.DNN(convnet)

model.fit({'input': train_X}, {'targets': train_y}, n_epoch=100, batch_size=64, shuffle=True, validation_set=({'input': test_X}, {'targets': test_y}), 
    snapshot_step=100, show_metric=True)

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我通常会尝试的几件事情是:

  • 较低的学习率

  • 尝试其他激活

  • 暂时删除暂停

HTH