【问题标题】:Text Classification - DNN文本分类 - DNN
【发布时间】:2020-07-12 17:14:51
【问题描述】:

我正在使用深度神经网络执行文本分类。我的问题是我在火车数据上收到了 98 的高精度,而我的验证准确度是 49。

我尝试了以下方法:

  1. 打乱数据
  2. 我的训练和验证数据是 80:20 拆分
  3. 我使用的是 100 维 Glov 向量

有什么建议吗?

def get_Model():
    model = tf.keras.Sequential([
    tf.keras.layers.Embedding(vocab_size+1, embedding_dim, input_length=max_length, weights= . [embeddings_matrix], trainable=False),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Conv1D(64, 5, activation='relu'),
    tf.keras.layers.MaxPooling1D(pool_size=4),
    tf.keras.layers.LSTM(64),
    tf.keras.layers.Dense(5, activation='softmax')
    ])
    model.compile(loss='sparse_categorical_crossentropy',optimizer="adam",metrics=['acc'])
    model.summary()
    return model

【问题讨论】:

    标签: nlp tensorflow2.0


    【解决方案1】:

    您的模型显然过度拟合。防止过拟合的标准技巧是:

    • 添加辍学,
    • L2 正则化,
    • 尝试更小的型号。

    同时使用卷积和 LSTM 是相当不寻常的(尽管它非常好)。也许只保留其中一个是缩小网络的最佳方式。

    我的猜测是您正在使用一个相当小的数据集。拥有更大的数据集也有助于防止过度拟合,但这通常不是一条适用的建议。

    【讨论】:

    • 感谢您的回复。数据标签似乎有问题。因此,验证准确性受到影响
    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 2021-07-23
    • 1970-01-01
    • 2013-02-22
    • 2021-08-12
    • 2016-03-04
    • 2016-06-28
    • 2012-01-05
    相关资源
    最近更新 更多