解决loss nan问题

作者: 布口袋_天晴了 | 来源:发表于2018-10-17 15:07 被阅读106次

    数据集是一个2分类

    输入数据集是数据对(上下文词向量矩阵,关系词向量)

    上下文词向量矩阵用一个神经网络抽象出其高层特征向量表示vec1

    关系词向量用一个简单的全连接层,处理成其高层特征向量表示vec2

    最后计算score=cosine(vec1, vec2) ,大致步骤如下:

    vec2 = tf.layers.dense(inputs=rel, units=10, activation=tf.nn.relu)

    score =cosine_distance(vec1, vec2)

    score = tf.nn.sigmoid(score)

    loss=tf.nn.sigmoid_cross_entropy_with_logits(labels=self.labels, logits=score)

    出现问题的原因是全连接层中的激活函数选择不当,可以将其改为activation=tf.nn.sigmoid。

    其他解决方法:去除了处理关系词向量的全连接层,使模型变简单。或者给全连接层添加dropout。tf.nn.dropout()

    还有一个基于dropout泛化的dropConnection,但是tensorflow里暂时没有提供接口。

    Regularization of Neural Networks using DropConnect

    相关文章

      网友评论

        本文标题:解决loss nan问题

        本文链接:https://www.haomeiwen.com/subject/mbqrzftx.html