加快NNs多标签分类培训

时间:2018-05-22 22:54:28

标签: python tensorflow neural-network classification multilabel-classification

我正在使用Tensorflow进行音频的多标签分类。我使用的数据集由10个不同的类组成,每个音频样本对应两个标签。换句话说,每个文件的重叠声音/类的数量总是2.因此标签“y”的向量将是例如:

y = [0,0,0,0,0,1,0,1,0,0]

我使用3个卷积层,1个FC层和1个输出层,由10个逻辑单元组成。作为成本函数,我使用每个单位的二元交叉熵,然后对结果求平均值。

由于某些原因,我猜主要是由于网络的参数(权重)和输出层中的逻辑单元的初始化,网络倾向于主要预测零。我想经过一些训练后,这种趋势将开始消失,但是,我想知道是否有一种聪明的做法,所以网络不会预测那么多零并预测更多的,我相信使成本更高,梯度更强(虽然不是100%肯定),因此训练会更快。

我对所有图层的权重使用Xavier初始化,例如:

W2 = tf.get_variable("W", [5,5,24,48], initializer=tf.contrib.layers.xavier_initializer())

可能使用tf.truncated_normal_initializer代替 有帮助?

----------------------------------------- EDIT 1 ---- -------------------------------------------------- -

我忘了提到的一条信息是我的所有输入都是负值,我不知道这是否会产生任何后果。

0 个答案:

没有答案